Fixes the following linking problem: drivers/watchdog/sb_wdog.c:211: undefined reference to `__udivdi3' Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx> Acked-by: Steven J. Hill <Steven.Hill@xxxxxxxxxx> Cc: sibyte-users@xxxxxxxxxxxx Cc: Wim Van Sebroeck <wim@xxxxxxxxx> --- drivers/watchdog/sb_wdog.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c index 25c7a3f..2ea0427 100644 --- a/drivers/watchdog/sb_wdog.c +++ b/drivers/watchdog/sb_wdog.c @@ -170,6 +170,7 @@ static long sbwdog_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int ret = -ENOTTY; + u64 tmp_user_dog; unsigned long time; void __user *argp = (void __user *)arg; int __user *p = argp; @@ -208,7 +209,9 @@ static long sbwdog_ioctl(struct file *file, unsigned int cmd, * get the remaining count from the ... count register * which is 1*8 before the config register */ - ret = put_user(__raw_readq(user_dog - 8) / 1000000, p); + tmp_user_dog = __raw_readq(user_dog - 8); + tmp_user_dog = do_div(tmp_user_dog, 1000000); + ret = put_user(tmp_user_dog, p); break; } return ret; -- 1.8.2.1