以下の nvidia のドライバが Linux 5.3 でコンパイルできない話.
- nvidia-kernel-dkms 418.74-1
- nvidia-legacy-390xx-kernel-dkms 390.116-1
具体的には以下のエラー.
In file included from /var/lib/dkms/nvidia-current/418.74/build/nvidia/nv_uvm_interface.c:21:
/var/lib/dkms/nvidia-current/418.74/build/nvidia/nv_uvm_interface.c: In function ‘nvUvmInterfaceDeRegisterUvmOps’:
/var/lib/dkms/nvidia-current/418.74/build/common/inc/nv-linux.h:733:21: error: void value not ignored as it ought to be
int __ret = on_each_cpu(func, info, 1); \
^~~~~~~~~~~
/var/lib/dkms/nvidia-current/418.74/build/nvidia/nv_uvm_interface.c:991:5: note: in expansion of macro ‘NV_ON_EACH_CPU’
NV_ON_EACH_CPU(flush_top_half, NULL);
^~~~~~~~~~~~~~
これは smp: Remove smp_call_function() and on_each_cpu() return values で on_each_cpu
が値を返さなくなったということなので,マクロでダミーの正常時の戻り値を作ってしまえばOK.以下パッチ.nvidia-legacy-390xx-kernel-dkms
も同様.
--- a/common/inc/nv-linux.h
+++ b/common/inc/nv-linux.h
@@ -730,8 +730,8 @@ static inline void nv_vunmap(NvUPtr vaddr, NvU32 page_count)
#elif (NV_ON_EACH_CPU_ARGUMENT_COUNT == 3)
#define NV_ON_EACH_CPU(func, info) \
({ \
- int __ret = on_each_cpu(func, info, 1); \
- __ret; \
+ on_each_cpu(func, info, 1); \
+ 0; \
})
#else
#error "NV_ON_EACH_CPU_ARGUMENT_COUNT value unrecognized!"
Related articles
- 2021/01/13 21:27 / brtfs 上に swap ファイルを置く
- 2020/09/11 20:24 / Linux 5.9-rc4
- 2020/07/12 16:42 / Linux 5.8-rc4
- 2020/05/01 21:21 / Linux 5.7-rc1
- 2020/04/03 22:18 / Linux 5.6.x fs/cachefiles/rdwr.c bug
- 2020/02/22 19:33 / Linux 5.6-rc2
- 2020/01/11 20:50 / Linux 5.5-rc5
- 2019/11/25 14:45 / nvidia-kernel-dkms 418.74-1 with Linux 5.4
- 2019/10/02 00:03 / Linux 5.3.1 -> 5.4-rc1
- 2019/07/22 19:13 / Linux 5.2.2 -> 5.3-rc1
- 2019/06/28 20:38 / GeForce GT 430 with nvidia-legacy-390xx-kernel-dkms 390.116-1~bpo9+1
- 2019/06/12 16:10 / Linux 5.1.8 -> 5.2-rc4
- 2019/05/07 19:43 / Linux 5.0.9 -> 5.1.0
- 2019/03/07 22:16 / Linux 4.20.13 -> 5.0.0
- 2018/11/06 11:30 / Linux 4.19.0 -> 4.20-rc1
- 2018/08/29 11:06 / Linux 4.18.5 -> 4.19-rc1
- 2018/06/20 17:06 / Linux 4.17.2 -> 4.18-rc1
- 2018/04/19 15:25 / Linux 4.16.2 -> 4.17-rc1
- 2018/02/12 17:23 / Linux 4.15.3 -> 4.16-rc1
- 2018/01/29 11:08 / Linux 4.14.15 -> 4.15
- 2017/11/28 12:42 / Linux 4.14.2 -> 4.15-rc1
- 2017/11/15 15:56 / Linux ORC unwinder と objtool (CONFIG_STACK_VALIDATION needs tools/objtool/objtool along headers)
- 2017/11/15 15:41 / Linux 4.13.12 -> 4.14.0
- 2017/09/18 07:04 / Linux 4.13.1 -> 4.14-rc1
- 2017/09/05 04:14 / Linux 4.12.10 -> 4.13
- 2017/07/16 23:56 / Linux 4.12.0 -> 4.13-rc1
- 2017/05/15 14:04 / Linux 4.11.0 -> 4.12-rc1
- 2017/05/03 00:24 / Linux 4.10.13 -> 4.11.0
- 2017/03/06 09:51 / Linux 4.10.1 -> 4.11-rc1
- 2017/02/20 10:31 / Linux 4.9.X -> 4.10
- 2016/12/30 21:28 / Linux 4.9 -> 4.10-rc1
- 2016/12/14 23:00 / Linux 4.8 -> 4.9