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 <[email protected]> --- 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

