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 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization