Remove old spinlock_debug code from libc

This no longer seems useful.  Remove it.

This was prompted by a "cast discards volatile qualifier" warning
in libthr when WARNS=6.

Reviewed by:	kib
MFC after:	3 days
Sponsored by:	Dell EMC
Differential Revision:	https://reviews.freebsd.org/D10832
This commit is contained in:
Eric van Gyzen 2017-05-20 17:32:01 +00:00
parent 048ad6aedc
commit 07f29d9f76
5 changed files with 10 additions and 19 deletions

View File

@ -485,7 +485,6 @@ FBSDprivate_1.0 {
_pthread_sigmask; _pthread_sigmask;
_pthread_testcancel; _pthread_testcancel;
_spinlock; _spinlock;
_spinlock_debug;
_spinunlock; _spinunlock;
_rtld_addr_phdr; _rtld_addr_phdr;
_rtld_atfork_pre; _rtld_atfork_pre;

View File

@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$");
long _atomic_lock_stub(volatile long *); long _atomic_lock_stub(volatile long *);
void _spinlock_stub(spinlock_t *); void _spinlock_stub(spinlock_t *);
void _spinunlock_stub(spinlock_t *); void _spinunlock_stub(spinlock_t *);
void _spinlock_debug_stub(spinlock_t *, char *, int);
__weak_reference(_atomic_lock_stub, _atomic_lock); __weak_reference(_atomic_lock_stub, _atomic_lock);
@ -48,7 +47,6 @@ _atomic_lock_stub(volatile long *lck __unused)
return (0L); return (0L);
} }
__weak_reference(_spinlock, _spinlock_debug);
#pragma weak _spinlock #pragma weak _spinlock
void void
_spinlock(spinlock_t *lck) _spinlock(spinlock_t *lck)

View File

@ -41,21 +41,17 @@
* Lock structure with room for debugging information. * Lock structure with room for debugging information.
*/ */
struct _spinlock { struct _spinlock {
volatile long access_lock; long spare1;
volatile long lock_owner; long spare2;
volatile char *fname; void *thr_extra;
volatile int lineno; int spare3;
}; };
typedef struct _spinlock spinlock_t; typedef struct _spinlock spinlock_t;
#define _SPINLOCK_INITIALIZER { 0, 0, 0, 0 } #define _SPINLOCK_INITIALIZER { 0, 0, 0, 0 }
#define _SPINUNLOCK(_lck) _spinunlock(_lck); #define _SPINUNLOCK(_lck) _spinunlock(_lck);
#ifdef _LOCK_DEBUG
#define _SPINLOCK(_lck) _spinlock_debug(_lck, __FILE__, __LINE__)
#else
#define _SPINLOCK(_lck) _spinlock(_lck) #define _SPINLOCK(_lck) _spinlock(_lck)
#endif
/* /*
* Thread function prototype definitions: * Thread function prototype definitions:
@ -64,7 +60,6 @@ __BEGIN_DECLS
long _atomic_lock(volatile long *); long _atomic_lock(volatile long *);
void _spinlock(spinlock_t *); void _spinlock(spinlock_t *);
void _spinunlock(spinlock_t *); void _spinunlock(spinlock_t *);
void _spinlock_debug(spinlock_t *, char *, int);
__END_DECLS __END_DECLS
#endif /* _SPINLOCK_H_ */ #endif /* _SPINLOCK_H_ */

View File

@ -173,7 +173,6 @@ STATIC_LIB_REQUIRE(_sigtimedwait);
STATIC_LIB_REQUIRE(_sigwait); STATIC_LIB_REQUIRE(_sigwait);
STATIC_LIB_REQUIRE(_sigwaitinfo); STATIC_LIB_REQUIRE(_sigwaitinfo);
STATIC_LIB_REQUIRE(_spinlock); STATIC_LIB_REQUIRE(_spinlock);
STATIC_LIB_REQUIRE(_spinlock_debug);
STATIC_LIB_REQUIRE(_spinunlock); STATIC_LIB_REQUIRE(_spinunlock);
STATIC_LIB_REQUIRE(_thread_init_hack); STATIC_LIB_REQUIRE(_thread_init_hack);

View File

@ -65,7 +65,7 @@ __thr_spinunlock(spinlock_t *lck)
{ {
struct spinlock_extra *_extra; struct spinlock_extra *_extra;
_extra = (struct spinlock_extra *)lck->fname; _extra = lck->thr_extra;
THR_UMUTEX_UNLOCK(_get_curthread(), &_extra->lock); THR_UMUTEX_UNLOCK(_get_curthread(), &_extra->lock);
} }
@ -78,9 +78,9 @@ __thr_spinlock(spinlock_t *lck)
PANIC("Spinlock called when not threaded."); PANIC("Spinlock called when not threaded.");
if (!initialized) if (!initialized)
PANIC("Spinlocks not initialized."); PANIC("Spinlocks not initialized.");
if (lck->fname == NULL) if (lck->thr_extra == NULL)
init_spinlock(lck); init_spinlock(lck);
_extra = (struct spinlock_extra *)lck->fname; _extra = lck->thr_extra;
THR_UMUTEX_LOCK(_get_curthread(), &_extra->lock); THR_UMUTEX_LOCK(_get_curthread(), &_extra->lock);
} }
@ -90,14 +90,14 @@ init_spinlock(spinlock_t *lck)
struct pthread *curthread = _get_curthread(); struct pthread *curthread = _get_curthread();
THR_UMUTEX_LOCK(curthread, &spinlock_static_lock); THR_UMUTEX_LOCK(curthread, &spinlock_static_lock);
if ((lck->fname == NULL) && (spinlock_count < MAX_SPINLOCKS)) { if ((lck->thr_extra == NULL) && (spinlock_count < MAX_SPINLOCKS)) {
lck->fname = (char *)&extra[spinlock_count]; lck->thr_extra = &extra[spinlock_count];
_thr_umutex_init(&extra[spinlock_count].lock); _thr_umutex_init(&extra[spinlock_count].lock);
extra[spinlock_count].owner = lck; extra[spinlock_count].owner = lck;
spinlock_count++; spinlock_count++;
} }
THR_UMUTEX_UNLOCK(curthread, &spinlock_static_lock); THR_UMUTEX_UNLOCK(curthread, &spinlock_static_lock);
if (lck->fname == NULL) if (lck->thr_extra == NULL)
PANIC("Warning: exceeded max spinlocks"); PANIC("Warning: exceeded max spinlocks");
} }