intel-vsc-dkms FTBS in Noble with the linux-6.17 kernel

Bug #2136839 reported by John Cabaj
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ivsc-driver (Ubuntu)
Invalid
Undecided
Unassigned
Noble
Fix Committed
Undecided
Unassigned

Bug Description

[ Impact ]

DKMS make.log for ivsc-driver-0~git202311021215.73a044d9-0ubuntu2 for kernel 6.17.0-7-generic (x86_64)
Thu Dec 18 22:19:24 UTC 2025
make -C /lib/modules/6.17.0-7-generic/build M=/var/lib/dkms/ivsc-driver/0~git202311021215.73a044d9-0ubuntu2/build modules
make[1]: Entering directory '/usr/src/linux-headers-6.17.0-7-generic'
make[2]: Entering directory '/var/lib/dkms/ivsc-driver/0~git202311021215.73a044d9-0ubuntu2/build'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
  You are using: gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
  CC [M] drivers/mfd/ljca.o
  CC [M] drivers/spi/spi-ljca.o
  CC [M] drivers/gpio/gpio-ljca.o
  CC [M] drivers/i2c/busses/i2c-ljca.o
drivers/mfd/ljca.c:323:6: warning: no previous prototype for ‘ljca_dump’ [-Wmissing-prototypes]
  323 | void ljca_dump(struct ljca_dev *ljca, void *buf, int len)
      | ^~~~~~~~~
