やるきなし

2017/11/28 12:42 / Linux 4.14.2 -> 4.15-rc1

4.15-rc1が出ているので .config がどう変更されるのか見てみた.汎用指向の環境.以下 - は削除されたもの,+ は追加されたもの.

以下,その他.

追記 (2017/12/12)

timer: Pass timer_list pointer to callbacks unconditionallyで struct timer_list から (unsigned long) data が削除されていて,timer: Remove init_timer() interfaceでinit_timer()が削除されたりで,broadcom-sta-dkms (6.30.223.271-7), nvidia-kernel-dkms (384.98-3), nvidia-legacy-340xx-kernel-dkms (340.104-3) の kernel module の build に失敗する.nvidia-kernel-dkms (384.98-3) の場合以下のような感じ.

[/var/lib/dkms/nvidia-current/384.98/build/make.log] 抜粋
/var/lib/dkms/nvidia-current/384.98/build/nvidia/nv.c: In function ‘nv_start_rc_timer’:
/var/lib/dkms/nvidia-current/384.98/build/nvidia/nv.c:3259:5: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-de
claration]
     init_timer(&nvl->rc_timer);
     ^~~~~~~~~~
     init_timers
/var/lib/dkms/nvidia-current/384.98/build/nvidia/nv.c:3260:28: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
     nvl->rc_timer.function = nvidia_rc_timer;
                            ^
/var/lib/dkms/nvidia-current/384.98/build/nvidia/nv.c:3261:18: error: ‘struct timer_list’ has no member named ‘data’
     nvl->rc_timer.data = (unsigned long) nvl;
                  ^
cc1: some warnings being treated as errors
scripts/Makefile.build:310: recipe for target '/var/lib/dkms/nvidia-current/384.98/build/nvidia/nv.o' failed

treewide: init_timer() -> setup_timer()にあるとおり以下のような変更をすればよいはずなのだが試していない.

This mechanically converts all remaining cases of ancient open-coded timer
setup with the old setup_timer() API, which is the first step in timer
conversions. This has no behavioral changes, since it ultimately just
changes the order of assignment to fields of struct timer_list when
finding variations of:

    init_timer(&t);
    f.function = timer_callback;
    t.data = timer_callback_arg;

to be converted into:

    setup_timer(&t, timer_callback, timer_callback_arg);

Related articles