linux/include
Salman Qazi ee9c2e08d3 sched/x86: Fix overflow in cyc2ns_offset
commit 9993bc635d upstream.

When a machine boots up, the TSC generally gets reset.  However,
when kexec is used to boot into a kernel, the TSC value would be
carried over from the previous kernel.  The computation of
cycns_offset in set_cyc2ns_scale is prone to an overflow, if the
machine has been up more than 208 days prior to the kexec.  The
overflow happens when we multiply *scale, even though there is
enough room to store the final answer.

We fix this issue by decomposing tsc_now into the quotient and
remainder of division by CYC2NS_SCALE_FACTOR and then performing
the multiplication separately on the two components.

Refactor code to share the calculation with the previous
fix in __cycles_2_ns().

Signed-off-by: Salman Qazi <sqazi@google.com>
Acked-by: John Stultz <john.stultz@linaro.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Turner <pjt@google.com>
Cc: john stultz <johnstul@us.ibm.com>
Link: http://lkml.kernel.org/r/20120310004027.19291.88460.stgit@dungbeetle.mtv.corp.google.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-04-13 08:14:08 -07:00
..
acpi ACPI: Store SRAT table revision 2012-01-25 17:24:57 -08:00
asm-generic compat: use sys_sendfile64() implementation for sendfile syscall 2012-04-02 09:27:21 -07:00
crypto
drm drm: Fix authentication kernel crash 2012-02-03 09:18:52 -08:00
keys
linux sched/x86: Fix overflow in cyc2ns_offset 2012-04-13 08:14:08 -07:00
math-emu
media [media] tuner-core/v4l2-subdev: document that the type field has to be filled in 2011-07-07 15:04:23 -03:00
mtd
net ipv4: reset flowi parameters on route connect 2012-02-29 16:34:03 -08:00
pcmcia pcmcia: Make declaration and uses of struct pcmcia_device_id const 2011-05-06 07:46:15 +02:00
rdma Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-05-26 12:13:57 -07:00
rxrpc
scsi [SCSI] libsas: Add option for SATA soft reset 2011-05-26 22:49:33 -05:00
sound ALSA: sb16 - Fix build errors on MIPS and others with 13bit ioctl size 2011-06-30 15:33:57 +02:00
target target: Set additional sense length field in sense data 2012-01-25 17:25:00 -08:00
trace writeback: fix dereferencing NULL bdi->dev on trace_writeback_queue 2012-02-20 12:48:11 -08:00
video OMAPDSS: HDMI: PHY burnout fix 2012-03-12 10:32:59 -07:00
xen xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX. 2012-01-25 17:24:41 -08:00
Kbuild