diff mbox series

[v2,01/20] memory-device: fix error message when hinted address is too small

Message ID 20180829153624.12299-2-david@redhat.com
State New
Headers show
Series memory-device: complete refactoring + virtio-pmem | expand

Commit Message

David Hildenbrand Aug. 29, 2018, 3:36 p.m. UTC
The "at" should actually be a "before".
    if (new_addr < address_space_start)
     -> "can't add memory ... before... $address_space_start"

So it looks similar to the other check
    } else if ((new_addr + size) > address_space_end)
     -> "can't add memory ... beyond..."

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 hw/mem/memory-device.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert Aug. 30, 2018, 8:53 a.m. UTC | #1
* David Hildenbrand (david@redhat.com) wrote:
> The "at" should actually be a "before".
>     if (new_addr < address_space_start)
>      -> "can't add memory ... before... $address_space_start"
> 
> So it looks similar to the other check
>     } else if ((new_addr + size) > address_space_end)
>      -> "can't add memory ... beyond..."
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  hw/mem/memory-device.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c
> index 6de4f70bb4..efacbc2a7d 100644
> --- a/hw/mem/memory-device.c
> +++ b/hw/mem/memory-device.c
> @@ -146,7 +146,8 @@ uint64_t memory_device_get_free_addr(MachineState *ms, const uint64_t *hint,
>          new_addr = *hint;
>          if (new_addr < address_space_start) {
>              error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64
> -                       "] at 0x%" PRIx64, new_addr, size, address_space_start);
> +                       "] before 0x%" PRIx64, new_addr, size,
> +                       address_space_start);

OK, so


Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

>              return 0;
>          } else if ((new_addr + size) > address_space_end) {

That comparison (that's already there) doesn't look wrap-safe?

Dave
>              error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64

> -- 
> 2.17.1
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Igor Mammedov Sept. 3, 2018, 1:29 p.m. UTC | #2
On Wed, 29 Aug 2018 17:36:05 +0200
David Hildenbrand <david@redhat.com> wrote:

> The "at" should actually be a "before".
>     if (new_addr < address_space_start)
>      -> "can't add memory ... before... $address_space_start"  
> 
> So it looks similar to the other check
>     } else if ((new_addr + size) > address_space_end)
>      -> "can't add memory ... beyond..."  
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>

> ---
>  hw/mem/memory-device.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c
> index 6de4f70bb4..efacbc2a7d 100644
> --- a/hw/mem/memory-device.c
> +++ b/hw/mem/memory-device.c
> @@ -146,7 +146,8 @@ uint64_t memory_device_get_free_addr(MachineState *ms, const uint64_t *hint,
>          new_addr = *hint;
>          if (new_addr < address_space_start) {
>              error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64
> -                       "] at 0x%" PRIx64, new_addr, size, address_space_start);
> +                       "] before 0x%" PRIx64, new_addr, size,
> +                       address_space_start);
>              return 0;
>          } else if ((new_addr + size) > address_space_end) {
>              error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64
David Hildenbrand Sept. 17, 2018, 9:59 a.m. UTC | #3
Am 30.08.18 um 10:53 schrieb Dr. David Alan Gilbert:
> * David Hildenbrand (david@redhat.com) wrote:
>> The "at" should actually be a "before".
>>     if (new_addr < address_space_start)
>>      -> "can't add memory ... before... $address_space_start"
>>
>> So it looks similar to the other check
>>     } else if ((new_addr + size) > address_space_end)
>>      -> "can't add memory ... beyond..."
>>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
>> ---
>>  hw/mem/memory-device.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c
>> index 6de4f70bb4..efacbc2a7d 100644
>> --- a/hw/mem/memory-device.c
>> +++ b/hw/mem/memory-device.c
>> @@ -146,7 +146,8 @@ uint64_t memory_device_get_free_addr(MachineState *ms, const uint64_t *hint,
>>          new_addr = *hint;
>>          if (new_addr < address_space_start) {
>>              error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64
>> -                       "] at 0x%" PRIx64, new_addr, size, address_space_start);
>> +                       "] before 0x%" PRIx64, new_addr, size,
>> +                       address_space_start);
> 
> OK, so
> 
> 
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> 
>>              return 0;
>>          } else if ((new_addr + size) > address_space_end) {
> 
> That comparison (that's already there) doesn't look wrap-safe?
> 

Indeed, but it is not the only one in this file. I'll add a patch for
these. Thanks!
diff mbox series

Patch

diff --git a/hw/mem/memory-device.c b/hw/mem/memory-device.c
index 6de4f70bb4..efacbc2a7d 100644
--- a/hw/mem/memory-device.c
+++ b/hw/mem/memory-device.c
@@ -146,7 +146,8 @@  uint64_t memory_device_get_free_addr(MachineState *ms, const uint64_t *hint,
         new_addr = *hint;
         if (new_addr < address_space_start) {
             error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64
-                       "] at 0x%" PRIx64, new_addr, size, address_space_start);
+                       "] before 0x%" PRIx64, new_addr, size,
+                       address_space_start);
             return 0;
         } else if ((new_addr + size) > address_space_end) {
             error_setg(errp, "can't add memory [0x%" PRIx64 ":0x%" PRIx64