[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