case AUDIT_COMPARE_EGID_TO_OBJ_GID:
                return audit_compare_gid(cred->egid, name, f, ctx);
        case AUDIT_COMPARE_AUID_TO_OBJ_UID:
-               return audit_compare_uid(tsk->loginuid, name, f, ctx);
+               return audit_compare_uid(audit_get_loginuid(tsk), name, f, ctx);
        case AUDIT_COMPARE_SUID_TO_OBJ_UID:
                return audit_compare_uid(cred->suid, name, f, ctx);
        case AUDIT_COMPARE_SGID_TO_OBJ_GID:
                return audit_compare_gid(cred->fsgid, name, f, ctx);
        /* uid comparisons */
        case AUDIT_COMPARE_UID_TO_AUID:
-               return audit_uid_comparator(cred->uid, f->op, tsk->loginuid);
+               return audit_uid_comparator(cred->uid, f->op,
+                                           audit_get_loginuid(tsk));
        case AUDIT_COMPARE_UID_TO_EUID:
                return audit_uid_comparator(cred->uid, f->op, cred->euid);
        case AUDIT_COMPARE_UID_TO_SUID:
                return audit_uid_comparator(cred->uid, f->op, cred->fsuid);
        /* auid comparisons */
        case AUDIT_COMPARE_AUID_TO_EUID:
-               return audit_uid_comparator(tsk->loginuid, f->op, cred->euid);
+               return audit_uid_comparator(audit_get_loginuid(tsk), f->op,
+                                           cred->euid);
        case AUDIT_COMPARE_AUID_TO_SUID:
-               return audit_uid_comparator(tsk->loginuid, f->op, cred->suid);
+               return audit_uid_comparator(audit_get_loginuid(tsk), f->op,
+                                           cred->suid);
        case AUDIT_COMPARE_AUID_TO_FSUID:
-               return audit_uid_comparator(tsk->loginuid, f->op, cred->fsuid);
+               return audit_uid_comparator(audit_get_loginuid(tsk), f->op,
+                                           cred->fsuid);
        /* euid comparisons */
        case AUDIT_COMPARE_EUID_TO_SUID:
                return audit_uid_comparator(cred->euid, f->op, cred->suid);
                                result = match_tree_refs(ctx, rule->tree);
                        break;
                case AUDIT_LOGINUID:
-                       result = audit_uid_comparator(tsk->loginuid, f->op, f->uid);
+                       result = audit_uid_comparator(audit_get_loginuid(tsk),
+                                                     f->op, f->uid);
                        break;
                case AUDIT_LOGINUID_SET:
                        result = audit_comparator(audit_loginuid_set(tsk), f->op, f->val);
 {
        struct audit_aux_data_pids *axp;
        struct audit_context *ctx = audit_context();
-       kuid_t uid = current_uid(), t_uid = task_uid(t);
+       kuid_t uid = current_uid(), auid, t_uid = task_uid(t);
 
        if (auditd_test_task(t) &&
            (sig == SIGTERM || sig == SIGHUP ||
             sig == SIGUSR1 || sig == SIGUSR2)) {
                audit_sig_pid = task_tgid_nr(current);
-               if (uid_valid(current->loginuid))
-                       audit_sig_uid = current->loginuid;
+               auid = audit_get_loginuid(current);
+               if (uid_valid(auid))
+                       audit_sig_uid = auid;
                else
                        audit_sig_uid = uid;
                security_task_getsecid(current, &audit_sig_sid);