Module Name: src
Committed By: riastradh
Date: Sun Sep 8 16:08:38 UTC 2013
Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_auth.c
Log Message:
Use Linux atomics, not spinlocks or NetBSD atomics in drm_auth.c.
Removes an #ifdef __NetBSD__.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.3 -r1.1.1.1.2.4 \
src/sys/external/bsd/drm2/dist/drm/drm_auth.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/drm_auth.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.1.1.1.2.3 src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.1.1.1.2.4
--- src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.1.1.1.2.3 Wed Jul 24 02:00:22 2013
+++ src/sys/external/bsd/drm2/dist/drm/drm_auth.c Sun Sep 8 16:08:38 2013
@@ -141,10 +141,7 @@ int drm_remove_magic(struct drm_master *
*/
int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
{
- static drm_magic_t sequence = 0;
-#ifndef __NetBSD__
- static DEFINE_SPINLOCK(lock);
-#endif
+ static atomic_t sequence = ATOMIC_INIT(0);
struct drm_auth *auth = data;
/* Find unique magic */
@@ -152,15 +149,7 @@ int drm_getmagic(struct drm_device *dev,
auth->magic = file_priv->magic;
} else {
do {
-#ifdef __NetBSD__
- auth->magic = atomic_inc_uint_nv(&sequence);
-#else
- spin_lock(&lock);
- if (!sequence)
- ++sequence; /* reserve 0 */
- auth->magic = sequence++;
- spin_unlock(&lock);
-#endif
+ auth->magic = atomic_inc_return(&sequence);
} while (drm_find_file(file_priv->master, auth->magic));
file_priv->magic = auth->magic;
drm_add_magic(file_priv->master, file_priv, auth->magic);