From c8e82b4a29bc601af1336898108337a8fa4bc355 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 25 Mar 2006 21:03:32 +0000 Subject: [PATCH] * sysdeps/sparc/sparc32/bits/atomic.h (__v9_compare_and_exchange_val_32_acq): Add "memory" clobber. * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h (__arch_compare_and_exchange_val_32_acq, atomic_exchange_acq): Likewise. * sysdeps/sparc/sparc64/bits/atomic.h (__arch_compare_and_exchange_val_32_acq, __arch_compare_and_exchange_val_64_acq, atomic_exchange_acq): Likewise. 2006-03-24 Jakub Jelinek * nis/nss_nisplus/nisplus-proto.c (_nss_create_tablename): Check the return value of malloc rather than the static var again. * nis/nss_nisplus/nisplus-grp.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-network.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-ethers.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-rpc.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-service.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-hosts.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-alias.c (_nss_create_tablename): Likewise. * nis/nss_nisplus/nisplus-pwd.c (_nss_pwd_create_tablename): Likewise. --- ChangeLog | 24 ++++++++++++++++++++++++ nis/nss_nisplus/nisplus-alias.c | 5 +++-- nis/nss_nisplus/nisplus-ethers.c | 4 ++-- nis/nss_nisplus/nisplus-grp.c | 5 +++-- nis/nss_nisplus/nisplus-hosts.c | 4 ++-- nis/nss_nisplus/nisplus-network.c | 4 ++-- nis/nss_nisplus/nisplus-proto.c | 5 +++-- nis/nss_nisplus/nisplus-pwd.c | 5 +++-- nis/nss_nisplus/nisplus-rpc.c | 5 +++-- nis/nss_nisplus/nisplus-service.c | 5 +++-- sysdeps/sparc/sparc32/bits/atomic.h | 2 +- sysdeps/sparc/sparc32/sparcv9/bits/atomic.h | 4 ++-- sysdeps/sparc/sparc64/bits/atomic.h | 6 +++--- 13 files changed, 54 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 632ae73a20..370d3c6089 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2006-03-24 David S. Miller + + * sysdeps/sparc/sparc32/bits/atomic.h + (__v9_compare_and_exchange_val_32_acq): Add "memory" clobber. + * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h + (__arch_compare_and_exchange_val_32_acq, atomic_exchange_acq): + Likewise. + * sysdeps/sparc/sparc64/bits/atomic.h + (__arch_compare_and_exchange_val_32_acq, + __arch_compare_and_exchange_val_64_acq, atomic_exchange_acq): Likewise. + +2006-03-24 Jakub Jelinek + + * nis/nss_nisplus/nisplus-proto.c (_nss_create_tablename): Check the + return value of malloc rather than the static var again. + * nis/nss_nisplus/nisplus-grp.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-network.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-ethers.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-rpc.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-service.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-hosts.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-alias.c (_nss_create_tablename): Likewise. + * nis/nss_nisplus/nisplus-pwd.c (_nss_pwd_create_tablename): Likewise. + 2006-03-25 Ulrich Drepper * sysdeps/unix/sysv/linux/sparc/bits/poll.h: Add POLLMSG, diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c index 6aa93ab3bc..d7926e1566 100644 --- a/nis/nss_nisplus/nisplus-alias.c +++ b/nis/nss_nisplus/nisplus-alias.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997,1998,2001,2002,2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -51,7 +52,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "mail_aliases.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-ethers.c b/nis/nss_nisplus/nisplus-ethers.c index fcc550e743..ca0a9e2481 100644 --- a/nis/nss_nisplus/nisplus-ethers.c +++ b/nis/nss_nisplus/nisplus-ethers.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997,1998,2000-2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997,1998,2000-2003,2005,2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -94,7 +94,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "ethers.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-grp.c b/nis/nss_nisplus/nisplus-grp.c index 423f7e7291..624b20610a 100644 --- a/nis/nss_nisplus/nisplus-grp.c +++ b/nis/nss_nisplus/nisplus-grp.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -47,7 +48,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "group.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-hosts.c b/nis/nss_nisplus/nisplus-hosts.c index 81f8a984dc..bf002d6dd7 100644 --- a/nis/nss_nisplus/nisplus-hosts.c +++ b/nis/nss_nisplus/nisplus-hosts.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2002, 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1997-2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -186,7 +186,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "hosts.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c index dc6b99e505..960c0558e9 100644 --- a/nis/nss_nisplus/nisplus-network.c +++ b/nis/nss_nisplus/nisplus-network.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997,1998,2000-2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997,1998,2000-2003,2005,2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -148,7 +148,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "networks.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-proto.c b/nis/nss_nisplus/nisplus-proto.c index 585a4844ad..a3370aa85e 100644 --- a/nis/nss_nisplus/nisplus-proto.c +++ b/nis/nss_nisplus/nisplus-proto.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997,1998,2001,2002,2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -147,7 +148,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "protocols.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-pwd.c b/nis/nss_nisplus/nisplus-pwd.c index 97679dd349..6c222ede02 100644 --- a/nis/nss_nisplus/nisplus-pwd.c +++ b/nis/nss_nisplus/nisplus-pwd.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997,1999,2001,2002,2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1999, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -44,7 +45,7 @@ _nss_pwd_create_tablename (int *errnop) static const char prefix[] = "passwd.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (pwd_tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-rpc.c b/nis/nss_nisplus/nisplus-rpc.c index 98baa5f7fc..f6ab3fbd87 100644 --- a/nis/nss_nisplus/nisplus-rpc.c +++ b/nis/nss_nisplus/nisplus-rpc.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997,1998,2001,2002,2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -144,7 +145,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "rpc.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c index 848e5f4dd8..c47dc09a06 100644 --- a/nis/nss_nisplus/nisplus-service.c +++ b/nis/nss_nisplus/nisplus-service.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-1999,2001,2002,2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -151,7 +152,7 @@ _nss_create_tablename (int *errnop) static const char prefix[] = "services.org_dir."; char *p = malloc (sizeof (prefix) + local_dir_len); - if (tablename_val == NULL) + if (p == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; diff --git a/sysdeps/sparc/sparc32/bits/atomic.h b/sysdeps/sparc/sparc32/bits/atomic.h index 707a4b0a52..ef553f7270 100644 --- a/sysdeps/sparc/sparc32/bits/atomic.h +++ b/sysdeps/sparc/sparc32/bits/atomic.h @@ -122,7 +122,7 @@ volatile unsigned char __sparc32_atomic_locks[64] __asm __volatile (".word 0xcde05005" \ : "+r" (__acev_tmp), "=m" (*__acev_mem) \ : "r" (__acev_oldval), "m" (*__acev_mem), \ - "r" (__acev_mem)); \ + "r" (__acev_mem) : "memory"); \ __acev_tmp; }) #endif diff --git a/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h b/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h index 36959a9926..7b9d61d468 100644 --- a/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h +++ b/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h @@ -59,7 +59,7 @@ typedef uintmax_t uatomic_max_t; __asm __volatile ("cas [%4], %2, %0" \ : "=r" (__acev_tmp), "=m" (*__acev_mem) \ : "r" (oldval), "m" (*__acev_mem), "r" (__acev_mem), \ - "0" (newval)); \ + "0" (newval) : "memory"); \ __acev_tmp; }) /* This can be implemented if needed. */ @@ -74,7 +74,7 @@ typedef uintmax_t uatomic_max_t; if (sizeof (*(mem)) == 4) \ __asm ("swap %0, %1" \ : "=m" (*__memp), "=r" (__oldval) \ - : "m" (*__memp), "1" (__value)); \ + : "m" (*__memp), "1" (__value) : "memory"); \ else \ abort (); \ __oldval; }) diff --git a/sysdeps/sparc/sparc64/bits/atomic.h b/sysdeps/sparc/sparc64/bits/atomic.h index 2fb377810e..d0a64afce8 100644 --- a/sysdeps/sparc/sparc64/bits/atomic.h +++ b/sysdeps/sparc/sparc64/bits/atomic.h @@ -59,7 +59,7 @@ typedef uintmax_t uatomic_max_t; __asm __volatile ("cas [%4], %2, %0" \ : "=r" (__acev_tmp), "=m" (*__acev_mem) \ : "r" (oldval), "m" (*__acev_mem), "r" (__acev_mem), \ - "0" (newval)); \ + "0" (newval) : "memory"); \ __acev_tmp; }) #define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \ @@ -69,7 +69,7 @@ typedef uintmax_t uatomic_max_t; __asm __volatile ("casx [%4], %2, %0" \ : "=r" (__acev_tmp), "=m" (*__acev_mem) \ : "r" ((long) (oldval)), "m" (*__acev_mem), \ - "r" (__acev_mem), "0" ((long) (newval))); \ + "r" (__acev_mem), "0" ((long) (newval)) : "memory"); \ __acev_tmp; }) #define atomic_exchange_acq(mem, newvalue) \ @@ -80,7 +80,7 @@ typedef uintmax_t uatomic_max_t; if (sizeof (*(mem)) == 4) \ __asm ("swap %0, %1" \ : "=m" (*__memp), "=r" (__oldval) \ - : "m" (*__memp), "1" (__value)); \ + : "m" (*__memp), "1" (__value) : "memory"); \ else \ { \ __val = *__memp; \ -- 2.11.4.GIT