lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon,  3 Mar 2014 00:55:49 +0100
From:	Richard Weinberger <richard@....at>
To:	linux-kernel@...r.kernel.org
Cc:	linux-arch@...r.kernel.org, viro@...iv.linux.org.uk,
	vgupta@...opsys.com, catalin.marinas@....com, will.deacon@....com,
	hskinnemoen@...il.com, egtvedt@...fundet.no, vapier@...too.org,
	msalter@...hat.com, a-jacquiot@...com, starvik@...s.com,
	jesper.nilsson@...s.com, dhowells@...hat.com, rkuo@...eaurora.org,
	tony.luck@...el.com, fenghua.yu@...el.com, takata@...ux-m32r.org,
	geert@...ux-m68k.org, james.hogan@...tec.com, monstr@...str.eu,
	yasutake.koichi@...panasonic.com, ralf@...ux-mips.org,
	jonas@...thpole.se, jejb@...isc-linux.org, deller@....de,
	benh@...nel.crashing.org, paulus@...ba.org, schwidefsky@...ibm.com,
	heiko.carstens@...ibm.com, liqin.linux@...il.com,
	lennox.wu@...il.com, cmetcalf@...era.com, gxt@...c.pku.edu.cn,
	linux-xtensa@...ux-xtensa.org, akpm@...ux-foundation.org,
	oleg@...hat.com, tj@...nel.org, hch@...radead.org
Subject: Global signal cleanup, take 2

This is v2 of the global signal cleanup series.

This patch series moves all remaining archs to the get_signal() and
signal_setup_done() functions. Currently these archs use open coded
variants of the said functions.  Further, unused parameters get removed
from get_signal_to_deliver(), tracehook_signal_handler() and signal_delivered().

The following archs got zero build testing:
arc, c6x, cris-v32, hexagon, metag, score, unicore, sh64.

Changes since v1:
- Dropped "h8300: Use get_signal() signal_setup_done()", architecture got ripped out
- Dropped "openrisc: Use get_signal() signal_setup_done()", merged via openrisc tree
- Added ack to "c6x: Use get_signal() signal_setup_done()"
- Added ack to "hexagon: Use get_signal() signal_setup_done()"
- Added ack to "score: Use get_signal() signal_setup_done()"
- Added a common helper to translate signals
- Fixed some build issues
- Addressed comments

Signal translation using exec_domain is in a strange state.
Some archs support it, some not, some only kind of.
I fear mostly because of copy&paste developerment.
Here a small overview of my findings:

alpha:		no translation
arc:		supports translation
arm:		supports translation
arm64:		supports translation
avr32:		no translation
blackfin:	is confused, puts translated signal on stack frame, untranslated on regs->r0
c6x:		no translation
cris:		no translation, quote: /* TODO what is the current->exec_domain stuff and invmap ? */
frv:		is confused, puts translated signal on stack frame, untranslated on regs->gr8
hexagon:	no translation
ia64:		no translation
m32r:		supports translation
m68k:		supports translation
metag:		no translation
microblaze:	supports translation
mips:		no translation
mn10300:	is confused, puts translated signal on stack frame, untranslated on regs->d0
openrisc:	no translation, quote: /* TODO what is the current->exec_domain stuff and invmap ? */
parisc:		no translation
powerpc:	no translation
s390:		supports translation
score:		no translation
sh:		supports translation
sparc:		no translation
tile:		support translation
um:		support translation (only x86_64)
unicore32:	support translation
x86:		support translation (only ia32)
xtensa:		support translation

I'm wondering on which archs exec domains (and therefore signal translation)
are fully supported.
I guess we can remove the signal translation stuff from most archs.
Maybe hch can tell us more.

The whole series can also be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc.git signal_v2

 arch/arc/kernel/signal.c            |   52 ++++-----------
 arch/arm/kernel/signal.c            |   14 ----
 arch/arm64/include/asm/signal32.h   |    7 --
 arch/arm64/kernel/signal.c          |   55 +++++-----------
 arch/arm64/kernel/signal32.c        |    8 +-
 arch/avr32/kernel/signal.c          |   43 +++++-------
 arch/blackfin/kernel/signal.c       |   42 ++++--------
 arch/c6x/kernel/signal.c            |   43 +++++-------
 arch/cris/arch-v10/kernel/signal.c  |   79 +++++++++--------------
 arch/cris/arch-v32/kernel/signal.c  |   77 ++++++++--------------
 arch/frv/kernel/signal.c            |  122 ++++++++++++------------------------
 arch/hexagon/kernel/signal.c        |   45 +++++--------
 arch/ia64/kernel/signal.c           |   46 ++++++-------
 arch/m32r/kernel/signal.c           |   52 +++++----------
 arch/m68k/kernel/signal.c           |   78 +++++++----------------
 arch/metag/kernel/signal.c          |   55 +++++++---------
 arch/microblaze/kernel/signal.c     |   56 +++++-----------
 arch/mips/include/asm/abi.h         |   10 +-
 arch/mips/kernel/signal.c           |   66 +++++++------------
 arch/mips/kernel/signal32.c         |   39 ++++-------
 arch/mips/kernel/signal_n32.c       |   20 ++---
 arch/mn10300/kernel/signal.c        |  112 +++++++++++----------------------
 arch/parisc/kernel/signal.c         |   58 +++++++----------
 arch/powerpc/kernel/signal.c        |   31 +++------
 arch/powerpc/kernel/signal.h        |   12 +--
 arch/powerpc/kernel/signal_32.c     |   36 ++++------
 arch/powerpc/kernel/signal_64.c     |   28 +++-----
 arch/s390/kernel/compat_signal.c    |   92 ++++++++++-----------------
 arch/s390/kernel/entry.h            |    4 -
 arch/s390/kernel/signal.c           |   92 +++++++++------------------
 arch/score/kernel/signal.c          |   43 +++++-------
 arch/sh/kernel/signal_32.c          |   94 +++++++++------------------
 arch/sh/kernel/signal_64.c          |   97 ++++++++++------------------
 arch/tile/include/asm/compat.h      |    3 
 arch/tile/kernel/compat_signal.c    |   37 ++++------
 arch/tile/kernel/signal.c           |   62 +++++++-----------
 arch/um/include/shared/frame_kern.h |   12 +--
 arch/um/kernel/signal.c             |   27 +++----
 arch/unicore32/kernel/signal.c      |   73 +++++++--------------
 arch/x86/kernel/signal.c            |    9 --
 arch/x86/um/signal.c                |   52 ++++++---------
 arch/xtensa/kernel/signal.c         |   51 +++++----------
 include/linux/signal.h              |   27 +++----
 include/linux/tracehook.h           |    8 --
 kernel/signal.c                     |   46 ++++++-------
 45 files changed, 800 insertions(+), 1315 deletions(-)

Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