1
linux/drivers/char
Clemens Ladisch ba3f213f8a [PATCH] HPET: make frequency calculations 32 bit safe
On 32-bit architectures, the multiplication in the argument for
hpet_time_div() often overflows.  In the typical case of a 14.32 MHz timer,
this happens when the desired frequency exceeds 61 Hz.

To avoid this multiplication, we can precompute and store the hardware
timer frequency, instead of the period, in the device structure, which
leaves us with a simple division when computing the number of timer ticks.

As a side effect, this also removes a theoretical bug where the timer
interpolator's frequency would be computed as a 32-bit value even if the
HPET frequency is greater than 2^32 Hz (the HPET spec allows up to 10 GHz).

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-30 17:37:29 -08:00
..
agp [PATCH] CONFIG_IA32 2005-10-30 17:37:10 -08:00
drm [PATCH] fix radeon_cp_init_ring_buffer() 2005-10-26 10:46:19 -07:00
ftape [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
ip2 [PATCH] drivers/char: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
ipmi [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
mwave [SERIAL] Convert mwave to use serial8250_(un)?register_port 2005-08-31 22:19:33 +01:00
pcmcia [PATCH] synclink_cs add statistics clear 2005-09-10 10:06:22 -07:00
rio [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
tpm [PATCH] sparse cleanups: NULL pointers, C99 struct init. 2005-10-30 17:37:29 -08:00
watchdog [PATCH] watchdog: update .owner field of struct pci_driver 2005-10-30 17:37:26 -08:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
amiserial.c [PATCH] Remove unnecessary check_region references in comments 2005-09-13 08:22:29 -07:00
applicom.c [PATCH] applicom: fix error handling 2005-09-10 10:06:25 -07:00
applicom.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cd1865.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ChangeLog Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
consolemap.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cp437.uni Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cyclades.c [PATCH] Typo fix: explictly -> explicitly 2005-10-30 17:37:20 -08:00
decserial.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defkeymap.c_shipped Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defkeymap.map Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
digi1.h [PATCH] Clean up the old digi support and rescue it 2005-09-07 16:57:20 -07:00
digi.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
digiFep1.h [PATCH] Clean up the old digi support and rescue it 2005-09-07 16:57:20 -07:00
digiPCI.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ds1286.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ds1302.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ds1620.c [PATCH] char/ds1620: use msleep() instead of schedule_timeout() 2005-06-25 16:24:57 -07:00
dsp56k.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
dtlk.c [PATCH] misc verify_area cleanups 2005-05-01 08:59:08 -07:00
ec3104_keyb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
efirtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
epca.c [PATCH] epca: update .owner field of struct pci_driver 2005-10-30 17:37:26 -08:00
epca.h [PATCH] epca iomem annotations + several missing readw() 2005-09-16 10:38:10 -07:00
epcaconfig.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
esp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
generic_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
generic_serial.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genrtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hangcheck-timer.c [PATCH] CONFIG_IA32 2005-10-30 17:37:10 -08:00
hpet.c [PATCH] HPET: make frequency calculations 32 bit safe 2005-10-30 17:37:29 -08:00
hvc_console.c [PATCH] hvc_console: start kernel thread before registering tty 2005-09-14 14:34:17 -07:00
hvc_vio.c [PATCH] Make MODULE_DEVICE_TABLE work for vio devices 2005-08-30 13:31:56 +10:00
hvcs.c [PATCH] Make MODULE_DEVICE_TABLE work for vio devices 2005-08-30 13:31:56 +10:00
hvsi.c [PATCH] hvc_console: Use hvc_get_chars in hvsi code 2005-07-07 18:23:40 -07:00
hw_random.c [PATCH] drivers/char: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
i8k.c [PATCH] I8K: add new BIOS signatures 2005-06-25 16:24:25 -07:00
ip2.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip2main.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
ip27-rtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
isicom.c [PATCH] drivers/char/isicom.c: section fixes 2005-06-25 16:25:00 -07:00
istallion.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
ite_gpio.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [PATCH] Telecom Clock Driver for MPCBL0010 ATCA computer blade 2005-10-30 17:37:25 -08:00
keyboard.c Input: clean up whitespace and formatting in drivers/char/keyboard.c 2005-09-10 12:03:38 -05:00
lcd.c Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lcd.h Resurrect Cobalt support for 2.6. 2005-10-29 19:30:42 +01:00
lp.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
Makefile [PATCH] Telecom Clock Driver for MPCBL0010 ATCA computer blade 2005-10-30 17:37:25 -08:00
mbcs.c [IA64] mbcs_init() should give up unless running on sn2 2005-10-04 09:39:18 -07:00
mbcs.h [PATCH] mbcs trivial user annotations 2005-05-04 07:33:13 -07:00
mem.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
misc.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
mmtimer.c [IA64] Two more uses of cpuid_to_cnodeid() must go. 2005-09-15 17:00:10 -07:00
moxa.c [SERIAL] Fix moxa tty driver name 2005-09-03 16:26:49 +01:00
mxser.c [PATCH] drivers/char: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
mxser.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
n_hdlc.c [PATCH] Convert users to tty_unregister_ldisc() 2005-06-23 09:45:36 -07:00
n_r3964.c [PATCH] n_r3964 mod_timer() fix 2005-10-17 17:03:57 -07:00
n_tty.c [PATCH] gfp_t: remaining bits of drivers/* 2005-10-28 08:16:51 -07:00
nvram.c [ARM] 2921/1: Support for the RTC / nvram on the Comdial MP1000 2005-10-28 16:27:24 +01:00
nwbutton.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nwbutton.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nwflash.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ppdev.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
pty.c [PATCH] pty_chars_in_buffer oops fix 2005-09-09 13:57:31 -07:00
qtronix.c qtronix.c: Handle kmalloc failure. 2005-10-29 19:30:55 +01:00
qtronixmap.c_shipped Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
qtronixmap.map Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
random.c [RANDOM]: Introduce secure_dccp_sequence_number 2005-08-29 15:49:40 -07:00
raw.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
riscom8_reg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
riscom8.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
riscom8.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rocket_int.h [PATCH] drivers/char/rocket.c: cleanups 2005-06-25 16:25:04 -07:00
rocket.c [PATCH] rocketport: make it work when statically linked into kernel 2005-10-30 17:37:27 -08:00
rocket.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rtc.c [RTC]: Use SA_SHIRQ in sparc specific code. 2005-09-05 23:33:05 -07:00
s3c2410-rtc.c [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks 2005-10-28 09:52:56 -07:00
scan_keyb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scan_keyb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scx200_gpio.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
selection.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ser_a2232.c [PATCH] Typo fix: dot after newline in printk strings 2005-10-30 17:37:20 -08:00
ser_a2232.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ser_a2232fw.ax Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ser_a2232fw.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial167.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
snsc_event.c [IA64-SGI] fix unaligned memory access in snsc_event.c 2005-08-15 14:17:49 -07:00
snsc.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2005-10-28 21:09:26 -07:00
snsc.h [IA64] Altix system controller event handling 2005-04-25 13:28:52 -07:00
sonypi.c [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks 2005-10-28 09:52:56 -07:00
specialix_io8.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
specialix.c [PATCH] remove some more check_region stuff 2005-10-30 17:37:18 -08:00
stallion.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
sx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sxboards.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sxwindow.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
synclink.c [PATCH] SyncLink adapters: updates .owner field of struct pci_driver 2005-10-30 17:37:26 -08:00
synclinkmp.c [PATCH] SyncLink adapters: updates .owner field of struct pci_driver 2005-10-30 17:37:26 -08:00
sysrq.c [PATCH] Update sysrq-B to use emergency_restart() 2005-07-26 14:35:43 -07:00
tb0219.c [PATCH] TB0219: add PCI IRQ initialization 2005-07-12 16:01:02 -07:00
tipar.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
tlclk.c [PATCH] Telecom Clock Driver for MPCBL0010 ATCA computer blade 2005-10-30 17:37:25 -08:00
toshiba.c [PATCH] Toshiba driver cleanup 2005-06-25 16:24:24 -07:00
tty_io.c [PATCH] reduce sizeof(struct file) 2005-10-30 17:37:19 -08:00
tty_ioctl.c [PATCH] coverity: tty_ldisc_ref return null check 2005-06-28 21:20:34 -07:00
vc_screen.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
viocons.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
viotape.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
vme_scc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vr41xx_giu.c [PATCH] mips: add vr41xx gpio support 2005-06-21 18:46:32 -07:00
vr41xx_rtc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vt_ioctl.c [PATCH] setkeys needs root 2005-10-30 17:37:25 -08:00
vt.c [PATCH] vc: Use correct size on buffer copy in vc_resize 2005-09-15 08:24:09 -07:00