![Martin Schwidefsky](/assets/img/avatar_default.png)
The clocksource infrastructure introduced with commit
ad596171ed
broke 31 bit s390.
The reason is that the do_div() primitive for 31 bit always
had a restriction: it could only divide an unsigned 64 bit
integer by an unsigned 31 bit integer. The clocksource code
now uses do_div() with a base value that has the most
significant bit set. The result is that clock->cycle_interval
has a funny value which causes the linux time to jump around
like mad.
The solution is "obvious": implement a proper __div64_32
function for 31 bit s390.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
11 lines
222 B
Makefile
11 lines
222 B
Makefile
#
|
|
# Makefile for s390-specific library files..
|
|
#
|
|
|
|
EXTRA_AFLAGS := -traditional
|
|
|
|
lib-y += delay.o string.o uaccess_std.o
|
|
lib-$(CONFIG_32BIT) += div64.o
|
|
lib-$(CONFIG_64BIT) += uaccess_mvcos.o
|
|
lib-$(CONFIG_SMP) += spinlock.o
|