[PATCH master 05/39] efi: loader: fix disk write return value check

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Feb 16 00:44:05 PST 2026


cdev_write() returns the number of bytes written on success (a
positive value), not zero. Using 'ret ?' treats any successful write
as an error. Fix by checking 'ret < 0' which correctly detects only
actual errors.

Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 efi/loader/protocols/disk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/efi/loader/protocols/disk.c b/efi/loader/protocols/disk.c
index 835dee4e2e26..b4a3a7ab0c97 100644
--- a/efi/loader/protocols/disk.c
+++ b/efi/loader/protocols/disk.c
@@ -99,7 +99,7 @@ static efi_status_t EFIAPI efi_disk_write(struct efi_block_io_protocol *this,
 
 	ret = cdev_write(disk->cdev, buffer, buffer_size, lba << disk->blockbits, 0);
 
-	return ret ? EFI_DEVICE_ERROR : EFI_SUCCESS;
+	return ret < 0 ? EFI_DEVICE_ERROR : EFI_SUCCESS;
 }
 
 static efi_status_t EFIAPI efi_disk_flush(struct efi_block_io_protocol *this)
-- 
2.47.3




More information about the barebox mailing list