[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
>