<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/arm, branch releng/6.3</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=releng%2F6.3</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=releng%2F6.3'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2007-12-07T22:08:02Z</updated>
<entry>
<title>MFC:</title>
<updated>2007-12-07T22:08:02Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-12-07T22:08:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=a86845d51eace6601c07cba9c037814493b45539'/>
<id>urn:sha1:a86845d51eace6601c07cba9c037814493b45539</id>
<content type='text'>
sys/arm/include/asmacros.h rev 1.7
sys/arm/include/atomic.h rev 1.23

Close a race.

The RAS implementation would set the end address, then the start
address.  These were used by the kernel to restart a RAS sequence if
it was interrupted.  When the thread switching code ran, it would
check these values and adjust the PC and clear them if it did.

However, there's a small flaw in this scheme.  Thread T1, sets the end
address and gets preempted.  Thread T2 runs and also does a RAS
operation.  This resets end to zero.  Thread T1 now runs again and
sets start and then begins the RAS sequence, but is preempted before
the RAS sequence executes its last instruction.  The kernel code that
would ordinarily restart the RAS sequence doesn't because the PC isn't
between start and 0, so the PC isn't set to the start of the sequence.
So when T1 is resumed again, it is at the wrong location for RAS to
produce the correct results.  This causes the wrong results for the
atomic sequence.

The window for the first race is 3 instructions.  The window for the
second race is 5-10 instructions depending on the atomic operation.
This makes this failure fairly rare and hard to reproduce.

Mutexs are implemented in libthr using atomic operations.  When the
above race would occur, a lock could get stuck locked, causing many
downstream problems, as you might expect.

Also, make sure to reset the start and end address when doing a syscall, or
a malicious process could set them before doing a syscall.

Reviewed by: imp, ups (thanks guys)
Approved by:	re (kensmith)
Pointy hat to:  cognet
</content>
</entry>
<entry>
<title>MFC:</title>
<updated>2007-12-02T14:21:27Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-12-02T14:21:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=7cf3e7ee51da16dd8bb001bddef7dd90d1950332'/>
<id>urn:sha1:7cf3e7ee51da16dd8bb001bddef7dd90d1950332</id>
<content type='text'>
arm/at91/kb920x_machdep.c rev 1.24, 1.25 and 1.26
arm/at91/std.at91 rev 1.4
arm/at91/std.kb920x rev 1.5
arm/at91/at91rm92reg.h rev 1.6
conf/options.arm 1.18
Small tweaks to be able to load the kernel at a different address than
0x20000000 + add an option to override the default value of the master clock
frequency.
arm/at91/if_ate.c rev 1.21:
In ate_get_mac(), try to get the mac address in the right order, at least
in the same order as it's set in ate_set_mac.

arm/conf/HL200: config file for the Hot-e HL200

Approved by:	re (kensmith)
</content>
</entry>
<entry>
<title>This commit was manufactured by cvs2svn to create branch 'RELENG_6_3'.</title>
<updated>2007-12-02T13:10:44Z</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>2007-12-02T13:10:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=c2cbeda1e456d854085d19d1da778d4847b904e3'/>
<id>urn:sha1:c2cbeda1e456d854085d19d1da778d4847b904e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>This commit was manufactured by cvs2svn to create branch 'RELENG_6_3'.</title>
<updated>2007-11-24T19:45:58Z</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>2007-11-24T19:45:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=0ef2db398f8ee2f0433eb121c3590cb4288b9a04'/>
<id>urn:sha1:0ef2db398f8ee2f0433eb121c3590cb4288b9a04</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC arm/xscale/ixp425/files.ixp425 up to rev 1.4, add IxNpeMicrocode.dat.uu</title>
<updated>2007-11-17T18:24:46Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-11-17T18:24:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=6333effe3de649c8f37b7a3c40eeb200d969f116'/>
<id>urn:sha1:6333effe3de649c8f37b7a3c40eeb200d969f116</id>
<content type='text'>
Now that Intel changed the license for the NPE firmware, import it directly
hexed into our tree, instead of requiring the user to download it.
</content>
</entry>
<entry>
<title>MFC:</title>
<updated>2007-11-17T18:22:57Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-11-17T18:22:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=82cb32eebcb4a768de59a41073c57e9c772c26e4'/>
<id>urn:sha1:82cb32eebcb4a768de59a41073c57e9c772c26e4</id>
<content type='text'>
sys/arm/xscale/ixp425/ixp425_npe.c rev 1.6
sys/arm/xscale/ixp425/if_npe.c rev 1.6
sys/arm/xscale/ixp425/ixp425_npevar.h rev 1.2

date: 2007/05/24 16:31:22;  author: sam;  state: Exp;  lines: +3 -3
Search for a proper ucode image to use by incrementing the minor
release number up to the max.  This should eliminate the need to
tweak the default imageid define for later releases that are found
on the Intel web site.

Approved by:	re (kensmith)
</content>
</entry>
<entry>
<title>MFC: 	Remove mpte optimization from pmap_enter_quick().</title>
<updated>2007-11-05T16:18:00Z</updated>
<author>
<name>Stephan Uphoff</name>
<email>ups@FreeBSD.org</email>
</author>
<published>2007-11-05T16:18:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=e014671c76c2504ddad2fb42b0dca737cf826932'/>
<id>urn:sha1:e014671c76c2504ddad2fb42b0dca737cf826932</id>
<content type='text'>
	There is a race with the current locking scheme and removing
	it should have no measurable performance impact.
	This fixes page faults leading to panics in pmap_enter_quick_locked()
	on amd64/i386.

Requested by: alc@
</content>
</entry>
<entry>
<title>MFC:</title>
<updated>2007-10-17T23:29:02Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-10-17T23:29:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=70a7b46e6601702ea927da6cd670f32121ddc924'/>
<id>urn:sha1:70a7b46e6601702ea927da6cd670f32121ddc924</id>
<content type='text'>
arm/xscale/i80321/i80321_timer.c 1.8
arm/xscale/i80321/std.iq31244 rev 1.3
conf/options.arm rev 1.6
The IQ80321 clock is 200MHz, but the IQ31244 is 198MHz, so add a kernel option
to override the frequency
</content>
</entry>
<entry>
<title>MFC the reimplementation of ARM_USE_SMALL_ALLOC.</title>
<updated>2007-10-16T21:24:44Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-10-16T21:24:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1d5f266e83c5c3bb05c9d5564e9dc8a66b05f3b1'/>
<id>urn:sha1:1d5f266e83c5c3bb05c9d5564e9dc8a66b05f3b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC rev 1.33/</title>
<updated>2007-10-16T21:13:59Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2007-10-16T21:13:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d3de44af9de2f23cf0af0584d2f6291975d9330c'/>
<id>urn:sha1:d3de44af9de2f23cf0af0584d2f6291975d9330c</id>
<content type='text'>
date: 2007/06/10 12:33:01;  author: cognet;  state: Exp;  lines: +2 -1
Initialize the dma tag's bounce_zone to NULL if we didn't allocate it.
</content>
</entry>
</feed>
