cred: switch to using atomic_long_t
[linux-block.git] / kernel / cred.c
index 3c714cb31660d970cb7d19cd25b48161cf50a6df..4a6cd0f0fef5fc586fea9c69639a99a25ccf6313 100644 (file)
@@ -102,17 +102,17 @@ static void put_cred_rcu(struct rcu_head *rcu)
 
 #ifdef CONFIG_DEBUG_CREDENTIALS
        if (cred->magic != CRED_MAGIC_DEAD ||
-           atomic_read(&cred->usage) != 0 ||
+           atomic_long_read(&cred->usage) != 0 ||
            read_cred_subscribers(cred) != 0)
                panic("CRED: put_cred_rcu() sees %p with"
-                     " mag %x, put %p, usage %d, subscr %d\n",
+                     " mag %x, put %p, usage %ld, subscr %d\n",
                      cred, cred->magic, cred->put_addr,
-                     atomic_read(&cred->usage),
+                     atomic_long_read(&cred->usage),
                      read_cred_subscribers(cred));
 #else
-       if (atomic_read(&cred->usage) != 0)
-               panic("CRED: put_cred_rcu() sees %p with usage %d\n",
-                     cred, atomic_read(&cred->usage));
+       if (atomic_long_read(&cred->usage) != 0)
+               panic("CRED: put_cred_rcu() sees %p with usage %ld\n",
+                     cred, atomic_long_read(&cred->usage));
 #endif
 
        security_cred_free(cred);
