[PATCH] fs: semihosting: Use correct variable for error check
    Heinrich Schuchardt 
    heinrich.schuchardt at canonical.com
       
    Thu Oct  2 11:52:00 CEST 2025
    
    
  
On 10/2/25 11:39, Andrew Goodbody wrote:
> After calling a function that can return an error, the test to detect
> that error should use the return value not a different variable. Fix it.
> 
> This issue was found by Smatch.
> 
Fixes: f676b45151c3 ("fs: Add semihosting filesystem")
> Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
> ---
>   fs/semihostingfs.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/semihostingfs.c b/fs/semihostingfs.c
> index 77e39ca407e4d240a1fd573497c5b6b908816454..9d7a136b9ba9b035545b34b31df58e2d65de7db9 100644
> --- a/fs/semihostingfs.c
> +++ b/fs/semihostingfs.c
> @@ -35,7 +35,7 @@ static int smh_fs_read_at(const char *filename, loff_t pos, void *buffer,
>   	}
>   	if (!maxsize) {
>   		size = smh_flen(fd);
> -		if (ret < 0) {
> +		if (size < 0) {
The ARM specification 
(https://developer.arm.com/documentation/dui0203/j/semihosting/semihosting-operations/sys-flen--0x0c-) 
has:
SYS_FLEN (0x0C)
Returns the length of a specified file.
On exit, R0 contains:
     the current length of the file object, if the call is successful
     -1 if an error occurs.
Please, consider that the file length on 32bit systems may exceed 2^31 
You must not consider this as an error.
%s/if (size < 0)/if (size == -1L)/
Best regards
Heinrich
>   			smh_close(fd);
>   			return size;
>   		}
> 
> ---
> base-commit: da47ddebd16a7e1047da8537fbf01558d2a89fcf
> change-id: 20251002-fs_semihosting-85d697fbfcad
> 
> Best regards,
    
    
More information about the U-Boot
mailing list