linux/drivers/bus
Linus Walleij 7945cbf866 bus: ixp4xx: Don't touch bit 7 on IXP42x
commit ff5a19909b upstream.

We face some regressions on a few IXP42x systems when
accessing flash, the following unrelated error prints
appear from the PCI driver:

ixp4xx-pci c0000000.pci: PCI: abort_handler addr = 0xff9ffb5f,
	   isr = 0x0, status = 0x22a0
ixp4xx-pci c0000000.pci: imprecise abort
(...)

It turns out that while bit 7 is masked "reserved" it is
not unused, so masking it off as zero is dangerous, and
breaks flash access on some systems such as the NSLU2.
Be more careful and avoid masking off any of the reserved
bits 7, 8, 9 or 30. Only keep masking EXP_WORD (bit 2)
on IXP43x which is necessary in some setups.

Fixes: 1c953bda90 ("bus: ixp4xx: Add a driver for IXP4xx expansion bus")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221122134411.2030372-1-linus.walleij@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-02 17:41:08 +01:00
..
fsl-mc bus: fsl-mc-bus: fix KASAN use-after-free in fsl_mc_bus_remove() 2022-06-22 14:22:04 +02:00
mhi bus: mhi: host: pci_generic: add Telit FN990 2022-07-29 17:25:06 +02:00
arm-cci.c
arm-integrator-lm.c bus: arm-integrator-lm: Add of_node_put() before return statement 2021-01-15 17:53:05 +01:00
brcmstb_gisb.c kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
bt1-apb.c bus: bt1-apb: Use sysfs_streq instead of strncmp 2020-05-28 16:56:56 +02:00
bt1-axi.c bus: bt1-axi: Use sysfs_streq instead of strncmp 2020-05-28 16:57:12 +02:00
da8xx-mstpri.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hisi_lpc.c bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe() 2022-08-17 14:23:10 +02:00
imx-weim.c bus: imx-weim: remove incorrect __init annotations 2019-09-04 17:59:32 +02:00
intel-ixp4xx-eb.c bus: ixp4xx: Don't touch bit 7 on IXP42x 2022-12-02 17:41:08 +01:00
Kconfig drivers: bus: Delete CONFIG_SIMPLE_PM_BUS 2021-10-05 17:47:22 +02:00
Makefile drivers: bus: Delete CONFIG_SIMPLE_PM_BUS 2021-10-05 17:47:22 +02:00
mips_cdmm.c mips: cdmm: Fix refcount leak in mips_cdmm_phys_base 2022-04-08 14:23:39 +02:00
moxtet.c treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
mvebu-mbus.c ARM: mvebu: avoid clang -Wtautological-constant warning 2021-04-01 16:32:38 +02:00
omap_l3_noc.c bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD 2021-02-04 09:08:57 +02:00
omap_l3_noc.h
omap_l3_smx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
omap_l3_smx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
omap-ocp2scp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
qcom-ebi2.c bus: qcom-ebi2: Fix incorrect documentation for '{slow,fast}_cfg' 2021-05-26 21:19:23 -05:00
simple-pm-bus.c drivers: bus: simple-pm-bus: Add support for probing simple bus only devices 2021-10-05 17:47:15 +02:00
sun50i-de2.c
sunxi-rsb.c bus: sunxi-rsb: Support atomic transfers 2022-12-02 17:41:03 +01:00
tegra-aconnect.c bus: tegra-aconnect: add system sleep callbacks 2019-03-28 17:26:14 +01:00
tegra-gmi.c
ti-pwmss.c bus/ti-pwmss: move TI PWMSS driver from PWM to bus subsystem 2019-10-17 21:17:42 +01:00
ti-sysc.c bus: ti-sysc: Fix warnings for unbind for serial 2022-06-14 18:36:09 +02:00
ts-nbus.c
uniphier-system-bus.c bus: uniphier-system-bus: use devm_platform_ioremap_resource() 2019-09-05 17:57:18 +02:00
vexpress-config.c bus: vexpress-config: Support building as module 2020-05-13 12:42:46 -05:00