1
linux/drivers
john stultz 6bb74df481 [PATCH] clocksource init adjustments (fix bug #7426)
This patch resolves the issue found here:
http://bugme.osdl.org/show_bug.cgi?id=7426

The basic summary is:
Currently we register most of i386/x86_64 clocksources at module_init
time. Then we enable clocksource selection at late_initcall time. This
causes some problems for drivers that use gettimeofday for init
calibration routines (specifically the es1968 driver in this case),
where durring module_init, the only clocksource available is the low-res
jiffies clocksource. This may cause slight calibration errors, due to
the small sampling time used.

It should be noted that drivers that require fine grained time may not
function on architectures that do not have better then jiffies
resolution timekeeping (there are a few). However, this does not
discount the reasonable need for such fine-grained timekeeping at init
time.

Thus the solution here is to register clocksources earlier (ideally when
the hardware is being initialized), and then we enable clocksource
selection at fs_initcall (before device_initcall).

This patch should probably get some testing time in -mm, since
clocksource selection is one of the most important issues for correct
timekeeping, and I've only been able to test this on a few of my own
boxes.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-03-05 07:57:53 -08:00
..
acorn [ARM] Acorn: move the i2c bus driver into drivers/i2c 2007-03-04 20:40:50 +00:00
acpi [PATCH] ACPI: make bay depend on dock 2007-03-01 14:53:38 -08:00
amba
ata [libata] pata_jmicron: build fix 2007-03-03 10:36:19 -05:00
atm atm: Use ARRAY_SIZE macro when appropriate 2007-02-17 15:30:48 -05:00
auxdisplay [PATCH] cfag12864b: fix crash when built-in and no parport present 2007-02-20 17:10:14 -08:00
base Driver core: fix error by cleanup up symlinks properly 2007-02-23 14:52:09 -08:00
block [AOE]: Add get_unaligned() calls where needed. 2007-03-02 15:22:55 -08:00
bluetooth [Bluetooth] Make use of MODULE_FIRMWARE 2007-02-26 11:42:42 -08:00
cdrom [PATCH] Fix soft lockup with iSeries viocd driver 2007-03-05 07:57:51 -08:00
char [PATCH] ipmi: check, if default ports are accessible on PPC 2007-03-05 07:57:53 -08:00
clocksource [PATCH] clocksource init adjustments (fix bug #7426) 2007-03-05 07:57:53 -08:00
connector
cpufreq Revert "[CPUFREQ] constify cpufreq_driver where possible." 2007-02-26 14:55:48 -08:00
crypto
dio
dma
edac
eisa
fc4
firmware
hid HID: fix Logitech DiNovo Edge touchwheel and Logic3 /SpectraVideo middle button 2007-03-01 09:54:44 +01:00
hwmon
i2c [ARM] Acorn: move the i2c bus driver into drivers/i2c 2007-03-04 20:40:50 +00:00
ide ide: make legacy IDE VLB modules check for the "probe" kernel params (v2) 2007-03-03 17:48:55 +01:00
ieee1394 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-02-19 13:29:02 -08:00
infiniband IPoIB: Correct debugging output when path record lookup fails 2007-02-26 12:57:08 -08:00
input [PATCH] gpio_keys driver shouldn't be ARM-specific 2007-03-05 07:57:51 -08:00
isdn [PATCH] Fix buffer overflow and races in capi debug functions 2007-03-01 14:53:39 -08:00
kvm KVM: Move kvmfs magic number to <linux/magic.h> 2007-03-04 11:12:43 +02:00
leds
macintosh backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
mca
md [PATCH] md: fix for raid6 reshape 2007-03-05 07:57:53 -08:00
media V4L/DVB (5260): Cx88-blackbird: allow usage of both 376836 and 262144 sized firmware images 2007-03-03 10:14:36 -02:00
message
mfd [PATCH] drivers/mfd/sm501.c: Replace pci_module_init with pci_register_driver 2007-02-26 12:35:47 -08:00
misc backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
mmc Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-02-19 13:18:39 -08:00
mtd [ARM] 4233/1: nand/s3c2410.c: warning fix 2007-02-25 16:41:41 +00:00
net [VLAN]: Avoid a 4-order allocation. 2007-03-02 20:44:51 -08:00
nubus
oprofile
parisc Merge master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6 2007-02-26 12:48:06 -08:00
parport [PATCH] parport_pc: fix parport_pc_probe_port section warning 2007-02-20 17:10:16 -08:00
pci [PATCH] msi: support masking msi irqs without a mask bit 2007-03-05 07:57:50 -08:00
pcmcia Driver core: more fallout from class_device changes for pcmcia 2007-02-23 14:52:09 -08:00
pnp Pull misc-for-upstream into release branch 2007-02-16 18:52:41 -05:00
ps3
rapidio
rtc [ARM] rtc-pcf8583: Final fixes for this RTC on RiscPC 2007-03-04 20:33:07 +00:00
s390 [VLAN]: Avoid a 4-order allocation. 2007-03-02 20:44:51 -08:00
sbus [SPARC] uctrl: Check request_irq() return value. 2007-02-26 11:35:51 -08:00
scsi [ARM] ARM SCSI: Don't try to dma_map_sg too many scatterlist entries 2007-03-04 20:33:31 +00:00
serial [PATCH] dz: remove struct pt_regs references 2007-03-05 07:57:51 -08:00
sh
sn
spi [PATCH] spi_s3c2410_gpio.c spi mode 2 and 3 support 2007-02-20 17:10:16 -08:00
tc
telephony
usb HID: fix Logitech DiNovo Edge touchwheel and Logic3 /SpectraVideo middle button 2007-03-01 09:54:44 +01:00
video [PATCH] fb: sm501fb off-by-1 sysfs store 2007-03-05 07:57:51 -08:00
w1
zorro
Kconfig
Makefile