linux-stable/drivers
Jan Kundrát 738845b022 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:23 -04:00
..
accessibility
acpi ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events 2024-02-23 08:42:03 +01:00
amba amba: bus: fix refcount leak 2023-09-19 12:20:19 +02:00
android binder: signal epoll threads of self-work 2024-02-23 08:42:26 +01:00
ata ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers 2024-03-01 13:16:44 +01:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-23 08:42:19 +01:00
auxdisplay
base regmap: Add bulk read/write callbacks into regmap_config 2024-03-15 10:48:23 -04:00
bcma
block block: ataflop: more blk-mq refactoring fixes 2024-03-01 13:16:51 +01:00
bluetooth Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 2024-02-23 08:42:10 +01:00
bus bus: moxtet: Add spi device table 2024-02-23 08:42:30 +01:00
cdrom
char hwrng: core - Fix page fault dead lock on mmap-ed hwrng 2024-02-23 08:41:52 +01:00
clk clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() 2024-02-23 08:42:12 +01:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 16:54:49 +00:00
connector
counter counter: microchip-tcb-capture: Fix the use of internal GCLK logic 2023-10-25 11:54:16 +02:00
cpufreq cpufreq: scmi: process the result of devm_of_clk_add_hw_provider() 2024-01-25 14:37:40 -08:00
cpuidle powerpc/pseries: Rework lppaca_shared_proc() to avoid DEBUG_PREEMPT 2023-09-19 12:20:15 +02:00
crypto crypto: virtio/akcipher - Fix stack overflow on memcpy 2024-03-06 14:37:48 +00:00
dax dax: Introduce alloc_dev_dax_id() 2023-07-27 08:44:00 +02:00
dca
devfreq PM / devfreq: Synchronize devfreq_monitor_[start/stop] 2024-02-23 08:42:03 +01:00
dio
dma dmaengine: fsl-qdma: init irq after reg initialization 2024-03-06 14:37:49 +00:00
dma-buf dma-buf/sw_sync: Avoid recursive lock during fence signal 2023-08-30 16:23:19 +02:00
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 14:37:39 -08:00
eisa
extcon extcon: Fix kernel doc of property capability fields to avoid warnings 2023-07-27 08:44:04 +02:00
firewire firewire: core: send bus reset promptly on gap count error 2024-03-01 13:16:45 +01:00
firmware efi/capsule-loader: fix incorrect allocation size 2024-03-06 14:37:49 +00:00
fpga
fsi fsi: aspeed: Reset master errors after CFAM reset 2023-09-19 12:20:18 +02:00
gnss
gpio gpio: fix resource unwinding order in error path 2024-03-06 14:37:50 +00:00
gpu drm/amd/display: Fix memory leak in dm_sw_fini() 2024-03-01 13:16:51 +01:00
greybus
hid HID: wacom: Do not register input devices until after hid_hw_start 2024-02-23 08:42:24 +01:00
hsi
hv Drivers: hv: vmbus: Drop error message when 'No request id available' 2024-03-15 10:48:22 -04:00
hwmon hwmon: (coretemp) Enlarge per package core count limit 2024-03-01 13:16:45 +01:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-25 14:37:39 -08:00
i2c i2c: i801: Fix block process call transactions 2024-02-23 08:42:25 +01:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-02-23 08:42:13 +01:00
ide
idle
iio iio: accel: bma400: Fix a compilation problem 2024-02-23 08:42:27 +01:00
infiniband RDMA/srpt: fix function pointer cast warnings 2024-03-01 13:16:50 +01:00
input Input: i8042 - add Fujitsu Lifebook U728 to i8042 quirk table 2024-03-01 13:16:45 +01:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-01-05 15:12:26 +01:00
iommu iommu/arm-smmu-qcom: Add missing GMU entry to match table 2024-01-25 14:37:52 -08:00
ipack
irqchip irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable 2024-03-01 13:16:45 +01:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:21:01 +02:00
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-02-23 08:42:13 +01:00
lightnvm
macintosh
mailbox mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 2023-07-27 08:44:08 +02:00
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 16:54:58 +00:00
md dm-crypt: don't modify the data when using authenticated encryption 2024-03-01 13:16:48 +01:00
media media: av7110: prevent underflow in write_ts_to_decoder() 2024-03-01 13:16:46 +01:00
memory memory: brcmstb_dpfe: fix testing array offset after use 2023-07-27 08:43:48 +02:00
memstick memstick r592: make memstick_debug_get_tpc_name() static 2023-07-27 08:43:40 +02:00
message
mfd mfd: ti_am335x_tscadc: Fix TI SoC dependencies 2024-02-23 08:42:13 +01:00
misc misc: fastrpc: Mark all sessions as invalid in cb_remove 2024-02-23 08:42:26 +01:00
mmc mmc: mmci: stm32: fix DMA API overlapping mappings warning 2024-03-15 10:48:13 -04:00
most
mtd mtd: spinand: gigadevice: fix Quad IO for GD5F1GQ5UExxG 2024-03-06 14:37:50 +00:00
mux
net hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed 2024-03-15 10:48:21 -04:00
nfc nfcsim.c: Fix error checking for debugfs_create_dir 2023-06-28 10:28:14 +02:00
ntb ntb: Fix calculation ntb_transport_tx_free_entry() 2023-09-19 12:20:22 +02:00
nubus nubus: Partially revert proc_create_single_data() conversion 2023-07-27 08:43:31 +02:00
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 11:06:50 +01:00
nvme nvmet-fc: abort command when there is no binding 2024-03-01 13:16:45 +01:00
nvmem nvmem: imx: correct nregs for i.MX6UL 2023-11-08 17:30:44 +01:00
of of: property: fix typo in io-channels 2024-02-23 08:42:29 +01:00
opp OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() 2023-09-19 12:20:07 +02:00
oprofile
parisc parisc: iosapic.c: Fix sparse warnings 2023-10-10 21:53:32 +02:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-25 14:37:39 -08:00
pci PCI/MSI: Prevent MSI hardware interrupt number truncation 2024-03-01 13:16:48 +01:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 11:06:54 +01:00
perf perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7 2023-10-25 11:54:13 +02:00
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-02-23 08:42:19 +01:00
pinctrl pinctrl: lochnagar: Don't build on MIPS 2024-01-25 14:37:35 -08:00
platform platform/x86: touchscreen_dmi: Allow partial (prefix) matches for ACPI names 2024-03-06 14:37:48 +00:00
pnp PNP: ACPI: fix fortify warning 2024-02-23 08:42:03 +01:00
power power: supply: bq27xxx-i2c: Do not free non existing IRQ 2024-03-06 14:37:49 +00:00
powercap powercap: RAPL: Fix CONFIG_IOSF_MBI dependency 2023-07-27 08:43:34 +02:00
pps
ps3
ptp ptp: annotate data-race around q->head and q->tail 2023-11-28 16:54:54 +00:00
pwm pwm: jz4740: Don't use dev_err_probe() in .request() 2024-01-25 14:37:52 -08:00
rapidio
ras
regulator regulator: pwm-regulator: Add validity checks in continuous .get_voltage 2024-03-01 13:16:44 +01:00
remoteproc
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-25 14:37:37 -08:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-02-23 08:41:53 +01:00
rtc rtc: Adjust failure return code for cmos_set_alarm() 2024-02-23 08:41:54 +01:00
s390 s390/cio: fix invalid -EBUSY on ccw_device_start 2024-03-01 13:16:48 +01:00
sbus
scsi scsi: jazz_esp: Only build if SCSI core is builtin 2024-03-01 13:16:50 +01:00
sfi
sh
siox
slimbus
soc pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation 2024-03-06 14:37:50 +00:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2023-12-20 15:44:36 +01:00
spi spi: sh-msiof: avoid integer overflow in constants 2024-03-01 13:16:44 +01:00
spmi
ssb
staging staging: iio: ad5933: fix type mismatch regression 2024-02-23 08:42:27 +01:00
target scsi: target: core: Add TMF to tmr_list handling 2024-03-01 13:16:43 +01:00
tc
tee tee: optee: Fix supplicant based device enumeration 2023-12-13 18:27:00 +01:00
thermal thermal: core: prevent potential string overflow 2023-11-20 11:06:45 +01:00
thunderbolt thunderbolt: Workaround an IOMMU fault on certain systems with Intel Maple Ridge 2023-10-25 11:54:20 +02:00
tty serial: max310x: fix IO data corruption in batched operations 2024-03-15 10:48:23 -04:00
uio uio: Fix use-after-free in uio_open 2024-01-25 14:37:38 -08:00
usb xhci: handle isoc Babble and Buffer Overrun events properly 2024-03-15 10:48:18 -04:00
vdpa
vfio vfio/type1: fix cap_migration information leak 2023-09-19 12:20:14 +02:00
vhost vhost: use kzalloc() instead of kmalloc() followed by memset() 2024-02-23 08:42:22 +01:00
video fbdev: sis: Error out if pixclock equals zero 2024-03-01 13:16:44 +01:00
virt
virtio virtio-mmio: fix memory leak of vm_dev 2023-11-08 17:30:40 +01:00
visorbus
vlynq
vme
w1 w1: fix loop in w1_fini() 2023-07-27 08:44:02 +02:00
watchdog watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 2024-02-23 08:42:12 +01:00
xen xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import 2024-02-23 08:42:13 +01:00
zorro
Kconfig
Makefile