[PATCH] signal.c, kernel 2.3.34

Keith Adams (kma@cs.brown.edu)
Tue, 28 Dec 1999 20:24:35 -0500


--X1bOJ3K7DJ5YkBrT
Content-Type: text/plain; charset=us-ascii

This patch against 2.3.34 causes siginfo on i386 to correctly report the
address and SEGV_MAPERR/SEGV_ACCERR status for segvs. To accomplish this,
it allows queueing of up to one siginfo for each non-realtime signal,
as per the XXX comments in kernel/signal.c. It also cleans this code up
somewhat, since dequeueing of both non-realtime and realtime signals is
now identical. It looks bigger than it is, because some code has been
pulled out of a conditional block.

There is an arch-dependent portion to this patch, in arch/i386/mm/fault.c
. Ideally, I would change the page fault handlers for all architectures
to correctly report the address and si_code for their faults, but since
I only have an i386 to test with, I only patched the i386. The patch
should not break other architectures, in any event.

I have tested it, and found that it correctly reports the siginfo
information on i386, only queues one non realtime signal at a time, and
still queues as many realtime signals as are sent. Test code available
on request. This is my first kernel patch, so any feedback would be
appreciated.

Thanks,
Keith Adams

--X1bOJ3K7DJ5YkBrT
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="patch.gz"
Content-Transfer-Encoding: base64

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
bBpOjDmLImwKVk7lk53/AXknk0TbGAAA

--X1bOJ3K7DJ5YkBrT
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=README

This patch enables correct siginfo reporting for SIGSEGV on i386.
Keith Adams -- kma@cs.brown.edu

--X1bOJ3K7DJ5YkBrT--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/