Kernel – 5.9-rc6 – Rare Compile Fail!
Kernel 5.9-rc6 has been released, and brief details are here: http://lkml.iu.edu/hypermail/linux/kernel/2009.2/05870.html
In a very rare occurrence, the kernel compile actually fails:
...................................
CALL scripts/checksyscalls.sh
CALL scripts/atomic/check-atomics.sh
DESCEND objtool
CHK include/generated/compile.h
CC drivers/dax/super.o
drivers/dax/super.c:325:6: error: redefinition of ‘dax_supported’
325 | bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
| ^~~~~~~~~~~~~
In file included from drivers/dax/super.c:16:
./include/linux/dax.h:162:20: note: previous definition of ‘dax_supported’ was here
162 | static inline bool dax_supported(struct dax_device *dax_dev,
| ^~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:283: drivers/dax/super.o] Error 1
make[1]: *** [scripts/Makefile.build:500: drivers/dax] Error 2
make: *** [Makefile:1784: drivers] Error 2
The workaround is to revert the offending patch, from here: https://lore.kernel.org/r/160061715195.13131.5503173247632041975.stgit@dwillia2-desk3.amr.corp.intel.com but, of course, this will re-introduce the dax issue that the patch was originally supposed to fix!
Patched VMware 16.0.0 compiles and loads/runs OK, but NVIDIA (450.66 and 455.23.04 ) still hits the ‘inherited taint’ issue with nvidia-uvm..
Robert Gadsdon. September 20th 2020.
Just moving the declarations of dax_supported() in includde/linux/dax.h into respective sections of #if IS_ENABLED(CONFIG_DAX) … #else … #endif (rather than #if IS_ENABLED(CONFIG_FS_DAX) where they are now) should do the trick.