昨晩送付したパッチ

一つは

#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