diff --git a/include/os/freebsd/zfs/sys/zfs_context_os.h b/include/os/freebsd/zfs/sys/zfs_context_os.h index b46c4aa7c900..0316f93b27ec 100644 --- a/include/os/freebsd/zfs/sys/zfs_context_os.h +++ b/include/os/freebsd/zfs/sys/zfs_context_os.h @@ -72,7 +72,7 @@ extern struct mtx zfs_debug_mtx; } \ } while (0) -#define MSEC_TO_TICK(msec) ((msec) / (MILLISEC / hz)) +#define MSEC_TO_TICK(msec) (howmany((hrtime_t)(msec) * hz, MILLISEC)) extern int hz; extern int tick; typedef int fstrans_cookie_t; diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h index 8e16399e8db1..e33f52c176a8 100644 --- a/include/sys/zfs_context.h +++ b/include/sys/zfs_context.h @@ -602,9 +602,9 @@ typedef struct vsecattr { extern void delay(clock_t ticks); #define SEC_TO_TICK(sec) ((sec) * hz) -#define MSEC_TO_TICK(msec) ((msec) / (MILLISEC / hz)) -#define USEC_TO_TICK(usec) ((usec) / (MICROSEC / hz)) -#define NSEC_TO_TICK(usec) ((usec) / (NANOSEC / hz)) +#define MSEC_TO_TICK(msec) (howmany((hrtime_t)(msec) * hz, MILLISEC)) +#define USEC_TO_TICK(usec) (howmany((hrtime_t)(usec) * hz, MICROSEC)) +#define NSEC_TO_TICK(nsec) (howmany((hrtime_t)(nsec) * hz, NANOSEC)) #define max_ncpus 64 #define boot_ncpus (sysconf(_SC_NPROCESSORS_ONLN))