glibc fails in tst-timer4, __SI_TIMER needs its own case

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Aug 18 15:03:01 EST 2004


On Mon, 2004-08-16 at 07:51, Olaf Hering wrote:
> Ben,
>
> can you have a look at this one? glibc make check fails since the
> tst-timer4 test was added in April this year. I think __ST_TIMER needs
> its own case. This patch against 2.6.8.1 fixes it for me.

Hi !

Can you try that one instead ?

===== arch/ppc64/kernel/signal32.c 1.54 vs edited =====
--- 1.54/arch/ppc64/kernel/signal32.c	2004-07-05 20:27:10 +10:00
+++ edited/arch/ppc64/kernel/signal32.c	2004-08-18 15:10:20 +10:00
@@ -472,9 +472,13 @@
 				  &d->si_addr);
 		break;
 	case __SI_POLL >> 16:
-	case __SI_TIMER >> 16:
 		err |= __put_user(s->si_band, &d->si_band);
 		err |= __put_user(s->si_fd, &d->si_fd);
+		break;
+	case __SI_TIMER >> 16:
+		err |= __put_user(s->si_tid, &d->si_tid);
+		err |= __put_user(s->si_overrun, &d->si_overrun);
+		err |= __put_user((u32)(u64)s->si_ptr, &d->si_ptr);
 		break;
 	case __SI_RT >> 16: /* This is not generated by the kernel as of now.  */
 	case __SI_MESGQ >> 16:
===== include/asm-ppc64/ppc32.h 1.15 vs edited =====
--- 1.15/include/asm-ppc64/ppc32.h	2004-05-10 21:25:48 +10:00
+++ edited/include/asm-ppc64/ppc32.h	2004-08-18 15:09:51 +10:00
@@ -56,8 +56,10 @@

 		/* POSIX.1b timers */
 		struct {
-			unsigned int _timer1;
-			unsigned int _timer2;
+			timer_t _tid;			/* timer id */
+			int _overrun;			/* overrun count */
+			compat_sigval_t _sigval;		/* same as below */
+			int _sys_private;		/* not to be passed to user */
 		} _timer;

 		/* POSIX.1b signals */


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list