'long secs' is passed as divisor to div_s64, which accepts a 32bitdivisor. On 64bit machines that value is trimmed back from 8 bytesback to 4, causing a divide by zero when the number is bigger than(1 << 32) - 1 and all 32 lower bits are 0.