Re: [PATCH v3] Add virtio-input driver.

From: Michael S. Tsirkin
Date: Wed Mar 25 2015 - 01:36:19 EST


On Tue, Mar 24, 2015 at 10:28:05AM -0700, Dmitry Torokhov wrote:
> > > > > + err = input_register_device(vi->idev);
> > > > > + if (err)
> > > > > + goto err_input_register;
> > > > > +
> > > > > + return 0;
> > > > > +
> > > > > +err_input_register:
> > > >
> > > > > + input_free_device(vi->idev);
> > > >
> > > > At this point you can already get interrupts
> > > > since you called virtio_device_ready, and
> > > > getting events from a freed device likely won't
> > > > DTRT.
> > >
> > > Right. I guess you want to mark the virtio device ready only after
> > > registering input device.
> >
> > No that's broken since you can get events after this
> > point, and you won't be able to forward them.
>
> Who cares?

virtio cares: guest will crash if you attempt to
kick virtqueue before device ready call.

> What makes these events needed compared to ones sent 1 ms
> earlier before we had input device registered?
>
> But I guess if you can call virtio_device_ready/virtio_device_broken
> several times then the best option is putting them into input_dev->open
> and input_dev->close callbacks.
>
> Thanks.
> --
> Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/