All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Joel Soete" <jsoe0708@tiscali.be>
To: "Randolph Chung" <randolph@tausq.org>
Cc: "Jan-Benedict Glaw" <jbglaw@lug-owl.de>,
	parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] Oops on 2.4.20-pa33
Date: Tue, 6 May 2003 18:34:55 +0200	[thread overview]
Message-ID: <3EB7766A00000392@ocpmta7.freegates.net> (raw)
In-Reply-To: <3EB7766A00000308@ocpmta7.freegates.net>

>
>That said, I will try to prepare a new patch asap.
>
Ok here we are:

=====
diff -NaurX dontdiff linux-2.4.20-pa33/arch/parisc/kernel/signal.c linux-2.4.20-pa33-gcc33/arch/parisc/kernel/signal.c
--- linux-2.4.20-pa33/arch/parisc/kernel/signal.c	2003-05-06 17:47:32.000000000
+0200
+++ linux-2.4.20-pa33-gcc33/arch/parisc/kernel/signal.c	2003-05-06 18:09:35.000000000
+0200
@@ -489,7 +489,7 @@
 		ka = &current->sig->action[signr-1];
 		DBG(("sa_handler is %x\n", 
 			(unsigned int) ka->sa.sa_handler));
-		if (ka->sa.sa_handler == SIG_IGN) {
+		if (ka->sa.sa_handler == (void *)SIG_IGN) {
 			if (signr != SIGCHLD)
 				continue;
 			while (sys_wait4(-1, NULL, WNOHANG, NULL) > 0)
@@ -497,7 +497,7 @@
 			continue;
 		}
 
-		if (ka->sa.sa_handler == SIG_DFL) {
+		if (ka->sa.sa_handler == (void *)SIG_DFL) {
 			int exit_code = signr;
 
 			/* Init gets no signals it doesn't want.  */
diff -NaurX dontdiff linux-2.4.20-pa33/drivers/char/n_tty.c linux-2.4.20-pa33-gcc33/drivers/char/n_tty.c
--- linux-2.4.20-pa33/drivers/char/n_tty.c	2003-05-06 17:49:36.000000000
+0200
+++ linux-2.4.20-pa33-gcc33/drivers/char/n_tty.c	2003-05-06 18:10:25.000000000
+0200
@@ -810,7 +810,11 @@
 int is_ignored(int sig)
 {
 	return (sigismember(&current->blocked, sig) ||
+#if defined (__hppa__)
+	        current->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN);
+#else
 	        current->sig->action[sig-1].sa.sa_handler == SIG_IGN);
+#endif
 }
 
 static void n_tty_set_termios(struct tty_struct *tty, struct termios * old)
diff -NaurX dontdiff linux-2.4.20-pa33/fs/ncpfs/sock.c linux-2.4.20-pa33-gcc33/fs/ncpfs/sock.c
--- linux-2.4.20-pa33/fs/ncpfs/sock.c	2003-05-06 17:50:52.000000000 +0200
+++ linux-2.4.20-pa33-gcc33/fs/ncpfs/sock.c	2003-05-06 18:11:12.000000000
+0200
@@ -466,9 +466,17 @@
 			   What if we've blocked it ourselves?  What about
 			   alarms?  Why, in fact, are we mucking with the
 			   sigmask at all? -- r~ */
+#if defined (__hppa__)
+			if (current->sig->action[SIGINT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
 			if (current->sig->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
+#endif
 				mask |= sigmask(SIGINT);
+#if defined (__hppa__)
+			if (current->sig->action[SIGQUIT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
 			if (current->sig->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
+#endif
 				mask |= sigmask(SIGQUIT);
 		}
 		siginitsetinv(&current->blocked, mask);
diff -NaurX dontdiff linux-2.4.20-pa33/fs/proc/array.c linux-2.4.20-pa33-gcc33/fs/proc/array.c
--- linux-2.4.20-pa33/fs/proc/array.c	2002-08-07 07:56:58.000000000 +0200
+++ linux-2.4.20-pa33-gcc33/fs/proc/array.c	2003-05-06 18:12:07.000000000
+0200
@@ -231,9 +231,17 @@
 	if (p->sig) {
 		k = p->sig->action;
 		for (i = 1; i <= _NSIG; ++i, ++k) {
+#if defined (__hppa__)
+			if (k->sa.sa_handler == (void *)SIG_IGN)
+#else
 			if (k->sa.sa_handler == SIG_IGN)
+#endif
 				sigaddset(ign, i);
+#if defined (__hppa__)
+			else if (k->sa.sa_handler != (void *)SIG_DFL)
+#else
 			else if (k->sa.sa_handler != SIG_DFL)
+#endif
 				sigaddset(catch, i);
 		}
 	}
diff -NaurX dontdiff linux-2.4.20-pa33/kernel/signal.c linux-2.4.20-pa33-gcc33/kernel/signal.c
--- linux-2.4.20-pa33/kernel/signal.c	2002-11-29 07:49:17.000000000 +0100
+++ linux-2.4.20-pa33-gcc33/kernel/signal.c	2003-05-06 18:13:50.000000000
+0200
@@ -126,7 +126,11 @@
 	int i;
 	struct k_sigaction *ka = &t->sig->action[0];
 	for (i = _NSIG ; i != 0 ; i--) {
+#if defined (__hppa__)
+		if (ka->sa.sa_handler != (void *)SIG_IGN)
+#else
 		if (ka->sa.sa_handler != SIG_IGN)
+#endif
 			ka->sa.sa_handler = SIG_DFL;
 		ka->sa.sa_flags = 0;
 		sigemptyset(&ka->sa.sa_mask);
@@ -572,7 +576,11 @@
 		return -ESRCH;
 	}
 
+#if defined (__hppa__)
+	if (t->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN)
+#else
 	if (t->sig->action[sig-1].sa.sa_handler == SIG_IGN)
+#endif
 		t->sig->action[sig-1].sa.sa_handler = SIG_DFL;
 	sigdelset(&t->blocked, sig);
 	recalc_sigpending(t);
@@ -1094,8 +1102,13 @@
 		 * the signal to be ignored.
 		 */
 
+#if defined (__hppa__)
+		if (k->sa.sa_handler == (void *)SIG_IGN
+		    || (k->sa.sa_handler == (void *)SIG_DFL
+#else
 		if (k->sa.sa_handler == SIG_IGN
 		    || (k->sa.sa_handler == SIG_DFL
+#endif
 			&& (sig == SIGCONT ||
 			    sig == SIGCHLD ||
 			    sig == SIGURG ||
diff -NaurX dontdiff linux-2.4.20-pa33/net/sunrpc/clnt.c linux-2.4.20-pa33-gcc33/net/sunrpc/clnt.c
--- linux-2.4.20-pa33/net/sunrpc/clnt.c	2003-05-06 18:03:20.000000000 +0200
+++ linux-2.4.20-pa33-gcc33/net/sunrpc/clnt.c	2003-05-06 18:14:43.000000000
+0200
@@ -209,9 +209,17 @@
 	/* Turn off various signals */
 	if (clnt->cl_intr) {
 		struct k_sigaction *action = current->sig->action;
+#if defined (__hppa__)
+		if (action[SIGINT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
 		if (action[SIGINT-1].sa.sa_handler == SIG_DFL)
+#endif
 			sigallow |= sigmask(SIGINT);
+#if defined (__hppa__)
+		if (action[SIGQUIT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
 		if (action[SIGQUIT-1].sa.sa_handler == SIG_DFL)
+#endif
 			sigallow |= sigmask(SIGQUIT);
 	}
 	spin_lock_irqsave(&current->sigmask_lock, irqflags);
diff -NaurX dontdiff linux-2.4.20-pa33/include/linux/compiler.h linux-2.4.20-pa33-gcc33/include/linux/compiler.h
--- linux-2.4.20-pa33/include/linux/compiler.h	2003-05-06 18:01:11.000000000
+0200
+++ linux-2.4.20-pa33-gcc33/include/linux/compiler.h	2003-05-06 18:08:56.000000000
+0200
@@ -1,6 +1,12 @@
 #ifndef __LINUX_COMPILER_H
 #define __LINUX_COMPILER_H
 
+#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#define inline		__inline__ __attribute__((always_inline))
+#define __inline__	__inline__ __attribute__((always_inline))
+#define __inline	__inline__ __attribute__((always_inline))
+#endif
+
 /* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
    a mechanism by which the user can annotate likely branch directions and
    expect the blocks to be reordered appropriately.  Define __builtin_expect

PS1: compiler patch is not of me; a backport suggested in the pa-ml (Willy
iirc)

PS2: for files in main tree I save (if _hppa_ because seems to be specific
to hppa according very early Dave mail :)

hth,
    Joel


---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be

  parent reply	other threads:[~2003-05-06 16:35 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-05 20:02 [parisc-linux] Oops on 2.4.20-pa33 Jan-Benedict Glaw
2003-05-05 20:05 ` Randolph Chung
2003-05-05 21:05   ` [parisc-linux] [PATCH-2.4] DIVA serial build error (was: Oops on 2.4.20-pa33) Jan-Benedict Glaw
2003-05-06 15:20     ` Jan-Benedict Glaw
2003-05-07 16:27       ` Paul Bame
2003-05-06  6:04   ` [parisc-linux] Oops on 2.4.20-pa33 Joel Soete
2003-05-06 14:04     ` Randolph Chung
2003-05-06 15:04       ` Joel Soete
2003-05-06 15:08         ` Randolph Chung
2003-05-06 16:34         ` Joel Soete [this message]
2003-05-06 16:42           ` John David Anglin
2003-05-06 17:56             ` Joel Soete
2003-05-07 15:48               ` Jan-Benedict Glaw
2003-05-07 16:09                 ` Joel Soete
2003-05-07 17:17                   ` Randolph Chung
2003-05-07 17:51                     ` Jan-Benedict Glaw
2003-05-09  2:37                       ` Andrew Shugg
2003-05-09 22:04                         ` Jan-Benedict Glaw
2003-05-08  5:52                     ` Joel Soete
2003-05-08  6:12               ` [parisc-linux] [PATCH-linux-2.5] sa_handler compare with cast Jan-Benedict Glaw
2003-05-10 20:31             ` [parisc-linux] Yet another '__canonicalize_funcptr_for_compare' pb Joel Soete
2003-05-10 20:25               ` Jan-Benedict Glaw
2003-05-10 21:08               ` Grant Grundler
2003-05-10 21:32                 ` John David Anglin
2003-05-10 21:33                 ` Joel Soete
2003-05-10 21:38                   ` [parisc-linux] Yet another '__canonicalize_funcptr_for_compare' John David Anglin
2003-05-10 21:21               ` [parisc-linux] Re: Yet another '__canonicalize_funcptr_for_compare' pb John David Anglin
2003-05-05 20:10 ` [parisc-linux] Oops on 2.4.20-pa33 John David Anglin
  -- strict thread matches above, loose matches on Subject: below --
2003-05-06 17:33 Joel Soete
2003-05-06 17:40 ` Randolph Chung

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3EB7766A00000392@ocpmta7.freegates.net \
    --to=jsoe0708@tiscali.be \
    --cc=jbglaw@lug-owl.de \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=randolph@tausq.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.