drivers/gpio/gpio-ljca.c:256:6: warning: no previous prototype for ‘ljca_gpio_event_cb’ [-Wmissing-prototypes]
  256 | void ljca_gpio_event_cb(struct platform_device *pdev, u8 cmd,
      | ^~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-ljca.c: In function ‘ljca_gpio_probe’:
drivers/gpio/gpio-ljca.c:426:27: error: assignment to ‘int (*)(struct gpio_chip *, unsigned int, int)’ from incompatible pointer type ‘void (*)(struct gpio_chip *, unsigned int, int)’ [-Werror=incompatible-pointer-types]
  426 | ljca_gpio->gc.set = ljca_gpio_set_value;
      | ^
drivers/gpio/gpio-ljca.c: At top level:
drivers/gpio/gpio-ljca.c:461:19: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  461 | .remove = ljca_gpio_remove,
      | ^~~~~~~~~~~~~~~~
drivers/gpio/gpio-ljca.c:461:19: note: (near initialization for ‘ljca_gpio_driver.remove’)
drivers/spi/spi-ljca.c: In function ‘ljca_spi_prepare_message’:
drivers/spi/spi-ljca.c:213:41: error: implicit declaration of function ‘spi_master_get_devdata’; did you mean ‘spi_controller_get_devdata’? [-Werror=implicit-function-declaration]
  213 | struct ljca_spi_dev *ljca_spi = spi_master_get_devdata(master);
      | ^~~~~~~~~~~~~~~~~~~~~~
      | spi_controller_get_devdata
drivers/spi/spi-ljca.c:213:41: warning: initialization of ‘struct ljca_spi_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
drivers/spi/spi-ljca.c: In function ‘ljca_spi_transfer_one’:
drivers/spi/spi-ljca.c:224:41: warning: initialization of ‘struct ljca_spi_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  224 | struct ljca_spi_dev *ljca_spi = spi_master_get_devdata(master);
      | ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/linux-headers-6.17.0-7-generic/include/vdso/const.h:5,
                 from /usr/src/linux-headers-6.17.0-7-generic/include/vdso/bits.h:5,
                 from /usr/src/linux-headers-6.17.0-7-generic/include/linux/bits.h:5,
                 from /usr/src/linux-headers-6.17.0-7-generic/include/linux/ioport.h:13,
                 from /usr/src/linux-headers-6.17.0-7-generic/include/linux/acpi.h:12,
                 from drivers/spi/spi-ljca.c:8:
drivers/spi/spi-ljca.c:228:34: error: invalid use of undefined type ‘struct spi_master’
  228 | div = DIV_ROUND_UP(master->max_speed_hz, xfer->speed_hz) / 2 - 1;
      | ^~
/usr/src/linux-headers-6.17.0-7-generic/include/uapi/linux/const.h:51:40: note: in definition of macro ‘__KERNEL_DIV_ROUND_UP’
   51 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
      | ^
drivers/spi/spi-ljca.c:228:15: note: in expansion of macro ‘DIV_ROUND_UP’
  228 | div = DIV_ROUND_UP(master->max_speed_hz, xfer->speed_hz) / 2 - 1;
      | ^~~~~~~~~~~~
drivers/spi/spi-ljca.c: In function ‘ljca_spi_probe’:
drivers/spi/spi-ljca.c:254:18: error: implicit declaration of function ‘spi_alloc_master’; did you mean ‘spi_alloc_target’? [-Werror=implicit-function-declaration]
  254 | master = spi_alloc_master(&pdev->dev, sizeof(*ljca_spi));
      | ^~~~~~~~~~~~~~~~
      | spi_alloc_target
drivers/spi/spi-ljca.c:254:16: warning: assignment to ‘struct spi_master *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  254 | master = spi_alloc_master(&pdev->dev, sizeof(*ljca_spi));
      | ^
drivers/spi/spi-ljca.c:259:18: warning: assignment to ‘struct ljca_spi_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  259 | ljca_spi = spi_master_get_devdata(master);
      | ^
drivers/spi/spi-ljca.c:263:25: error: invalid use of undefined type ‘struct spi_master’
  263 | ljca_spi->master->dev.of_node = pdev->dev.of_node;
      | ^~
drivers/spi/spi-ljca.c:266:45: error: invalid use of undefined type ‘struct spi_master’
  266 | ACPI_COMPANION_SET(&ljca_spi->master->dev, ACPI_COMPANION(&pdev->dev));
      | ^~
/usr/src/linux-headers-6.17.0-7-generic/include/linux/acpi.h:58:60: note: in definition of macro ‘ACPI_COMPANION_SET’
   58 | #define ACPI_COMPANION_SET(dev, adev) set_primary_fwnode(dev, (adev) ? \
      | ^~~
drivers/spi/spi-ljca.c:268:15: error: invalid use of undefined type ‘struct spi_master’
  268 | master->bus_num = -1;
      | ^~
drivers/spi/spi-ljca.c:269:15: error: invalid use of undefined type ‘struct spi_master’
  269 | master->mode_bits = SPI_CPHA | SPI_CPOL;
      | ^~
drivers/spi/spi-ljca.c:270:15: error: invalid use of undefined type ‘struct spi_master’
  270 | master->prepare_message = ljca_spi_prepare_message;
      | ^~
drivers/spi/spi-ljca.c:271:15: error: invalid use of undefined type ‘struct spi_master’
  271 | master->transfer_one = ljca_spi_transfer_one;
      | ^~
drivers/spi/spi-ljca.c:272:15: error: invalid use of undefined type ‘struct spi_master’
  272 | master->auto_runtime_pm = false;
      | ^~
drivers/spi/spi-ljca.c:273:15: error: invalid use of undefined type ‘struct spi_master’
  273 | master->max_speed_hz = LJCA_SPI_BUS_MAX_HZ;
      | ^~
drivers/i2c/busses/i2c-ljca.c:454:19: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  454 | .remove = ljca_i2c_remove,
      | ^~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-ljca.c:454:19: note: (near initialization for ‘ljca_i2c_driver.remove’)
drivers/spi/spi-ljca.c:275:15: error: implicit declaration of function ‘devm_spi_register_master’; did you mean ‘devm_spi_register_controller’? [-Werror=implicit-function-declaration]
  275 | ret = devm_spi_register_master(&pdev->dev, master);
      | ^~~~~~~~~~~~~~~~~~~~~~~~
      | devm_spi_register_controller
cc1: some warnings being treated as errors
drivers/spi/spi-ljca.c:284:9: error: implicit declaration of function ‘spi_master_put’; did you mean ‘spi_dev_put’? [-Werror=implicit-function-declaration]
  284 | spi_master_put(master);
      | ^~~~~~~~~~~~~~
      | spi_dev_put
make[4]: *** [/usr/src/linux-headers-6.17.0-7-generic/scripts/Makefile.build:287: drivers/gpio/gpio-ljca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
drivers/spi/spi-ljca.c: In function ‘ljca_spi_dev_remove’:
drivers/spi/spi-ljca.c:290:37: error: implicit declaration of function ‘spi_master_get’; did you mean ‘spi_dev_get’? [-Werror=implicit-function-declaration]
  290 | struct spi_master *master = spi_master_get(platform_get_drvdata(pdev));
      | ^~~~~~~~~~~~~~
      | spi_dev_get
drivers/spi/spi-ljca.c:290:37: warning: initialization of ‘struct spi_master *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
drivers/spi/spi-ljca.c:291:41: warning: initialization of ‘struct ljca_spi_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  291 | struct ljca_spi_dev *ljca_spi = spi_master_get_devdata(master);
      | ^~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-ljca.c: In function ‘ljca_spi_dev_suspend’:
drivers/spi/spi-ljca.c:302:16: error: implicit declaration of function ‘spi_master_suspend’; did you mean ‘spi_controller_suspend’? [-Werror=implicit-function-declaration]
  302 | return spi_master_suspend(master);
      | ^~~~~~~~~~~~~~~~~~
      | spi_controller_suspend
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-6.17.0-7-generic/scripts/Makefile.build:287: drivers/i2c/busses/i2c-ljca.o] Error 1
drivers/spi/spi-ljca.c: In function ‘ljca_spi_dev_resume’:
drivers/spi/spi-ljca.c:309:16: error: implicit declaration of function ‘spi_master_resume’; did you mean ‘spi_controller_resume’? [-Werror=implicit-function-declaration]
  309 | return spi_master_resume(master);
      | ^~~~~~~~~~~~~~~~~
      | spi_controller_resume
drivers/spi/spi-ljca.c: At top level:
drivers/spi/spi-ljca.c:323:27: error: initialization of ‘void (*)(struct platform_device *)’ from incompatible pointer type ‘int (*)(struct platform_device *)’ [-Werror=incompatible-pointer-types]
  323 | .remove = ljca_spi_dev_remove,
      | ^~~~~~~~~~~~~~~~~~~
drivers/spi/spi-ljca.c:323:27: note: (near initialization for ‘spi_ljca_driver.remove’)
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-6.17.0-7-generic/scripts/Makefile.build:287: drivers/spi/spi-ljca.o] Error 1
make[3]: *** [/usr/src/linux-headers-6.17.0-7-generic/Makefile:2016: .] Error 2
make[2]: *** [/usr/src/linux-headers-6.17.0-7-generic/Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/var/lib/dkms/ivsc-driver/0~git202311021215.73a044d9-0ubuntu2/build'
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.17.0-7-generic'
make: *** [Makefile:44: all] Error 2

[ Test case ]

Install the latest linux-6.17 kernel on Noble:

$ sudo add-apt-repository ppa:canonical-kernel-team/ppa3
$ sudo apt install linux-generic-hwe-24.04-edge

Install intel-vsc-dkms:

$ sudo apt install intel-vsc-dkms

Module built and installed successfully

Load the modules:

$ sudo modprobe ljca
$ sudo modprobe spi-ljca
$ sudo modprobe gpio-ljca
$ sudo modprobe i2c-ljca
$ sudo modprobe mei-vsc
$ sudo modprobe intel_vsc
$ sudo modprobe mei_csi
$ sudo modprobe mei_ace
$ sudo modprobe mei_pse
$ sudo modprobe mei_ace_debug

Modules loaded successfully

The same procedure should must be repeated on linux-6.8 and linux-6.14 to test for possible regressions.

[ Fix ]

Patches to enable kernels >= 6.8:

-debian/patches/0006-Linux-6.8-through-6.17-compat.patch
-Adding dh-dkms as dependency

Adding Ubuntu Developers as Maintainer

[ Regression potential ]

We may experience regressions in systems that are using the intel-vsc drivers, especially with kernels >= 6.8 kernel.

Revision history for this message
John Cabaj (john-cabaj) wrote :

0~git202311021215.73a044d9-0ubuntu2 -> 0~git202311021215.73a044d9-0ubuntu2.1 debdiff

Revision history for this message
John Cabaj (john-cabaj) wrote :
Changed in ivsc-driver (Ubuntu Noble):
status: New → In Progress
Changed in ivsc-driver (Ubuntu):
status: New → In Progress
status: In Progress → Invalid
Revision history for this message
Massimiliano Pellizzer (mpellizzer) wrote :

Uploaded, thanks

description: updated
Revision history for this message
Nick Rosbrook (enr0n) wrote : Please test proposed package

Hello John, or anyone else affected,

Accepted ivsc-driver into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/ivsc-driver/0~git202311021215.73a044d9-0ubuntu2.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-noble to verification-done-noble. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-noble. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in ivsc-driver (Ubuntu Noble):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-noble
Revision history for this message
John Cabaj (john-cabaj) wrote :

Modules built and installed successfully. All modules loaded successfully on 6.17 kernel, but some did not on a 6.8 kernel. However, the current released module also fails to load the same modules, so this does not constitute a regression.

6.17 kernel:

root@noble-hwe-vm:~# uname -r
6.17.0-7-generic
root@noble-hwe-vm:~# modprobe ljca; modprobe spi-ljca; modprobe gpio-ljca; modprobe i2c-ljca; modprobe mei-vsc; modprobe intel_vsc; modprobe mei_csi; modprobe mei_ace; modprobe mei_pse; modprobe mei_ace_debug

6.8 kernel:

root@noble-lts-vm:~# modprobe ljca; modprobe spi-ljca; modprobe gpio-ljca; modprobe i2c-ljca; modprobe mei-vsc; modprobe intel_vsc; modprobe mei_csi; modprobe mei_ace; modprobe mei_pse; modprobe mei_ace_debug
modprobe: ERROR: could not insert 'mei_vsc': Unknown symbol in module, or unknown parameter (see dmesg)
modprobe: ERROR: could not insert 'mei_csi': Unknown symbol in module, or unknown parameter (see dmesg)
modprobe: ERROR: could not insert 'mei_ace': Unknown symbol in module, or unknown parameter (see dmesg)
modprobe: ERROR: could not insert 'mei_pse': Unknown symbol in module, or unknown parameter (see dmesg)
modprobe: ERROR: could not insert 'mei_ace_debug': Unknown symbol in module, or unknown parameter (see dmesg)

tags: added: verification-done-noble
removed: verification-needed-noble
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I can confirm the existing failure on 6.8. I also tested the current HWE kernel, 6.14, and the build and loading of modules worked with 0~git202311021215.73a044d9-0ubuntu2.1. Also, the non-updated dkms package fails to build with 6.14 HWE as well, and the updated one works.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I was about to release this yesterday, but then the LP outage happened, and we don't do releases on Fridays (today). Next opportunity window starts next Monday.

Revision history for this message
John Cabaj (john-cabaj) wrote :

Thanks for the updates Andreas!

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.