On Mon, Aug 19, 2024 at 2:56 PM Ira Weiny <ira.weiny@xxxxxxxxx> wrote: > > Philip Chen wrote: > > If a pmem device is in a bad status, the driver side could wait for > > host ack forever in virtio_pmem_flush(), causing the system to hang. > > I assume this was supposed to be v2 and you resent this as a proper v2 > with a change list from v1? Ah...yes, I'll fix it and re-send it as a v2 patch. > > Ira > > > > > Signed-off-by: Philip Chen <philipchen@xxxxxxxxxxxx> > > --- > > drivers/nvdimm/nd_virtio.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/drivers/nvdimm/nd_virtio.c b/drivers/nvdimm/nd_virtio.c > > index 35c8fbbba10e..3b4d07aa8447 100644 > > --- a/drivers/nvdimm/nd_virtio.c > > +++ b/drivers/nvdimm/nd_virtio.c > > @@ -44,6 +44,15 @@ static int virtio_pmem_flush(struct nd_region *nd_region) > > unsigned long flags; > > int err, err1; > > > > + /* > > + * Don't bother to send the request to the device if the device is not > > + * acticated. > > + */ > > + if (vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_NEEDS_RESET) { > > + dev_info(&vdev->dev, "virtio pmem device needs a reset\n"); > > + return -EIO; > > + } > > + > > might_sleep(); > > req_data = kmalloc(sizeof(*req_data), GFP_KERNEL); > > if (!req_data) > > -- > > 2.46.0.76.ge559c4bf1a-goog > > > >