On 64-bit architectures (which is all we care about right now in ACPI code), the value coming from a __u32 field makes "len" positive anyway, but since from an abstract pov the tool is right, let's just re-order things. Coverity ID: 1204965 Signed-off-by: Jan Beulich --- a/xen/drivers/acpi/apei/erst.c +++ b/xen/drivers/acpi/apei/erst.c @@ -672,9 +672,11 @@ static ssize_t __erst_read(u64 record_id if (rcd_tmp->record_length > buflen) return -ENOBUFS; len = rcd_tmp->record_length; + if (len < 0) + return -ERANGE; memcpy(record, rcd_tmp, len); - return len >= 0 ? len : -ERANGE; + return len; } /*