hwrng: virtio - simplify probe_common()
PATCH 1/2 hwrng: virtio - simplify probe_common()
Drop the redundant NULL initialization since vi is immediately reassigned. Drop the redundant index variable and use vi->index directly. Also call ida_free() directly and consolidate the error cleanup paths.
--- drivers/char/hw_random/virtio-rng.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
drivers/char/hw_random/virtio-rng.c +9 -10
@@ -150,17 +150,17 @@ static void virtio_cleanup(struct hwrng *rng)static int probe_common (struct virtio_device *vdev) { -int err, index; -struct virtrng_info *vi =NULL ; +int err; +struct virtrng_info *vi; vi = kzalloc_obj(struct virtrng_info);if (!vi)return -ENOMEM ; - vi->index = index =ida_alloc (&rng_index_ida,GFP_KERNEL ); -if (index <0 ) { - err = index; - goto err_ida; + vi->index =ida_alloc (&rng_index_ida,GFP_KERNEL ); +if (vi->index <0 ) { + err = vi->index; + goto err; }snprintf (vi->name,sizeof (vi->name),"virtio_rng.%d" , vi->index);init_completion (&vi->have_data);
@@ -177,7 +177,8 @@ static int probe_common(struct virtio_device *vdev) vi->vq =virtio_find_single_vq (vdev, random_recv_done,"input" );if (IS_ERR (vi->vq)) { err =PTR_ERR (vi->vq); - goto err_find; +ida_free (&rng_index_ida, vi->index); + goto err; }virtio_device_ready (vdev);
@@ -187,9 +188,7 @@ static int probe_common(struct virtio_device *vdev)return 0 ; -err_find: -ida_free (&rng_index_ida, index); -err_ida: +err: vdev->priv =NULL ;kfree (vi);return err;
PATCH 2/2 hwrng: virtio - simplify virtrng_restore()
Return errors directly to simplify the control flow.
--- drivers/char/hw_random/virtio-rng.c | 31 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 15 deletions(-)
drivers/char/hw_random/virtio-rng.c +16 -15
@@ -244,26 +244,27 @@ static int virtrng_freeze(struct virtio_device *vdev)static int virtrng_restore (struct virtio_device *vdev) { +struct virtrng_info *vi;int err; err =probe_common (vdev); -if (!err) { -struct virtrng_info *vi = vdev->priv; +if (err) +return err; + vi = vdev->priv; -/* -* Set hwrng_removed to ensure that virtio_read() -* does not block waiting for data before the -* registration is complete. -*/ - vi->hwrng_removed = true; - err =hwrng_register (&vi->hwrng); -if (!err) { - vi->hwrng_register_done = true; - vi->hwrng_removed = false; - } - } +/* +* Set hwrng_removed to ensure that virtio_read() +* does not block waiting for data before the +* registration is complete. +*/ + vi->hwrng_removed = true; + err =hwrng_register (&vi->hwrng); +if (err) +return err; -return err; + vi->hwrng_register_done = true; + vi->hwrng_removed = false; +return 0 ; }static const struct virtio_device_id id_table[] = {
[email protected]
AI reviewRe: [PATCH 2/2] hwrng: virtio - simplify virtrng_restore()
Sashiko has reviewed this patch and found no issues.
Quoted 3 lines
Return errors directly to simplify the control flow.
Signed-off-by Thorsten Blum <[email protected]>
Sashiko has reviewed this patch and found no issues.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
[email protected]
AI reviewSashiko has reviewed this patch and found no issues.
Quoted 6 lines
Drop the redundant NULL initialization since vi is immediately reassigned. Drop the redundant index variable and use
vi->indexdirectly. Also callida_free()directly and consolidate the error cleanup paths.Signed-off-by Thorsten Blum <[email protected]>
Sashiko has reviewed this patch and found no issues.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1