]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
bus: ixp4xx: Don't touch bit 7 on IXP42x
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 22 Nov 2022 13:44:11 +0000 (14:44 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:00:29 +0000 (14:00 +0100)
commit293c1f59ca15fee8fca6089a9ef35aba3e63da64
tree6894eb3d8ec5c0008fe2114e8034776e79a495eb
parentaac1667d1c37a8348f79e01cdd6c4edc5b84af00
bus: ixp4xx: Don't touch bit 7 on IXP42x

commit ff5a19909b49fe5c0b01ae197f84b741e0f698dc 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: 1c953bda90ca ("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>
(cherry picked from commit 7945cbf8666a8ed4a31581c39e49ef583521b7f5)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/bus/intel-ixp4xx-eb.c