Hello, > > > > pci-epc.h doesn't define the members of the pci_epf_header struct, so > > > > trying to access them results in errors like this: > > > > > > > > error: invalid use of undefined type 'struct pci_epf_header' > > > > 167 | val = hdr->vendorid; > > > > > > > > Instead let's include pci-epf.h which not only defines the > > > > pci_epf_header but also includes pci-epc.h. > > > > [...] > > > It is odd that the the build bot did not detect this... > > > > This is a bit of a surprise to me too, especially since none of the usual > > bots pick this up, and I can't seem to find such a failure in the nightly > > CI logs either. > > > > Alistair, how did you stumble into this issue? Also, which version or > > a tree would that be? > > I was building the kernel with this defconfig [1] inside OpenEmbedded. > It was the 6.4-rc7 kernel, specifically this one [2]. > > 1: https://github.com/damien-lemoal/buildroot/blob/rockpro64_ep_v23/board/pine64/rockpro64_ep/linux.config > 2: https://github.com/damien-lemoal/linux/tree/rockpro64_ep_v23 Thank you! Much appreciated. So, the vanilla kernel does not have headers arranged like this custom tree that Damien maintains for his own needs, per: - https://elixir.bootlin.com/linux/v6.4-rc7/source/include/linux/pci-epc.h - https://elixir.bootlin.com/linux/v6.4-rc7/source/include/linux/pci-epf.h I suppose, there are some changes that break it for you, for example: https://github.com/damien-lemoal/linux/commit/c7aa8ddd76a141b975a097532050a76c6a58c436 So, I cannot take this patch as it would break vanilla kernel for us. :) Try building using vanilla kernel, and see if that helps. Krzysztof