[PATCH] virtio: fix return value check

Christian Pötzsch christian.poetzsch at kernkonzept.com
Tue May 12 10:39:49 CEST 2026


The virtio_blk_do_single_req function returns ulong, which normally is
the processed size, but in an error case can be the actual error. Use
the special IS_ERR_VALUE macro to test for error.

Addresses-Coverity-ID: CID 645833 (DEADCODE) & CID 645834 (NO_EFFECT)
Signed-off-by: Christian Pötzsch <christian.poetzsch at kernkonzept.com>
---
 drivers/virtio/virtio_blk.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/virtio/virtio_blk.c b/drivers/virtio/virtio_blk.c
index 45fb596a330..7b1d891cdcb 100644
--- a/drivers/virtio/virtio_blk.c
+++ b/drivers/virtio/virtio_blk.c
@@ -13,6 +13,7 @@
 #include <virtio.h>
 #include <virtio_ring.h>
 #include <linux/log2.h>
+#include <linux/err.h>
 #include "virtio_blk.h"
 #include <malloc.h>
 
@@ -181,7 +182,7 @@ static ulong virtio_blk_do_req(struct udevice *dev, u64 sector,
 
 		ret = virtio_blk_do_single_req(dev, sector + i, blk_per_sg,
 					       buffer + i * 512, type);
-		if (ret < 0)
+		if (IS_ERR_VALUE(ret))
 			return ret;
 		i += blk_per_sg;
 	}
-- 
2.47.3



More information about the U-Boot mailing list