Re: [PATCH 05/10] hw/timer/hpet: Remove HPETState::hpet_offset_saved field

Thomas Huth <[email protected]> Thu, 5 Mar 2026 08:42:13 +0100
Newsgroups org.nongnu.qemu-rust,org.nongnu.qemu-devel
Message-ID <[email protected]>
On 02/05/2025 01.01, Philippe Mathieu-Daudé wrote:
> The HPETState::hpet_offset_saved boolean was only set in the
> hw_compat_2_11[] array, via the 'hpet-offset-saved=false'
> property. We removed all machines using that array, lets remove
> that property and all the code around it.
> 
> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
> ---
>   hw/timer/hpet.c                | 9 +--------
>   rust/hw/timer/hpet/src/hpet.rs | 9 ---------
>   2 files changed, 1 insertion(+), 17 deletions(-)
> 
> diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
> index d1b7bc52b7b..47b8fc0d880 100644
> --- a/hw/timer/hpet.c
> +++ b/hw/timer/hpet.c
> @@ -71,7 +71,6 @@ struct HPETState {
>   
>       MemoryRegion iomem;
>       uint64_t hpet_offset;
> -    bool hpet_offset_saved;
>       qemu_irq irqs[HPET_NUM_IRQ_ROUTES];
>       uint32_t flags;
>       uint8_t rtc_irq_level;
> @@ -264,11 +263,6 @@ static int hpet_post_load(void *opaque, int version_id)
>           t->cmp64 = hpet_calculate_cmp64(t, s->hpet_counter, t->cmp);
>           t->last = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) - NANOSECONDS_PER_SECOND;
>       }
> -    /* Recalculate the offset between the main counter and guest time */
> -    if (!s->hpet_offset_saved) {
> -        s->hpet_offset = ticks_to_ns(s->hpet_counter)
> -                        - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
> -    }
>   
>       return 0;
>   }
> @@ -277,7 +271,7 @@ static bool hpet_offset_needed(void *opaque)
>   {
>       HPETState *s = opaque;
>   
> -    return hpet_enabled(s) && s->hpet_offset_saved;
> +    return hpet_enabled(s);
>   }
>   
>   static bool hpet_rtc_irq_level_needed(void *opaque)
> @@ -733,7 +727,6 @@ static const Property hpet_device_properties[] = {
>       DEFINE_PROP_UINT8("timers", HPETState, num_timers, HPET_MIN_TIMERS),
>       DEFINE_PROP_BIT("msi", HPETState, flags, HPET_MSI_SUPPORT, false),
>       DEFINE_PROP_UINT32(HPET_INTCAP, HPETState, intcap, 0),
> -    DEFINE_PROP_BOOL("hpet-offset-saved", HPETState, hpet_offset_saved, true),
>   };
>   
>   static void hpet_device_class_init(ObjectClass *klass, const void *data)
> diff --git a/rust/hw/timer/hpet/src/hpet.rs b/rust/hw/timer/hpet/src/hpet.rs
> index cbd2ed4f6bf..9e681391176 100644
> --- a/rust/hw/timer/hpet/src/hpet.rs
> +++ b/rust/hw/timer/hpet/src/hpet.rs
> @@ -544,7 +544,6 @@ pub struct HPETState {
>   
>       /// Offset of main counter relative to qemu clock.
>       hpet_offset: BqlCell<u64>,
> -    hpet_offset_saved: bool,
>   
>       irqs: [InterruptSource; HPET_NUM_IRQ_ROUTES],
>       rtc_irq_level: BqlCell<u32>,
> @@ -885,14 +884,6 @@ impl ObjectImpl for HPETState {
>           u32,
>           default = 0
>       ),
> -    qemu_api::define_property!(
> -        c_str!("hpet-offset-saved"),
> -        HPETState,
> -        hpet_offset_saved,
> -        unsafe { &qdev_prop_bool },
> -        bool,
> -        default = true
> -    ),
>   }
>   
>   impl DeviceImpl for HPETState {

Reviewed-by: Thomas Huth <[email protected]>