<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/kernel/extable.c, branch v2.6.12.2</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v2.6.12.2</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v2.6.12.2'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2004-06-27T03:55:19Z</updated>
<entry>
<title>[PATCH] Fix race between CONFIG_DEBUG_SLABALLOC and modules</title>
<updated>2004-06-27T03:55:19Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2004-06-27T03:55:19Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=969eb7b840c13a73190d98a608b8fec50dc31971'/>
<id>urn:sha1:969eb7b840c13a73190d98a608b8fec50dc31971</id>
<content type='text'>
store_stackinfo() does an unlocked module list walk during normal runtime
which opens up a race with the module load/unload code.  This can be
triggered by simply unloading and loading a module in a loop with
CONFIG_DEBUG_PAGEALLOC resulting in store_stackinfo() tripping over bad
list pointers.

kernel_text_address doesn't take any locks, because during an OOPS we don't
want to deadlock.  Rename that to __kernel_text_address, and make
kernel_text_address take the lock.

Signed-off-by: Zwane Mwaikambo &lt;zwane@fsmlabs.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt; (modified)
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sort exception tables</title>
<updated>2004-01-19T13:49:29Z</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2004-01-19T13:49:29Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=35b93751d2f184c82be557bbeac4c5cef11e34a1'/>
<id>urn:sha1:35b93751d2f184c82be557bbeac4c5cef11e34a1</id>
<content type='text'>
This patch arranges for the exception tables to be sorted on most
architectures.  It sorts the main kernel exception table on startup
and the module exception tables when they get loaded.  The main table
is sorted reasonably early - just after kmem_cache_init - but that
could be moved even earlier if necessary.

There is now a lib/extable.c which includes the sort_extable()
function from arch/ppc/mm/extable.c and the search_extable() function
from arch/i386/mm/extable.c, which had been copied to many
architectures.  On many architectures, arch/$(ARCH)/mm/extable.c
became empty and so I have removed it.

There are four architectures which do things differently from i386:
alpha, ia64, sparc and sparc64.  Alpha and ia64 store the offset from
the offset from the exception table entry to the instruction, and
sparc and sparc64 have range entries in the table.  For those
architectures I have added empty sort_extable functions.  The
maintainers for those architectures can implement something better if
they care to.  As it is they are no worse off than before.

Although it is a moderately sizable patch, it ends up with a net
reduction of 377 lines in the size of the kernel source. :)

I have tested this on x86 and ppc with a module that uses __get_user
in an init function, deliberately laid out to get the exception table
out of order, and it works (whereas it oopsed without this patch).
</content>
</entry>
<entry>
<title>[PATCH] Centralize Linker Symbols</title>
<updated>2003-07-18T12:22:58Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2003-07-18T12:22:58Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a232e5e1e04ea592595ffef42222791bacbb7cda'/>
<id>urn:sha1:a232e5e1e04ea592595ffef42222791bacbb7cda</id>
<content type='text'>
Richard Henderson point out a while back that linker generated symbols
should be declared as: "char _text[]" so that the compiler can't make
assumptions about them sitting in small sections, etc.

Centralize these defintions in asm/sections.h (where some already
are on x86).
</content>
</entry>
<entry>
<title>[PATCH] Put all functions in kallsyms</title>
<updated>2003-04-12T20:01:17Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@digeo.com</email>
</author>
<published>2003-04-12T20:01:17Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4b4bd81a64ff2826bd964b78753172591df34612'/>
<id>urn:sha1:4b4bd81a64ff2826bd964b78753172591df34612</id>
<content type='text'>
From: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

Introduce _sinittext and _einittext (cf. _stext and _etext), so kallsyms
includes __init functions.

TODO: Use huffman name compression and 16-bit offsets (see IDE
oopser patch)
</content>
</entry>
<entry>
<title>[PATCH] Extable list removal</title>
<updated>2003-04-01T12:42:30Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2003-04-01T12:42:30Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c17794bb23576b30c6ccc3112ba06ea1cd766b6d'/>
<id>urn:sha1:c17794bb23576b30c6ccc3112ba06ea1cd766b6d</id>
<content type='text'>
This removes the extable list, and the struct exception_table, in
favour of just iterating through the modules.  Now all iteration is
within kernel/module.c, this is a fairly trivial cleanup.
</content>
</entry>
<entry>
<title>[PATCH] module_text_address returns the module pointer</title>
<updated>2003-04-01T12:42:14Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2003-04-01T12:42:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=72ea6af52261bf406b583663a058408fa0a9c5e7'/>
<id>urn:sha1:72ea6af52261bf406b583663a058408fa0a9c5e7</id>
<content type='text'>
By making module_text_address return the module it found, we
simplify symbol_put_addr significantly.
</content>
</entry>
<entry>
<title>[PATCH] Remove mod_bound macro and unify kernel_text_address().</title>
<updated>2003-01-06T00:53:06Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2003-01-06T00:53:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8e4f2cd334e33240605c353c7fa10e3826a920b3'/>
<id>urn:sha1:8e4f2cd334e33240605c353c7fa10e3826a920b3</id>
<content type='text'>
Various archs (i386, m68k, s390, s390x, m68k, parisc, um, x86_64)
implement kernel_text_address.  Put this in kernel/extable.c, and the
module iteration inside module.c.

Other than cleanliness, this finally allows the module list and lock
to be static to kernel/module.c (you didn't think I actually cared
about those archs did you?)

It also drops the module-&gt;init_size to zero when it's discarded, so
bounds checking is simplified (and the /proc/modules size statistic
will be more accurate, too).
</content>
</entry>
<entry>
<title>[PATCH] Exception table cleanup</title>
<updated>2003-01-05T12:08:01Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2003-01-05T12:08:01Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=af285fc8b5eec2a2b6695c7e2d0a1842dbd1c059'/>
<id>urn:sha1:af285fc8b5eec2a2b6695c7e2d0a1842dbd1c059</id>
<content type='text'>
This patch combines the common exception table searching functionality
for various architectures, to avoid unneccessary (and currently buggy)
duplication, and so that the exception table list and lock can be kept
private to module.c.

The archs provide "struct exception_table" and "search_extable": the
generic infrastructure drives the rest.
</content>
</entry>
<entry>
<title>[PATCH] MODULE_LICENSE and EXPORT_SYMBOL_GPL support</title>
<updated>2003-01-05T12:07:53Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2003-01-05T12:07:53Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3344ea3ad4b7c302c846a680dbaeedf96ed45c02'/>
<id>urn:sha1:3344ea3ad4b7c302c846a680dbaeedf96ed45c02</id>
<content type='text'>
This implements EXPORT_SYMBOL_GPL and MODULE_LICENSE properly (so
restrictions are enforced).  Also fixes "proprietory" spelling.
</content>
</entry>
<entry>
<title>Parts of "module.c" was needed even when no module support</title>
<updated>2002-11-18T12:51:17Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@home.transmeta.com</email>
</author>
<published>2002-11-18T12:51:17Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0788fd347906928fcfef52fba2fbb188066daaa1'/>
<id>urn:sha1:0788fd347906928fcfef52fba2fbb188066daaa1</id>
<content type='text'>
was enabled, so split it up into "extable.c"
</content>
</entry>
</feed>
