Skip to content

Rebuild 8.3 drivers against v4.19.325-cip134 kernel. - #107

Open
casasnovas wants to merge 1 commit into
mainfrom
quentin-rebuild-cip134
Open

casasnovas wants to merge 1 commit into
mainfrom
quentin-rebuild-cip134

Conversation

@casasnovas

Copy link
Copy Markdown
Collaborator

This commit tracks each srpm change required to build the out-of-tree drivers supported on XCPNG 8.3 against the v4.19.325-cip134 kernel.

Most of the changes are identical where the RPM package now depends on the xcpng-kernel-abi provided by the new kernel (to prevent their upgrade without also upgrading the kernel), though some drivers did require custom changes to their compat layer as the code was not expecting a v4.19 with potentially backports from more recent versions.

This is to be reviewed alongside the kernel PR: xcp-ng-rpms/kernel#40

Note that a PR in each driver SRPM repository will be opened, but for simplicity of reviewing similar code changes, the changes can be first reviewed in group here.

All those drivers have been built on koji and are available on the v8.3-u-qcasasnovas1 user tag.

@casasnovas
casasnovas requested a review from a team as a code owner August 31, 2026 12:35
@casasnovas
casasnovas force-pushed the quentin-rebuild-cip134 branch from 958851e to 6a25b37 Compare September 1, 2026 07:04
This commit tracks each srpm change required to build the out-of-tree
drivers supported on XCPNG 8.3 against the v4.19.325-cip134 kernel.

Most of the changes are identical where the RPM package now depends on the
xcpng-kernel-abi provided by the new kernel (to prevent their upgrade
without also upgrading the kernel), though some drivers did require custom
changes to their compat layer as the code was not expecting a v4.19 with
potentially backports from more recent versions.

Signed-off-by: Quentin Casasnovas <quentin.casasnovas@vates.tech>
@casasnovas
casasnovas force-pushed the quentin-rebuild-cip134 branch from 6a25b37 to 9136b24 Compare September 1, 2026 07:16
@casasnovas
casasnovas requested a review from stormi September 1, 2026 14:08

@stormi stormi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only looked at the file list and a handful of specfile changes, no comments in particular to make on my side.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why #if 0 ?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is in the commit description:

c368c4defa94 ("net: create netdev->dev_addr assignment helpers") in
v4.19.291 made the definition of eth_hw_addr_set redundant and leads to
build errors like:

  In file included from /home/builder/rpmbuild/BUILD/atlantic-module-alt-2.5.12/aq_common.h:22:0,
		   from /home/builder/rpmbuild/BUILD/atlantic-module-alt-2.5.12/aq_nic.h:13,
		   from /home/builder/rpmbuild/BUILD/atlantic-module-alt-2.5.12/aq_nic.c:24:
  /home/builder/rpmbuild/BUILD/atlantic-module-alt-2.5.12/aq_compat.h:306:20: error: redefinition of 'eth_hw_addr_set'
   static inline void eth_hw_addr_set(struct net_device *dev, const u8 *addr)
		      ^
  In file included from /home/builder/rpmbuild/BUILD/atlantic-module-alt-2.5.12/aq_nic.c:12:0:
  ./include/linux/etherdevice.h:301:20: note: previous definition of 'eth_hw_addr_set' was here
   static inline void eth_hw_addr_set(struct net_device *dev, const u8 *addr)

Sadly we can't just add another linux version check to enforce the
definition in the header file when < 4.19.291 because the SUBLEVEL version
is always zero on our XS-derived kernels, and the SUBLEVEL has been moved
to an non-exported STABLE_SUBLEVEL variable only visible from the top-level
linux kernel Makefile.

Did you miss it or is there anything not clear?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yes, sorry, I missed the commit, didn't see it.
Thanks it makes sense now.
It's really too bad we do the .0 thing with the sublevel value :(
Do you know why we/XS do this?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is to have only one kernel installed and accompanying modules in /lib/modules/4.19.0+/ as opposed to having to install kernel modules in multiple directories, given lack of dkms support.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah yes, and since kABI is supposed to be stable, you don't need a set of module per kernel installed.
Just one set of modules is enough

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants