diff mbox series

[01/18] migration/vmstate: Document vmstate_dummy

Message ID 20200703201911.26573-2-f4bug@amsat.org (mailing list archive)
State New, archived
Headers show
Series hw: Mark the device with no migratable fields | expand

Commit Message

Philippe Mathieu-Daudé July 3, 2020, 8:18 p.m. UTC
vmstate_dummy is special and restricted to linux-user. See commit
c71c3e99b8 ("Add a vmstate_dummy struct for CONFIG_USER_ONLY").

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 include/migration/vmstate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert July 16, 2020, 9:22 a.m. UTC | #1
* Philippe Mathieu-Daudé (f4bug@amsat.org) wrote:
> vmstate_dummy is special and restricted to linux-user. See commit
> c71c3e99b8 ("Add a vmstate_dummy struct for CONFIG_USER_ONLY").
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  include/migration/vmstate.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index f68ed7db13..af7d80cd4e 100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -194,7 +194,7 @@ struct VMStateDescription {
>      const VMStateDescription **subsections;
>  };
>  
> -extern const VMStateDescription vmstate_dummy;
> +extern const VMStateDescription vmstate_dummy; /* Exclusively for linux-user */

Which does mean it's a unfortunate name I guess for something so
specific.
(It's also very weird having a vmsd defined with no VMSTATE_END_OF_LIST
marker).

Dave

>  extern const VMStateInfo vmstate_info_bool;
>  
> -- 
> 2.21.3
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Daniel P. Berrangé July 16, 2020, 9:52 a.m. UTC | #2
On Fri, Jul 03, 2020 at 10:18:54PM +0200, Philippe Mathieu-Daudé wrote:
> vmstate_dummy is special and restricted to linux-user. See commit
> c71c3e99b8 ("Add a vmstate_dummy struct for CONFIG_USER_ONLY").
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  include/migration/vmstate.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index f68ed7db13..af7d80cd4e 100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -194,7 +194,7 @@ struct VMStateDescription {
>      const VMStateDescription **subsections;
>  };
>  
> -extern const VMStateDescription vmstate_dummy;
> +extern const VMStateDescription vmstate_dummy; /* Exclusively for linux-user */

Originally in the commit mentioned above, this was enforced at build time:

  +#ifdef CONFIG_USER_ONLY
  +extern const VMStateDescription vmstate_dummy;
  +#endif


but this was removed in

  commit 6afc14e92ac81b29c25f097468f7751d5df1b5bc
  Author: Stefan Weil <sw@weilnetz.de>
  Date:   Fri Feb 6 22:43:10 2015 +0100

    migration: Fix warning caused by missing declaration of vmstate_dummy
    
    Warning from the Sparse static analysis tool:
    
    stubs/vmstate.c:4:26: warning:
     symbol 'vmstate_dummy' was not declared. Should it be static?


So if this is really intended to only be used by linux-user, then I
suggest we put CONFIG_USER_ONLY back, and figure out a different
way to address the undeclared symbol problem. I guess the problem
was that stub code is shared both both user/softmmu builds. So
perhaps we need to stub this in linux-user only code, instead of
having it in the main stub library that is common.


Regards,
Daniel
Philippe Mathieu-Daudé July 16, 2020, 10 a.m. UTC | #3
On 7/16/20 11:52 AM, Daniel P. Berrangé wrote:
> On Fri, Jul 03, 2020 at 10:18:54PM +0200, Philippe Mathieu-Daudé wrote:
>> vmstate_dummy is special and restricted to linux-user. See commit
>> c71c3e99b8 ("Add a vmstate_dummy struct for CONFIG_USER_ONLY").
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>  include/migration/vmstate.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
>> index f68ed7db13..af7d80cd4e 100644
>> --- a/include/migration/vmstate.h
>> +++ b/include/migration/vmstate.h
>> @@ -194,7 +194,7 @@ struct VMStateDescription {
>>      const VMStateDescription **subsections;
>>  };
>>  
>> -extern const VMStateDescription vmstate_dummy;
>> +extern const VMStateDescription vmstate_dummy; /* Exclusively for linux-user */
> 
> Originally in the commit mentioned above, this was enforced at build time:
> 
>   +#ifdef CONFIG_USER_ONLY
>   +extern const VMStateDescription vmstate_dummy;
>   +#endif
> 
> 
> but this was removed in
> 
>   commit 6afc14e92ac81b29c25f097468f7751d5df1b5bc
>   Author: Stefan Weil <sw@weilnetz.de>
>   Date:   Fri Feb 6 22:43:10 2015 +0100
> 
>     migration: Fix warning caused by missing declaration of vmstate_dummy
>     
>     Warning from the Sparse static analysis tool:
>     
>     stubs/vmstate.c:4:26: warning:
>      symbol 'vmstate_dummy' was not declared. Should it be static?
> 
> 
> So if this is really intended to only be used by linux-user, then I
> suggest we put CONFIG_USER_ONLY back, and figure out a different
> way to address the undeclared symbol problem. I guess the problem
> was that stub code is shared both both user/softmmu builds. So
> perhaps we need to stub this in linux-user only code, instead of
> having it in the main stub library that is common.

Good idea, I'll look at it.

Thanks,

Phil.
diff mbox series

Patch

diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index f68ed7db13..af7d80cd4e 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -194,7 +194,7 @@  struct VMStateDescription {
     const VMStateDescription **subsections;
 };
 
-extern const VMStateDescription vmstate_dummy;
+extern const VMStateDescription vmstate_dummy; /* Exclusively for linux-user */
 
 extern const VMStateInfo vmstate_info_bool;