]> git.baikalelectronics.ru Git - kernel.git/commit
x86/platform: Fix Geode LX timekeeping in the generic x86 build
authorDavid Woodhouse <dwmw2@infradead.org>
Wed, 16 Sep 2015 13:10:03 +0000 (14:10 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 16 Sep 2015 14:00:12 +0000 (16:00 +0200)
commit10ff630a165f0804c4b1bce65699298fe61c1dd3
treea3da6b267e14a67da79cb6692e7fd78620078ed1
parentf4b5e42a985d3cbc58d1935393118ab487c606cb
x86/platform: Fix Geode LX timekeeping in the generic x86 build

In 2007, commit f9ec8a656e0df ("Mark TSC on GeodeLX reliable")
bypassed verification of the TSC on Geode LX. However, this code
(now in the check_system_tsc_reliable() function in
arch/x86/kernel/tsc.c) was only present if CONFIG_MGEODE_LX was
set.

OpenWRT has recently started building its generic Geode target
for Geode GX, not LX, to include support for additional
platforms. This broke the timekeeping on LX-based devices,
because the TSC wasn't marked as reliable:
https://dev.openwrt.org/ticket/20531

By adding a runtime check on is_geode_lx(), we can also include
the fix if CONFIG_MGEODEGX1 or CONFIG_X86_GENERIC are set, thus
fixing the problem.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Cc: Andres Salomon <dilinger@queued.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Marcelo Tosatti <marcelo@kvack.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/1442409003.131189.87.camel@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/tsc.c