We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 9484b5b + 0739c2c commit b822e8fCopy full SHA for b822e8f
1 file changed
drivers/block/virtio_blk.c
@@ -1027,8 +1027,13 @@ static int init_vq(struct virtio_blk *vblk)
1027
out:
1028
kfree(vqs);
1029
kfree(vqs_info);
1030
- if (err)
+ if (err) {
1031
kfree(vblk->vqs);
1032
+ /*
1033
+ * Set to NULL to prevent freeing vqs again during freezing.
1034
+ */
1035
+ vblk->vqs = NULL;
1036
+ }
1037
return err;
1038
}
1039
@@ -1599,6 +1604,12 @@ static int virtblk_freeze_priv(struct virtio_device *vdev)
1599
1604
1600
1605
vdev->config->del_vqs(vdev);
1601
1606
1607
1608
+ * Set to NULL to prevent freeing vqs again after a failed vqs
1609
+ * allocation during resume. Note that kfree() already handles NULL
1610
+ * pointers safely.
1611
1612
1602
1613
1603
1614
return 0;
1615
0 commit comments