やるきなし

2022/04/18 15:22 / Linux 5.17

Linux 5.17 がでたので 5.16.18 から .config がどう変更されるのか見てみた.もう 5.17.3 が出ているけど 5.16 は EOL らしいので.以下 - は削除されたもの,+ は追加されたもの.x86_64.New features 等は https://www.phoronix.com/scan.php?page=article&item=linux-517-features 参照.

追加

削除

モジュール化

nvidia-legacy-390xx-kernel-dkms

proc: remove PDE_DATA() completelyの影響で bullseye の nvidia-legacy-390xx-kernel-dkms の compile に以下の通り失敗する.

/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c: In function ‘nv_procfs_open_gpu_info’:
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:118:29: error: implicit declaration of function ‘PDE’ [-Werror=implicit-function-declaration]
  118 | # define NV_PDE_DATA(inode) PDE(inode)->data
      |                             ^~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:136:13: note: in expansion of macro ‘NV_PDE_DATA’
  136 |             NV_PDE_DATA(inode));                                              \
      |             ^~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c:161:1: note: in expansion of macro ‘NV_DEFINE_PROCFS_SINGLE_FILE’
  161 | NV_DEFINE_PROCFS_SINGLE_FILE(gpu_info);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:118:39: error: invalid type argument of ‘->’ (have ‘int’)
  118 | # define NV_PDE_DATA(inode) PDE(inode)->data
      |                                       ^~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:136:13: note: in expansion of macro ‘NV_PDE_DATA’
  136 |             NV_PDE_DATA(inode));                                              \
      |             ^~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c:161:1: note: in expansion of macro ‘NV_DEFINE_PROCFS_SINGLE_FILE’
  161 | NV_DEFINE_PROCFS_SINGLE_FILE(gpu_info);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c: In function ‘nv_procfs_open_version’:
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:118:39: error: invalid type argument of ‘->’ (have ‘int’)
  118 | # define NV_PDE_DATA(inode) PDE(inode)->data
      |                                       ^~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:136:13: note: in expansion of macro ‘NV_PDE_DATA’
  136 |             NV_PDE_DATA(inode));                                              \
      |             ^~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c:175:1: note: in expansion of macro ‘NV_DEFINE_PROCFS_SINGLE_FILE’
  175 | NV_DEFINE_PROCFS_SINGLE_FILE(version);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c: In function ‘nv_procfs_open_file’:
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:118:39: error: invalid type argument of ‘->’ (have ‘int’)
  118 | # define NV_PDE_DATA(inode) PDE(inode)->data
      |                                       ^~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c:195:23: note: in expansion of macro ‘NV_PDE_DATA’
  195 |     nvfp->proc_data = NV_PDE_DATA(inode);
      |                       ^~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c: In function ‘nv_procfs_open_params’:
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:118:39: error: invalid type argument of ‘->’ (have ‘int’)
  118 | # define NV_PDE_DATA(inode) PDE(inode)->data
      |                                       ^~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/common/inc/nv-procfs.h:136:13: note: in expansion of macro ‘NV_PDE_DATA’
  136 |             NV_PDE_DATA(inode));                                              \
      |             ^~~~~~~~~~~
/var/lib/dkms/nvidia-legacy-390xx/390.147/build/nvidia/nv-procfs.c:346:1: note: in expansion of macro ‘NV_DEFINE_PROCFS_SINGLE_FILE’
  346 | NV_DEFINE_PROCFS_SINGLE_FILE(params);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

/usr/src/nvidia-legacy-390xx-390.147 に以下のパッチをあてればなんとかなる.

--- a/common/inc/nv-procfs.h
+++ b/common/inc/nv-procfs.h
@@ -113,7 +113,7 @@ typedef struct file_operations nv_proc_ops_t;
     })

 #if defined(NV_PDE_DATA_PRESENT)
-# define NV_PDE_DATA(inode) PDE_DATA(inode)
+# define NV_PDE_DATA(inode) pde_data(inode)
 #else
 # define NV_PDE_DATA(inode) PDE(inode)->data
 #endif
--- a/conftest.sh
+++ b/conftest.sh
@@ -1800,7 +1800,7 @@ compile_test() {
             CODE="
             #include <linux/proc_fs.h>
             void conftest_PDE_DATA(void) {
-                PDE_DATA();
+                pde_data();
             }"

             compile_check_conftest "$CODE" "NV_PDE_DATA_PRESENT" "" "functions"

Related articles