qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] new memory api: offsets?


From: Avi Kivity
Subject: Re: [Qemu-devel] new memory api: offsets?
Date: Tue, 06 Sep 2011 10:50:21 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0

On 09/01/2011 01:00 PM, Michael Walle wrote:
Am Donnerstag 01 September 2011, 07:54:28 schrieb Avi Kivity:
>  On 09/01/2011 01:54 AM, Michael Walle wrote:
>  >  Hi Avi,
>  >
>  >  while debugging, i noticed, that mr->offset is never set, expect in the
>  >  initializer. (The subregion collision warning is printed although the
>  >  regions are not overlapping.) Is this intended?
>
>  Did you miss memory_region_set_offset()?
I saw that function but it's never called. Now i noticed that this is a
deprecated public function.

>  The subregion collision warning is unrelated?
you are walking along the subregions and use that offset property to detect
collisions. Shouldn't you use the addr property instead?

Ah, of course.


@@ -1190,16 +1190,18 @@ static void
memory_region_add_subregion_common(MemoryRegion *mr,
          if (subregion->may_overlap || other->may_overlap) {
              continue;
          }
-        if (offset>= other->offset + other->size
-            || offset + subregion->size<= other->offset) {
+        if (offset>= other->addr + other->size
+            || offset + subregion->size<= other->addr) {
              continue;
          }

Right.  Please post with a changelog and signoff.


>  >  btw. you may include the memory region name in the warning.
>
>  sure, patches welcome.

-        printf("warning: subregion collision %llx/%llx vs %llx/%llx\n",
+        printf("warning: subregion collision %llx/%llx (%s) "
+               "vs %llx/%llx (%s)\n",
                 (unsigned long long)offset,
                 (unsigned long long)subregion->size,
-               (unsigned long long)other->offset,
-               (unsigned long long)other->size);
+               subregion->name,
+               (unsigned long long)other->addr,
+               (unsigned long long)other->size,
+               other->name);

let me know if i should post a git patch instead :)


Yes, with a signoff.

--
error compiling committee.c: too many arguments to function




reply via email to

[Prev in Thread] Current Thread [Next in Thread]