qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] ipmi/sim: fix watchdog_expired data type error in IPMIBmcSim


From: Corey Minyard
Subject: Re: [PATCH] ipmi/sim: fix watchdog_expired data type error in IPMIBmcSim struct
Date: Fri, 25 Jun 2021 08:56:35 -0500

On Fri, Jun 25, 2021 at 10:12:32AM +0800, Jinhua Cao wrote:
> 1) watchdog_expired is set bool which value could only be 0 or 1,
> but watchdog_expired every bit mean different Timer Use.
> 
> 2) Use the command  -ipmitool mc get watchdog-  to query
> ipmi-watchdog status in guest.
> ...
> [root@localhost ~]# ipmitool mc watchdog get
> Watchdog Timer Use:     SMS/OS (0x44)
> Watchdog Timer Is:      Started/Running
> Watchdog Timer Actions: Hard Reset (0x01)
> Pre-timeout interval:   0 seconds
> Timer Expiration Flags: 0x00
> Initial Countdown:      60 sec
> Present Countdown:      57 sec
> ...
> bool for watchdog_expired results -Timer Expiration Flags- always
> be 0x00 or 0x01, but the -Timer Expiration Flags- indicts the Timer Use
> after timeout. So change watchdog_expired data type from bool to uint8_t
> to fix this problem.

Yes, you are right.  This is queued.

I checked, a bool is sent as a byte, just like a uint8_t, so the vmstate
transfer should be ok with this change.

Thanks,

-corey

> 
> Signed-off-by: Jinhua Cao <caojinhua1@huawei.com>
> ---
>  hw/ipmi/ipmi_bmc_sim.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
> index 55fb81fa5a..905e091094 100644
> --- a/hw/ipmi/ipmi_bmc_sim.c
> +++ b/hw/ipmi/ipmi_bmc_sim.c
> @@ -189,7 +189,7 @@ struct IPMIBmcSim {
>      uint8_t  watchdog_use;
>      uint8_t  watchdog_action;
>      uint8_t  watchdog_pretimeout; /* In seconds */
> -    bool     watchdog_expired;
> +    uint8_t  watchdog_expired;
>      uint16_t watchdog_timeout; /* in 100's of milliseconds */
>  
>      bool     watchdog_running;
> @@ -2110,7 +2110,7 @@ static const VMStateDescription vmstate_ipmi_sim = {
>          VMSTATE_UINT8(watchdog_use, IPMIBmcSim),
>          VMSTATE_UINT8(watchdog_action, IPMIBmcSim),
>          VMSTATE_UINT8(watchdog_pretimeout, IPMIBmcSim),
> -        VMSTATE_BOOL(watchdog_expired, IPMIBmcSim),
> +        VMSTATE_UINT8(watchdog_expired, IPMIBmcSim),
>          VMSTATE_UINT16(watchdog_timeout, IPMIBmcSim),
>          VMSTATE_BOOL(watchdog_running, IPMIBmcSim),
>          VMSTATE_BOOL(watchdog_preaction_ran, IPMIBmcSim),
> -- 
> 2.27.0
> 



reply via email to

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