virtio: explicit enable_cb/disable_cb rather than callback return.

It seems that virtio_net wants to disable callbacks (interrupts) before
calling netif_rx_schedule(), so we can't use the return value to do so.

Rename "restart" to "cb_enable" and introduce "cb_disable" hook: callback
now returns void, rather than a boolean.

Signed-off-by: Rusty Russell <[email protected]>
This commit is contained in:
Rusty Russell 2008-02-04 23:49:57 -05:00
commit 18445c4d50
8 changed files with 35 additions and 25 deletions

View file

@ -36,7 +36,7 @@ struct virtblk_req
struct virtio_blk_inhdr in_hdr;
};
static bool blk_done(struct virtqueue *vq)
static void blk_done(struct virtqueue *vq)
{
struct virtio_blk *vblk = vq->vdev->priv;
struct virtblk_req *vbr;
@ -65,7 +65,6 @@ static bool blk_done(struct virtqueue *vq)
/* In case queue is stopped waiting for more buffers. */
blk_start_queue(vblk->disk->queue);
spin_unlock_irqrestore(&vblk->lock, flags);
return true;
}
static bool do_req(struct request_queue *q, struct virtio_blk *vblk,