Maxの日記: ckPatch(4)
修正が出ていたらしい
http://www.plumlocosoft.com/kernel/patches/2.4/2.4.22/2.4.22-ck2/fixes/patch-2.4.22-ck2-fix.patch
なんか変な内容なんだがー。
中をチェックしながら手動でパッチしてみる。
いくつか当てはまらないのもあるが、要点としては2つ。
diff -urN linux-2.4.22/kernel/sched.c linux-2.4.22.trustix/kernel/sched.c
--- linux-2.4.22/kernel/sched.c 2003-09-15 01:01:16.000000000 +1000
+++ linux-2.4.22.trustix/kernel/sched.c 2003-09-15 01:01:33.000000000 +1000
@@ -1035,7 +1035,7 @@
*/
#define CAN_MIGRATE_TASK(p,rq,this_cpu) \
- ((jiffies - (p)->sleep_timestamp > cache_decay_ticks) && \
+ ((jiffies - (p)->timestamp > cache_decay_ticks) && \
!task_running(rq, p) && \
((p)->cpus_allowed & (1UL blocked);
flush_signals(current);
- current->nice = -15;
+ set_user_nice(current, -15);
set_fs(KERNEL_DS);
これを施して再度コンパイル。
****
だめ、こんどはpcmcia-csで引っかかってしまった。
cs.c: 関数 `setup_socket' 内:
cs.c:482: `CONFIG_HZ' が宣言されていません (この関数内で最初に利用)
とかのたまひけり。
追いかけてみたが、HZが include/asm-i386/param.hで定義されていて、さらに include/linux/config.hからそれを取得。
さらにinclude/linux/autoconf.hで本体が定義されている。これらがなぜかそのとおりに動いていない。
本来なら HZ = (1000)となるはず。
このあたりもPreemptive Patchで弄られているところみたいだ。
lxrで見る限りはそういうコーディングではない。
どうして?
****
意味ねーかもしれないが、modules/pcmciaでmake configしなおし。
カーネルソースの所在をちゃんと認識させてみるつもりで、再度。
ckPatch(4) More ログイン