Re: gpio: gpio-pci-idio-16 regression after LTS upgrade
From: Mark Cave-Ayland
Date: Mon Oct 13 2025 - 06:33:17 EST
On 12/10/2025 15:22, William Breathitt Gray wrote:
On Mon, Oct 06, 2025 at 09:37:14AM +0100, Mark Cave-Ayland wrote:
After some more debugging I was able to determine that the failure was
due to the regmap cache failing initialisation in
drivers/base/regmap/regcache-flat.c::regcache_flat_init() because
max_register wasn't set on the regmap. I was able to fix that fairly
easily with this:
diff --git a/drivers/gpio/gpio-pci-idio-16.c
b/drivers/gpio/gpio-pci-idio-16.c
index 44c0a21b1d1d..55be571b5cca 100644
--- a/drivers/gpio/gpio-pci-idio-16.c
+++ b/drivers/gpio/gpio-pci-idio-16.c
@@ -41,6 +41,7 @@ static const struct regmap_config
idio_16_regmap_config = {
.reg_stride = 1,
.val_bits = 8,
.io_port = true,
+ .max_register = 0x7,
.wr_table = &idio_16_wr_table,
.rd_table = &idio_16_rd_table,
.volatile_table = &idio_16_rd_table,
This particular failure is separate from the get_direction issue
discovered after. It would be good to have this fix as its own patch so
we can keep each solution dedicated to their respective failures and
streamline any necessary backports to the stable trees.
Agreed.
I have some travel scheduled in the next couple days, but I can
probably get a patch series addressing both issues ready by the end of
the week. I'll also CC the stable mailing list so we can get the fixes
picked up for the LTS kernel they are affecting.
That would be fantastic! I was hoping to try and look at this over the past week, but it got delayed due to other work. Regardless of this I've still got access to the debugging environment to test any patches if you add me on CC.
If it helps the implementation we're using is part of the libvfio-user test suite (see https://github.com/nutanix/libvfio-user and samples/gpio-pci-idio-16.c). Internally we run a script that launches a QEMU VM, reads and writes a few sample gpios and then checks the logging to ensure that the basic vfio-user protocol is working as expected.
ATB,
Mark.