@@ -137,11 +137,11 @@ static void put_cred_rcu(struct rcu_head *rcu)
  */
 void __put_cred(struct cred *cred)
 {
-       kdebug("__put_cred(%p{%d,%d})", cred,
-              atomic_read(&cred->usage),
+       kdebug("__put_cred(%p{%ld,%d})", cred,
+              atomic_long_read(&cred->usage),
               read_cred_subscribers(cred));
 
-       BUG_ON(atomic_read(&cred->usage) != 0);
+       BUG_ON(atomic_long_read(&cred->usage) != 0);
 #ifdef CONFIG_DEBUG_CREDENTIALS
        BUG_ON(read_cred_subscribers(cred) != 0);
        cred->magic = CRED_MAGIC_DEAD;
@@ -164,8 +164,8 @@ void exit_creds(struct task_struct *tsk)
 {
        struct cred *real_cred, *cred;
 
-       kdebug("exit_creds(%u,%p,%p,{%d,%d})", tsk->pid, tsk->real_cred, tsk->cred,
-              atomic_read(&tsk->cred->usage),
+       kdebug("exit_creds(%u,%p,%p,{%ld,%d})", tsk->pid, tsk->real_cred, tsk->cred,
+              atomic_long_read(&tsk->cred->usage),
               read_cred_subscribers(tsk->cred));
 
        real_cred = (struct cred *) tsk->real_cred;
@@ -230,7 +230,7 @@ struct cred *cred_alloc_blank(void)
        if (!new)
                return NULL;
 
-       atomic_set(&new->usage, 1);
+       atomic_long_set(&new->usage, 1);
 #ifdef CONFIG_DEBUG_CREDENTIALS
        new->magic = CRED_MAGIC;
 #endif
@@ -276,7 +276,7 @@ struct cred *prepare_creds(void)
        memcpy(new, old, sizeof(struct cred));
 
        new->non_rcu = 0;
-       atomic_set(&new->usage, 1);
+       atomic_long_set(&new->usage, 1);
        set_cred_subscribers(new, 0);
        get_group_info(new->group_info);
        get_uid(new->user);
@@ -363,8 +363,8 @@ int copy_creds(struct task_struct *p, unsigned long clone_flags)
            ) {
                p->real_cred = get_cred_many(p->cred, 2);
                alter_cred_subscribers(p->cred, 2);
-               kdebug("share_creds(%p{%d,%d})",
-                      p->cred, atomic_read(&p->cred->usage),
+               kdebug("share_creds(%p{%ld,%d})",
+                      p->cred, atomic_long_read(&p->cred->usage),
                       read_cred_subscribers(p->cred));
                inc_rlimit_ucounts(task_ucounts(p), UCOUNT_RLIMIT_NPROC, 1);
                return 0;
@@ -457,8 +457,8 @@ int commit_creds(struct cred *new)
        struct task_struct *task = current;
        const struct cred *old = task->real_cred;
 
-       kdebug("commit_creds(%p{%d,%d})", new,
-              atomic_read(&new->usage),
+       kdebug("commit_creds(%p{%ld,%d})", new,
+              atomic_long_read(&new->usage),
               read_cred_subscribers(new));
 
        BUG_ON(task->cred != old);
@@ -467,7 +467,7 @@ int commit_creds(struct cred *new)
        validate_creds(old);
        validate_creds(new);
 #endif
-       BUG_ON(atomic_read(&new->usage) < 1);
+       BUG_ON(atomic_long_read(&new->usage) < 1);
 
        get_cred(new); /* we will require a ref for the subj creds too */
 
@@ -539,14 +539,14 @@ EXPORT_SYMBOL(commit_creds);
  */
 void abort_creds(struct cred *new)
 {
-       kdebug("abort_creds(%p{%d,%d})", new,
-              atomic_read(&new->usage),
+       kdebug("abort_creds(%p{%ld,%d})", new,
+              atomic_long_read(&new->usage),
               read_cred_subscribers(new));
 
 #ifdef CONFIG_DEBUG_CREDENTIALS
        BUG_ON(read_cred_subscribers(new) != 0);
 #endif
-       BUG_ON(atomic_read(&new->usage) < 1);
+       BUG_ON(atomic_long_read(&new->usage) < 1);
        put_cred(new);
 }
 EXPORT_SYMBOL(abort_creds);
@@ -562,8 +562,8 @@ const struct cred *override_creds(const struct cred *new)
 {
        const struct cred *old = current->cred;
 
-       kdebug("override_creds(%p{%d,%d})", new,
-              atomic_read(&new->usage),
+       kdebug("override_creds(%p{%ld,%d})", new,
+              atomic_long_read(&new->usage),
               read_cred_subscribers(new));
 
        validate_creds(old);
@@ -585,8 +585,8 @@ const struct cred *override_creds(const struct cred *new)
        rcu_assign_pointer(current->cred, new);
        alter_cred_subscribers(old, -1);
 
-       kdebug("override_creds() = %p{%d,%d}", old,
-              atomic_read(&old->usage),
+       kdebug("override_creds() = %p{%ld,%d}", old,
+              atomic_long_read(&old->usage),
               read_cred_subscribers(old));
        return old;
 }
@@ -603,8 +603,8 @@ void revert_creds(const struct cred *old)
 {
        const struct cred *override = current->cred;
 
-       kdebug("revert_creds(%p{%d,%d})", old,
-              atomic_read(&old->usage),
+       kdebug("revert_creds(%p{%ld,%d})", old,
+              atomic_long_read(&old->usage),
               read_cred_subscribers(old));
 
        validate_creds(old);
@@ -735,7 +735,7 @@ struct cred *prepare_kernel_cred(struct task_struct *daemon)
 
        *new = *old;
        new->non_rcu = 0;
-       atomic_set(&new->usage, 1);
+       atomic_long_set(&new->usage, 1);
        set_cred_subscribers(new, 0);
        get_uid(new->user);
        get_user_ns(new->user_ns);
@@ -849,8 +849,8 @@ static void dump_invalid_creds(const struct cred *cred, const char *label,
               cred == tsk->cred ? "[eff]" : "");
        pr_err("->magic=%x, put_addr=%p\n",
               cred->magic, cred->put_addr);
-       pr_err("->usage=%d, subscr=%d\n",
-              atomic_read(&cred->usage),
+       pr_err("->usage=%ld, subscr=%d\n",
+              atomic_long_read(&cred->usage),
               read_cred_subscribers(cred));
        pr_err("->*uid = { %d,%d,%d,%d }\n",
                from_kuid_munged(&init_user_ns, cred->uid),
@@ -922,9 +922,9 @@ EXPORT_SYMBOL(__validate_process_creds);
  */
 void validate_creds_for_do_exit(struct task_struct *tsk)
 {
-       kdebug("validate_creds_for_do_exit(%p,%p{%d,%d})",
+       kdebug("validate_creds_for_do_exit(%p,%p{%ld,%d})",
               tsk->real_cred, tsk->cred,
-              atomic_read(&tsk->cred->usage),
+              atomic_long_read(&tsk->cred->usage),
               read_cred_subscribers(tsk->cred));
 
        __validate_process_creds(tsk, __FILE__, __LINE__);