Fix several build warnings on sparc.

/

	* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
	(set_obp_int): New function.
	(get_obp_int): New function.
	(__get_clockfreq_via_dev_openprom): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h (INTERNAL_SYSCALL_ERROR_P): Avoid
	unused variable warnings on 'val' and use builtin_expect.
	(INLINE_SYSCALL): Don't wrap INTERNAL_SYSCALL_ERROR_P with builtin_expect.
	(INLINE_CLONE_SYSCALL): Likewise.

nptl/

	* sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
	atomic_increment and remove unused local variable.
	(__old_sem_post): Likewise.
This commit is contained in:
David S. Miller 2012-03-06 11:15:26 -08:00
parent f3caba873e
commit e92584001a
5 changed files with 47 additions and 13 deletions

View File

@ -1,3 +1,14 @@
2012-03-06 David S. Miller <davem@davemloft.net>
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
(set_obp_int): New function.
(get_obp_int): New function.
(__get_clockfreq_via_dev_openprom): Likewise.
* sysdeps/unix/sysv/linux/sparc/sysdep.h (INTERNAL_SYSCALL_ERROR_P): Avoid
unused variable warnings on 'val' and use builtin_expect.
(INLINE_SYSCALL): Don't wrap INTERNAL_SYSCALL_ERROR_P with builtin_expect.
(INLINE_CLONE_SYSCALL): Likewise.
2012-03-05 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/fpu/libm-test-ulps: Update.

View File

@ -1,3 +1,9 @@
2012-03-06 David S. Miller <davem@davemloft.net>
* sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
atomic_increment and remove unused local variable.
(__old_sem_post): Likewise.
2012-02-27 David S. Miller <davem@davemloft.net>
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to non-existing

View File

@ -30,7 +30,7 @@ __new_sem_post (sem_t *sem)
{
struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
int nr = atomic_increment_val (&isem->value);
atomic_increment (&isem->value);
atomic_full_barrier ();
if (isem->nwaiters > 0)
{
@ -53,9 +53,10 @@ attribute_compat_text_section
__old_sem_post (sem_t *sem)
{
struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
int err;
int nr = atomic_increment_val (&isem->value);
int err = lll_futex_wake (&isem->value, 1,
atomic_increment (&isem->value);
err = lll_futex_wake (&isem->value, 1,
isem->private ^ FUTEX_PRIVATE_FLAG);
if (__builtin_expect (err, 0) < 0)
{

View File

@ -154,6 +154,22 @@ __get_clockfreq_via_proc_openprom (void)
return result;
}
static void set_obp_int (struct openpromio *op, int val)
{
char *cp = op->oprom_array;
int *ip = (int *) cp;
*ip = val;
}
static int get_obp_int (struct openpromio *op)
{
char *cp = op->oprom_array;
int *ip = (int *) cp;
return *ip;
}
static hp_timing_t
__get_clockfreq_via_dev_openprom (void)
{
@ -171,11 +187,11 @@ __get_clockfreq_via_dev_openprom (void)
obp_cmd->oprom_size =
sizeof (obp_buf) - sizeof (unsigned int);
*(int *) obp_cmd->oprom_array = 0;
set_obp_int (obp_cmd, 0);
ret = ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
if (ret == 0)
{
int cur_node = *(int *) obp_cmd->oprom_array;
int cur_node = get_obp_int (obp_cmd);
while (cur_node != 0 && cur_node != -1)
{
@ -190,15 +206,14 @@ __get_clockfreq_via_dev_openprom (void)
strcpy (obp_cmd->oprom_array, "clock-frequency");
ret = ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
if (ret == 0)
result =
(hp_timing_t) *(unsigned int *) obp_cmd->oprom_array;
result = (hp_timing_t) get_obp_int (obp_cmd);
}
obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
*(int *) obp_cmd->oprom_array = cur_node;
set_obp_int (obp_cmd, cur_node);
ret = ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
if (ret < 0)
break;
cur_node = *(int *)obp_cmd->oprom_array;
cur_node = get_obp_int (obp_cmd);
}
}
}

View File

@ -23,7 +23,7 @@
#define INLINE_SYSCALL(name, nr, args...) \
({ INTERNAL_SYSCALL_DECL(err); \
unsigned int resultvar = INTERNAL_SYSCALL(name, err, nr, args); \
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, err), 0)) \
if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
{ \
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
resultvar = 0xffffffff; \
@ -44,7 +44,8 @@
inline_syscall##nr(__SYSCALL_STRING, err, name, args)
#undef INTERNAL_SYSCALL_ERROR_P
#define INTERNAL_SYSCALL_ERROR_P(val, err) ((err) != 0)
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
((void) (val), __builtin_expect((err) != 0, 0))
#undef INTERNAL_SYSCALL_ERRNO
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
@ -152,7 +153,7 @@
"0" (__g1), "1" (__o0), "2" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4) : \
__SYSCALL_CLOBBERS); \
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (__o0, __g1), 0)) \
if (INTERNAL_SYSCALL_ERROR_P (__o0, __g1)) \
{ \
__set_errno (INTERNAL_SYSCALL_ERRNO (__o0, __g1)); \
__o0 = -1L; \