Re: [PATCH net-next 0/4] ptp: vmclock: bugfixes and cleanups for error handling

From: David Woodhouse
Date: Fri Feb 07 2025 - 04:11:17 EST


On Fri, 2025-02-07 at 08:13 +0100, Mateusz Polchlopek wrote:
>
>
> On 2/6/2025 6:45 PM, Thomas Weißschuh wrote:
> > Some error handling issues I noticed while looking at the code.
> >
> > Only compile-tested.
> >
> > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>
> > ---
> > Thomas Weißschuh (4):
> >        ptp: vmclock: Set driver data before its usage
> >        ptp: vmclock: Don't unregister misc device if it was not registered
> >        ptp: vmclock: Clean up miscdev and ptp clock through devres
> >        ptp: vmclock: Remove goto-based cleanup logic
> >
> >   drivers/ptp/ptp_vmclock.c | 46 ++++++++++++++++++++--------------------------
> >   1 file changed, 20 insertions(+), 26 deletions(-)
> > ---
> > base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
> > change-id: 20250206-vmclock-probe-57cbcb770925
> >
> > Best regards,
>
> As those all are fixes and cleanups then I think it should be tagged to
> net not net-next.

Agreed. Thanks, Thomas. For all four:

Reviewed-by: David Woodhouse <dwmw@xxxxxxxxxxxx>

I'm about to post a fifth which adds a .owner to vmclock_miscdev_fops.

Tested with the existing '-device vmclock' support in QEMU, plus this
hack to actually expose a PTP clock to the guest (which we haven't
worked out how to do *properly* from the timekeeping subsystem of a
Linux host yet; qv).

--- a/hw/acpi/vmclock.c
+++ b/hw/acpi/vmclock.c
@@ -151,6 +151,18 @@ static void vmclock_realize(DeviceState *dev,
Error **errp)

qemu_register_reset(vmclock_handle_reset, vms);

+ vms->clk->time_type = VMCLOCK_TIME_TAI;
+ vms->clk->flags = VMCLOCK_FLAG_TAI_OFFSET_VALID;
+ vms->clk->tai_offset_sec = -3600;
+ vms->clk->clock_status = VMCLOCK_STATUS_SYNCHRONIZED;
+ vms->clk->counter_value = 0;
+ vms->clk->counter_id = VMCLOCK_COUNTER_X86_TSC;
+ vms->clk->time_sec = 1704067200;
+ vms->clk->time_frac_sec = 0x8000000000000000ULL;
+ vms->clk->counter_period_frac_sec = 0x1a6e39b3e0ULL;
+ vms->clk->counter_period_shift = 4;
+ //vms->clk->counter_period_frac_sec = 0x1934c67f9b2ce6ULL;
+
vmclock_update_guest(vms);
}


Attachment: smime.p7s
Description: S/MIME cryptographic signature