[PATCH 06/16] virtio_blk: drop config_enable

Cornelia Huck
Mon, 06 Oct 2014 12:20:38 -0000

On Mon, 6 Oct 2014 15:09:53 +0300
"Michael S. Tsirkin" <mst at redhat.com> wrote:

> On Mon, Oct 06, 2014 at 01:42:29PM +0200, Cornelia Huck wrote:
> > On Sun, 5 Oct 2014 19:07:07 +0300
> > "Michael S. Tsirkin" <mst at redhat.com> wrote:
> >
> > > Now that virtio core ensures config changes don't
> > > arrive during probing, drop config_enable flag
> > > in virtio blk.
> > > On removal, flush is now sufficient to guarantee that
> > > no change work is queued.
> > >
> > > This help simplify the driver, and will allow
> > > setting DRIVER_OK earlier without losing config
> > > change notifications.
> > >
> > > Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
> > > ---
> > >  drivers/block/virtio_blk.c | 19 ++-----------------
> > >  1 file changed, 2 insertions(+), 17 deletions(-)
> > >
> > > diff --git a/drivers/block/virtio_blk.c
b/drivers/block/virtio_blk.c
> > > index 0a58140..c8cf6a1 100644
> > > --- a/drivers/block/virtio_blk.c
> > > +++ b/drivers/block/virtio_blk.c
> >
> > > @@ -772,9 +766,7 @@ static void virtblk_remove(struct
virtio_device *vdev)
> > >  	int refc;
> > >
> > >  	/* Prevent config work handler from accessing the device. */
> >
> > /* Common code ensures no further work will be queued. */
> >
> > instead?
>
> No, I think you missed the point:
> this comment now refers to the flush below: flush is required to
> ensure work handler is not running.
>
> Agree?

I think we both mean the same thing.

Preventing the handler from access sounds to me more like "when the
handler starts running, it is prevented from accessing the
device" (like with setting config_enable, as the code did before). What
I meant was "common code has already ensured that our work-queueing
function will not be called, therefore flushing the workqueue is
enough."

(same for net)