いわさきです

下川さん、お久しぶりです :)

> codeを斜め読みしだけなので, 間違ってるかもしれませんが,
> 気になった点をいくつか指摘させてください.

いやー指摘頂いた点は、実は全部不安になってたところなんです。
ありがとうございます。
特に、

> 3. kproc 必要?
> 私の印象ですが, nop送るだけなら, わざわざ, kproc 作る必要が
> あるかなと思います. 同期 request を使うから sleep しなくて
> はいけないのであって, 普通に非同期 request して,
> callback で, struct ciss_reqest を解放する位で良いような
> 気がします.

この発想は抜けてました。こっちが断然いいですね。

static void
ciss_nop_complete(struct ciss_request *cr)
{
                :
    ciss_release_request(cr);
}

こんなのを用意しておいて、ciss_periodic()では、

    if ((error = ciss_get_request(sc, &cr)) == 0) {
        cr->cr_complete = ciss_nop_complete;
                        :
        ciss_start(cr); /* XXX 一応戻り値もチェックした方がよいかも */
    }

こんな感じでNOP messageを投げるだけのパッチを作ってみます。
ずいぶん小さくなりそうです :-)

では

メールによる返信