https://github.com/torvalds/linux
Revision f5fb09fa3392ad43fbcfc2f4580752f383ab5996 authored by Andries Brouwer on 27 August 2006, 08:23:42 UTC, committed by Linus Torvalds on 27 August 2006, 18:01:30 UTC
Mounting a (corrupt) minix filesystem with zero s_zmap_blocks
gives a spectacular crash on my 2.6.17.8 system, no doubt
because minix/inode.c does an unconditional
	minix_set_bit(0,sbi->s_zmap[0]->b_data);

[akpm@osdl.org: make labels conistent while we're there]

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent fb8d81e
Raw File
Tip revision: f5fb09fa3392ad43fbcfc2f4580752f383ab5996 authored by Andries Brouwer on 27 August 2006, 08:23:42 UTC
[PATCH] Fix for minix crash
Tip revision: f5fb09f
time_interpolators.txt
Time Interpolators
------------------

Time interpolators are a base of time calculation between timer ticks and
allow an accurate determination of time down to the accuracy of the time
source in nanoseconds.

The architecture specific code typically provides gettimeofday and
settimeofday under Linux. The time interpolator provides both if an arch
defines CONFIG_TIME_INTERPOLATION. The arch still must set up timer tick
operations and call the necessary functions to advance the clock.

With the time interpolator a standardized interface exists for time
interpolation between ticks. The provided logic is highly scalable
and has been tested in SMP situations of up to 512 CPUs.

If CONFIG_TIME_INTERPOLATION is defined then the architecture specific code
(or the device drivers - like HPET) may register time interpolators.
These are typically defined in the following way:

static struct time_interpolator my_interpolator {
	.frequency = MY_FREQUENCY,
	.source = TIME_SOURCE_MMIO32,
	.shift = 8,		/* scaling for higher accuracy */
	.drift = -1,		/* Unknown drift */
	.jitter = 0		/* time source is stable */
};

void time_init(void)
{
	....
	/* Initialization of the timer *.
	my_interpolator.address = &my_timer;
	register_time_interpolator(&my_interpolator);
	....
}

For more details see include/linux/timex.h and kernel/timer.c.

Christoph Lameter <christoph@lameter.com>, October 31, 2004

back to top