RemixVSL / iomemory-vsl4

Updated Fusion-io iomemory VSL4 Linux (version 4.3.7) driver for recent kernels.
55 stars 9 forks source link

Debian 10.3 error make module #18

Closed JerryLutor closed 4 years ago

JerryLutor commented 4 years ago

Bug description

SHIPPED /usr/src/iomemory-vsl4/driver_source/kfio/x86_64_cc83_libkfio.o CC [M] /usr/src/iomemory-vsl4/driver_source/module_param.o /usr/src/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_expose_disk’: /usr/src/iomemory-vsl4/driver_source/kblock.c:669:24: error: implicit declaration of function ‘blk_mq_init_sq_queue’; did you mean ‘blk_mq_init_queue’? [-Werror=implicit-function-declaration] disk->rq = blk_mq_init_sq_queue(&disk->tag_set, &fio_mq_ops, 256, BLK_MQ_F_SHOULD_MERGE); ^~~~~~~~ blk_mq_init_queue /usr/src/iomemory-vsl4/driver_source/kblock.c:669:22: warning: assignment to ‘struct request_queue ’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] disk->rq = blk_mq_init_sq_queue(&disk->tag_set, &fio_mq_ops, 256, BLK_MQ_F_SHOULD_MERGE); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c: In function ‘linux_bdev_update_stats’: /usr/src/iomemory-vsl4/driver_source/kblock.c:957:41: error: macro "part_stat_inc" requires 3 arguments, but only 2 given part_stat_inc(&gd->part0, ios[1]); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c:957:9: error: ‘part_stat_inc’ undeclared (first use in this function); did you mean ‘part_stat_show’? part_stat_inc(&gd->part0, ios[1]); ^~~~~ part_stat_show /usr/src/iomemory-vsl4/driver_source/kblock.c:957:9: note: each undeclared identifier is reported only once for each function it appears in /usr/src/iomemory-vsl4/driver_source/kblock.c:958:61: error: macro "part_stat_add" requires 4 arguments, but only 3 given part_stat_add(&gd->part0, sectors[1], totalsize >> 9); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c:958:9: error: ‘part_stat_add’ undeclared (first use in this function); did you mean ‘part_stat_show’? part_stat_add(&gd->part0, sectors[1], totalsize >> 9); ^~~~~ part_stat_show /usr/src/iomemory-vsl4/driver_source/kblock.c:959:91: error: macro "part_stat_add" requires 4 arguments, but only 3 given part_stat_add(&gd->part0, nsecs[1], kfio_div64_64(duration HZ, FIO_USEC_PER_SEC)); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c:966:41: error: macro "part_stat_inc" requires 3 arguments, but only 2 given part_stat_inc(&gd->part0, ios[0]); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c:967:61: error: macro "part_stat_add" requires 4 arguments, but only 3 given part_stat_add(&gd->part0, sectors[0], totalsize >> 9); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c:968:91: error: macro "part_stat_add" requires 4 arguments, but only 3 given part_stat_add(&gd->part0, nsecs[0], kfio_div64_64(duration HZ, FIO_USEC_PER_SEC)); ^ /usr/src/iomemory-vsl4/driver_source/kblock.c:946:21: warning: unused variable ‘gd’ [-Wunused-variable] struct gendisk gd = disk->gd; ^~ /usr/src/iomemory-vsl4/driver_source/kblock.c: In function ‘kfio_alloc_queue’: /usr/src/iomemory-vsl4/driver_source/kblock.c:1599:10: error: too few arguments to function ‘blk_alloc_queue_node’ rq = blk_alloc_queue_node(GFP_NOIO, node); ^~~~~~~~ In file included from /usr/src/iomemory-vsl4/driver_source/port-internal.h:59, from /usr/src/iomemory-vsl4/driver_source/kblock.c:36: /usr/src/linux-headers-4.19.0-8-common/include/linux/blkdev.h:1282:23: note: declared here struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,

How to reproduce

git clone https://github.com/snuf/iomemory-vsl4 cd iomemory-vsl4/ git checkout v5.6.1

Posible solution

Environment information

1) Linux 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux 2) gcc (Debian 8.3.0-6) 8.3.0 3) debian 10.3 4) git checkout v5.6.1 5) 27:00.0 Mass storage controller [0180]: SanDisk ioMemory HHHL [1aed:3002]

Tourman36 commented 4 years ago

Please upgrade to Kernel 5.0 or higher, or use the official packages. We dropped support for 4.x Kernels in our fork.

Tourman36 commented 4 years ago

Ubuntu 20.04 LTS was released recently, but seems like there's no ETA on Debian 11. You can try this guide on backporting the latest kernel onto Debian 10:

https://www.addictivetips.com/ubuntu-linux-tips/get-linux-kernel-5-3-on-debian-10-stable/