先日投げたパッチ
いきなり staging tree に追加したよ、ってリプが入ってたんですが、その後 (おそらくは linux-next な tree に追加後と思われます)、自動チェッカなプログラムが warning を確認しました、との自動送付なメイルを受領しておりました。
最初の一通は直に自分トコのみ、だったので困ったなぁ、と思いつつスルーしてたんですが、別件なソレがようやく関係方面に着信するルートに投げてくれたようで、メンテナな gregkh-san が反応してくれました。
その顛末自体は別良いのですが、びっくりしたのは自動でアヤシげな部分を検出してくれるツールがあり、patch 投げたヒトに連絡まで自動で、ということでした。
ちなみに Fengguang さんから頂戴してた coccinelle warning は
389 static int rtsx_resume(struct pci_dev *pci) 390 { 391 struct rtsx_dev *dev = (struct rtsx_dev *)pci_get_drvdata(pci); 392 struct rtsx_chip *chip; 393 394 dev_info(&dev->pci->dev, "Ready to resume\n"); 395 396 if (!dev) { > 397 dev_err(&dev->pci->dev, "Invalid memory\n"); 398 return 0; 399 } 400
で、397 の dev が NULL なのにどうよ、的ご指摘。gregkh さん曰く、394 のソレも検出しなきゃ、とのご託宣でしたがそこまで言うんスか、という気持ちも無くはなかったり。
もひとつ Dan-san から頂戴していた Smatch という名前らしいチェッカによれば
drivers/staging/rts_pstor/rtsx.c 354 355 dev_info(&dev->pci->dev, "Ready to suspend\n"); ^^^^^^^^^^^^^ New dereference. 356 357 if (!dev) { ^^^^ Old check. 358 dev_err(&dev->pci->dev, "Invalid memory\n"); ^^^^^^^^^^^^ Another NULL dereference.
すばら、という事なのでしょうか。ただ、ちょっと違う観点で検出している風にも見えますが、そうでもないのかな。そうだとしたらなかなかに凄い。
ちなみに
これらの自動チェックなメイルの送付元ドメインは intel.com とか oracle.com でした。R&D とかな部署あたりでこんなツールも作って試験してるんだろうなぁ。
ということでこの件、gregkh さんによれば
Both of these lines (dev_info() and dev_err()), should just be removed entirely, solving this problem, and making the syslog less noisy.
とのことでざっくり削除なパッチを作ってはいるので、パッチ当てな試験して送付の方向です。AC アダプタあって良かった。