markh794 / mhvtl

Linux based Virtual Tape Library
http://sites.google.com/site/linuxvtl2/
Other
139 stars 65 forks source link

Compile on el9 / 5.14 kernel #111

Closed mesekem closed 1 year ago

mesekem commented 1 year ago

Had issues compiling the kernel module with RHEL 9.0.

CC [M] /tmp/mhvtl-master/kernel/mhvtl.o /tmp/mhvtl-master/kernel/mhvtl.c:248:18: error: ‘DRIVER_SENSE’ undeclared here (not in a function) 248 | (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION; | ^~~~ /tmp/mhvtl-master/kernel/mhvtl.c:331:10: error: ‘struct scsi_host_template’ has no member named ‘unchecked_isa_dma’ 331 | .unchecked_isa_dma = 0, | ^~~~~ /tmp/mhvtl-master/kernel/mhvtl.c:345:10: error: ‘const struct file_operations’ has no member named ‘ioctl’ 345 | .ioctl = vtl_c_ioctl_bkl, | ^~~~~ /tmp/mhvtl-master/kernel/mhvtl.c:345:27: error: positional initialization of field in ‘struct’ declared with ‘designated_init’ attribute [-Werror=designated-init] 345 | .ioctl = vtl_c_ioctl_bkl, | ^~~~~~~ /tmp/mhvtl-master/kernel/mhvtl.c:345:27: note: (near initialization for ‘vtl_fops’) /tmp/mhvtl-master/kernel/mhvtl.c:345:27: error: initialization of ‘loff_t ()(struct file , loff_t, int)’ {aka ‘long long int ()(struct file , long long int, int)’} from incompatible pointer type ‘int ()(struct inode , struct file *, unsigned int, long unsigned int)’ [-Werror=incompatible-pointer-types] /tmp/mhvtl-master/kernel/mhvtl.c:345:27: note: (near initialization for ‘vtl_fops.llseek’) In file included from /tmp/mhvtl-master/kernel/mhvtl.c:353: /tmp/mhvtl-master/kernel/fetch50.c: In function ‘vtl_sg_copy_user’: /tmp/mhvtl-master/kernel/fetch50.c:57:25: error: implicit declaration of function ‘flush_kernel_dcache_page’; did you mean ‘flush_kernel_vmap_range’? [-Werror=implicit-function-declaration] 57 | flush_kernel_dcache_page(miter.page); | ^~~~~~~~ | flush_kernel_vmap_range

markh794 commented 1 year ago

Thanks for the bug report - attempting to download RockyLinux 9 now to reproduce. Are you using the latest git or some other version (e.g. a pre-packed tar ball) ? Most likely explanation is the build time check for HAVE_UNLOCKED_IOCTL.

markh794 commented 1 year ago

Looking at the githistory and some of the compile errors - The first one which pops up /tmp/mhvtl-master/kernel/mhvtl.c:248:18: error: ‘DRIVER_SENSE’ undeclared here (not in a function) 248 | (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION; This was removed back in Sept, 2021 - commit : 35ddb48e5262dfe1d9fba987323b425bad0598ac Can you try compiling the module using the latest github mhvtl kernel src ?