On 2019/10/29 äå3:42, Zhu Lingshan wrote:Thanks Jason, then I believe upper layer can handle this well.
+ÂÂÂ void (*set_status)(struct mdev_device *mdev, u8 status);Hi Jason
Is it possible to make set_status() return an u8 or bool, because this
may fail in real hardware. Without a returned code, I am not sure
whether it is a good idea to set the status | NEED_RESET when fail.
Thanks,
BR
Zhu Lingshan
Hi:
It's possible but I'm not sure whether any user will care about it. E.g
see virtio_add_status():
void virtio_add_status(struct virtio_device *dev, unsigned int status)
{
ÂÂÂ might_sleep();
ÂÂÂ dev->config->set_status(dev, dev->config->get_status(dev) | status);
}
EXPORT_SYMBOL_GPL(virtio_add_status);
And I believe how it work should be:
virtio_add_status(xyz);
status = virtio_get_status();
if (!(status & xyz))
ÂÂÂ error;
Thanks