• Ralf Baechle's avatar
    WATCHDOG: sb_wdog: Fix 32 bit build failure · cd6cbde6
    Ralf Baechle authored
    Fixes the following linking problem:
    drivers/watchdog/sb_wdog.c:211: undefined reference to `__udivdi3'
    
    This results from reading a 64 bit register, then dividing the value by
    1000000.  For 32 bit kernels gcc will use the helper function __udivdi3
    from libgcc which the kernel intentionally doesn't provide.
    
    In the read registerbits 23..63 are always zero and only bits 0..22 are
    signficant.  So a simple cast to truncate the read value to 32 bits
    fixes the issue.
    
    Reported and initial patch by Markos Chandras <markos.chandras@imgtec.com>.
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    Reported-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
    cd6cbde6
sb_wdog.c 8.57 KB