Messages in this thread Patch in this message | | | From | Thorsten Blum <> | Subject | [PATCH] x86/apic: Use div64_ul() instead of do_div() | Date | Tue, 27 Feb 2024 12:43:34 +0100 |
| |
Fixes Coccinelle/coccicheck warnings reported by do_div.cocci.
Change deltapm to unsigned long and replace do_div() with div64_ul() which doesn't implicitly cast the divisor and doesn't unnecessarily calculate the remainder.
Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com> --- arch/x86/kernel/apic/apic.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 4667bc4b00ab..facfb03ef5c8 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -699,7 +699,7 @@ static void __init lapic_cal_handler(struct clock_event_device *dev) } static int __init -calibrate_by_pmtimer(long deltapm, long *delta, long *deltatsc) +calibrate_by_pmtimer(unsigned long deltapm, long *delta, long *deltatsc) { const long pm_100ms = PMTMR_TICKS_PER_SEC / 10; const long pm_thresh = pm_100ms / 100; @@ -710,7 +710,7 @@ calibrate_by_pmtimer(long deltapm, long *delta, long *deltatsc) return -1; #endif - apic_printk(APIC_VERBOSE, "... PM-Timer delta = %ld\n", deltapm); + apic_printk(APIC_VERBOSE, "... PM-Timer delta = %lu\n", deltapm); /* Check, if the PM timer is available */ if (!deltapm) @@ -724,14 +724,14 @@ calibrate_by_pmtimer(long deltapm, long *delta, long *deltatsc) return 0; } - res = (((u64)deltapm) * mult) >> 22; + res = (((u64)deltapm) * mult) >> 22; do_div(res, 1000000); pr_warn("APIC calibration not consistent " "with PM-Timer: %ldms instead of 100ms\n", (long)res); /* Correct the lapic counter value */ res = (((u64)(*delta)) * pm_100ms); - do_div(res, deltapm); + res = div64_ul(res, deltapm); pr_info("APIC delta adjusted to PM-Timer: " "%lu (%ld)\n", (unsigned long)res, *delta); *delta = (long)res; @@ -739,7 +739,7 @@ calibrate_by_pmtimer(long deltapm, long *delta, long *deltatsc) /* Correct the tsc counter value */ if (boot_cpu_has(X86_FEATURE_TSC)) { res = (((u64)(*deltatsc)) * pm_100ms); - do_div(res, deltapm); + res = div64_ul(res, deltapm); apic_printk(APIC_VERBOSE, "TSC delta adjusted to " "PM-Timer: %lu (%ld)\n", (unsigned long)res, *deltatsc); -- 2.43.2
| |