I have a similar issue to #68416356 with a driver that cannot compile on SLES15 SP3 (kernel 5.3.18-59.16. I am not a developer and I don't know C++.
See Compiling wanpipe driver on kernel 5.11 Any help would be highly appreciated.
make -C /lib/modules/5.3.18-59.16-default/build M=/tmp/code/AgentDriver modules make[1]: Entering directory '/usr/src/linux-5.3.18-59.16-obj/x86_64/default' CC [M] /tmp/code/AgentDriver/src/linux/KernelTracer.o In file included from /tmp/code/AgentDriver/src/linux/KernelTracer.c:54:0: /tmp/code/AgentDriver/src/linux/KernelTracer.h:87:5: error: unknown type name ‘make_request_fn’ make_request_fn* original_make_request_fn; ^~~~~~~~~~~~~~~ /tmp/code/AgentDriver/src/linux/KernelTracer.c: In function ‘make_request_hook’: /tmp/code/AgentDriver/src/linux/KernelTracer.c:735:5: error: called object is not a function or > function pointer device_info->original_make_request_fn(q, bio); ^~~~~~~~~~~ /tmp/code/AgentDriver/src/linux/KernelTracer.c: In function ‘set_hook’: /tmp/code/AgentDriver/src/linux/KernelTracer.c:764:65: error: ‘struct request_queue’ has no > > > member named ‘make_request_fn’; did you mean ‘nr_requests’? device_info->original_make_request_fn = bd->bd_disk->queue->make_request_fn; ^~~~~~~~~~~~~~~ nr_requests /tmp/code/AgentDriver/src/linux/KernelTracer.c:768:25: error: ‘struct request_queue’ has no > > > member named ‘make_request_fn’; did you mean ‘nr_requests’? bd->bd_disk->queue->make_request_fn = make_request_hook; ^~~~~~~~~~~~~~~ nr_requests /tmp/code/AgentDriver/src/linux/KernelTracer.c: In function ‘remove_hook’: /tmp/code/AgentDriver/src/linux/KernelTracer.c:776:29: error: ‘struct request_queue’ has no member > named ‘make_request_fn’; did you mean ‘nr_requests’? if (bd->bd_disk->queue->make_request_fn == device_info->original_make_request_fn) ^~~~~~~~~~~~~~~ nr_requests /tmp/code/AgentDriver/src/linux/KernelTracer.c:779:29: error: ‘struct request_queue’ has no member > named ‘make_request_fn’; did you mean ‘nr_requests’? if (bd->bd_disk->queue->make_request_fn != make_request_hook) { ^~~~~~~~~~~~~~~ nr_requests /tmp/code/AgentDriver/src/linux/KernelTracer.c:784:25: error: ‘struct request_queue’ has no member > named ‘make_request_fn’; did you mean ‘nr_requests’? bd->bd_disk->queue->make_request_fn = device_info->original_make_request_fn; ^~~~~~~~~~~~~~~ nr_requests /tmp/code/AgentDriver/src/linux/KernelTracer.c: In function ‘register_listener’: /tmp/code/AgentDriver/src/linux/KernelTracer.c:810:29: error: ‘struct request_queue’ has no member > named ‘make_request_fn’; did you mean ‘nr_requests’? if (bd->bd_disk->queue->make_request_fn == NULL) { ^~~~~~~~~~~~~~~ nr_requests make[3]: *** [/usr/src/linux-5.3.18-59.16/scripts/Makefile.build:288: /tmp/code/AgentDriver/src/linux/KernelTracer.o] Error 1 make[2]: *** [/usr/src/linux-5.3.18-59.16/Makefile:1675: module/tmp/code/AgentDriver] Error 2 make[1]: *** [../../../linux-5.3.18-59.16/Makefile:179: sub-make] Error 2 make[1]: Leaving directory '/usr/src/linux-5.3.18-59.16-obj/x86_64/default'
Code References:
KernelTracer.h:87:5: make_request_fn* original_make_request_fn;
KernelTracer.c:735:5: device_info->original_make_request_fn(q, bio);
KernelTracer.h:87:5: device_info->original_make_request_fn = bd->bd_disk->queue->make_request_fn;
KernelTracer.c:768:25: bd->bd_disk->queue->make_request_fn = make_request_hook;
KernelTracer.c:776:29: if (bd->bd_disk->queue->make_request_fn == device_info->original_make_request_fn)
KernelTracer.c:779:29: if (bd->bd_disk->queue->make_request_fn != make_request_hook) {
KernelTracer.c:784:25: bd->bd_disk->queue->make_request_fn = device_info->original_make_request_fn;
KernelTracer.c:810:29: if (bd->bd_disk->queue->make_request_fn == NULL) {
https://www.dropbox.com/s/apu7af2bvbkis8u/KernelTracer.h?dl=0 https://www.dropbox.com/s/wri7njcamc39yre/KernelTracer.c?dl=0
Thanks