昨晩送付したパッチ
一つは
#if 0 #endif
で囲まれてる部分なので却下。もう一つはいくつかコメントが付いてた。最初は鬼の棲みかだが対応は丁寧なのかと思ってたんですが、あえてハードルを上げてる疑惑も出てきてたりして恐しい。
コメントを以下に列挙しつつ確認してみます。
- pr_fmt な #define を先頭に追加してくれ
- 標題先頭の panel: は削除してね
- kzalloc 失敗時の printk は不要?
- メセジに関数名直書きなナニは __func__ 使ってよ
などなどらしい。
pr_fmt
先頭に以下なマクロ定義を追加してくれ、とのこと。
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
before all #include らしい。include/linux/printk.h 見てみたら以下な記述が。
#ifndef pr_fmt #define pr_fmt(fmt) fmt #endif #define pr_emerg(fmt, ...) \ printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) #define pr_alert(fmt, ...) \ printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) #define pr_crit(fmt, ...) \ printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) #define pr_err(fmt, ...) \ printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
むむ。成程。こーゆー子細なルールが沢山ありそうで怖いですね。
kzalloc なんちゃら
find-grep してみたら以下な記述を見つけました。
cmd = kzalloc(cmd_len, GFP_KERNEL); if (cmd == NULL) return -ENOMEM;
たしかに printk しておりませんな。もっかい見直してみましょうね。
つうか
もうすこし考えてパッチ書け、てことかorz
とは言えもうちょっとだけ続けてみます。
追記
む、
and remove the "panel: " prefixes from output messages.
は printk の、という意図か。ちなみに drivers 配下を find-grep してみたら以下な例を発見。
drivers/base/power/opp.c: pr_err("%s: Invalid parameters\n", __func__);
つうことで、pr_err は以下なカンジの書き方に修正。あと、kzalloc だの kmalloc だのな戻り NULL 時は printk はしない形に。
if (parport_register_driver(&panel_driver)) { pr_err("%s: could not register with parport. Aborting.\n", __func__); return -EIO; }
で、ここから
- make -C hoge M=`pwd` modules して
- コンパイル通ったら commit 作って
- git format-patch して
- 作ったパッチを試験用の branch でアテて checkpatch な確認とか make とかして
- 無問題であれば自分にメイル投げて
- 再送
なのか。
がしかし
何を思ったか clean してしまいorz