Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues: - [High] This problem wasn't introduced by this patch, but if `memremap` fails during Hyper-V root partition initialization, the active clocksource is not unregistered and `tsc_page` becomes NULL, leading to a guaranteed kernel panic upon the next clock read. -- commit fd7e137ffdb89db4afcdcc509ba544a534823492 Author: David Woodhouse <[email protected]> clocksource/hyperv: Implement read_snapshot() for TSC page clocksource This commit implements the read_snapshot() callback for the Hyper-V TSC page clocksource. It allows the raw TSC value and the derived time to be atomically captured, enabling ktime_get_snapshot_id() to provide the raw TSC to consumers like KVM's master clock. > diff --git a/drivers/clocksource/hyperv_timer.c > b/drivers/clocksource/hyperv_timer.c > index e9f5034a1bc89..df567795d1751 100644 > --- a/drivers/clocksource/hyperv_timer.c > +++ b/drivers/clocksource/hyperv_timer.c [ ... ] > @@ -444,6 +444,22 @@ static u64 notrace read_hv_clock_tsc_cs(struct > clocksource *arg) > return read_hv_clock_tsc(); > } > > +static u64 notrace read_hv_clock_tsc_cs_snapshot(struct clocksource *arg, > + struct > clocksource_hw_snapshot *chs) > +{ > + u64 time; > + > + if (hv_read_tsc_page_tsc(tsc_page, &chs->hw_cycles, &time)) { [Severity: High] This isn't a bug introduced by this patch, but if memremap() fails during Hyper-V root partition initialization, tsc_page becomes NULL: drivers/clocksource/hyperv_timer.c:hv_remap_tsc_clocksource() { ... tsc_page = memremap(tsc_pfn << HV_HYP_PAGE_SHIFT, sizeof(tsc_pg), MEMREMAP_WB); if (!tsc_page) pr_err("Failed to remap Hyper-V TSC page.\n"); ... } Since the clocksource is not unregistered and a valid fallback pointer isn't restored on failure, will passing this NULL tsc_page to hv_read_tsc_page_tsc() cause a kernel panic upon the next snapshot read? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=1
