[hurd,commited] hurd: fix warning

Message ID 20180127162135.28325-1-samuel.thibault@ens-lyon.org
State Committed, archived
Headers

Commit Message

Samuel Thibault Jan. 27, 2018, 4:21 p.m. UTC
  timer_ptr2id and timer_id2ptr are used to convert between
application-visible timer_t and struct timer_node *. timer_ptr2id was made
to use void * instead of timer_t in 49b650430eb5 ('Update.') for no reason.
It happens that on Linux timer_t is void *, so both that change and this
commit are no-ops there, but not on systems where timer_t is not void *.

Using timer_ptr2id for filling sival_ptr also does not make sense since that
actually is a void *.

	* sysdeps/pthread/posix-timer.h (timer_ptr2id): Cast to timer_t
	instead of void *.
	* sysdeps/pthread/timer_create.c (timer_create): Do not use
	timer_ptr2id to cast struct timer_node * to void *.
---
 ChangeLog                      | 4 ++++
 sysdeps/pthread/posix-timer.h  | 2 +-
 sysdeps/pthread/timer_create.c | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)
  

Patch

diff --git a/ChangeLog b/ChangeLog
index f2a771781e..497b00f65a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,10 @@ 
 	return 0.
 	* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Cast
 	vm_address_t * to ElfW(Addr) * for dl_main parameter.
+	* sysdeps/pthread/posix-timer.h (timer_ptr2id): Cast to timer_t
+	instead of void *.
+	* sysdeps/pthread/timer_create.c (timer_create): Do not use
+	timer_ptr2id to cast struct timer_node * to void *.
 
 2018-01-27  James Clarke  <jrtc27@jrtc27.com>
 
diff --git a/sysdeps/pthread/posix-timer.h b/sysdeps/pthread/posix-timer.h
index 82311706d8..d7af9a017a 100644
--- a/sysdeps/pthread/posix-timer.h
+++ b/sysdeps/pthread/posix-timer.h
@@ -87,7 +87,7 @@  extern struct thread_node __timer_signal_thread_rclk;
 
 /* Return pointer to timer structure corresponding to ID.  */
 #define timer_id2ptr(timerid) ((struct timer_node *) timerid)
-#define timer_ptr2id(timerid) ((void *) timerid)
+#define timer_ptr2id(timerid) ((timer_t) timerid)
 
 /* Check whether timer is valid; global mutex must be held. */
 static inline int
diff --git a/sysdeps/pthread/timer_create.c b/sysdeps/pthread/timer_create.c
index 1c80e6162f..2381a60d6f 100644
--- a/sysdeps/pthread/timer_create.c
+++ b/sysdeps/pthread/timer_create.c
@@ -77,7 +77,7 @@  timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
     {
       newtimer->event.sigev_notify = SIGEV_SIGNAL;
       newtimer->event.sigev_signo = SIGALRM;
-      newtimer->event.sigev_value.sival_ptr = timer_ptr2id (newtimer);
+      newtimer->event.sigev_value.sival_ptr = newtimer;
       newtimer->event.sigev_notify_function = 0;
     }