Skip to content

Module fails to load: "__UNIQUE_ID" macro initialization error when using RCU #192

@dream2333

Description

@dream2333

When trying to use RCU protection to safely access current->cred->uid, the ide show err

Code Context

The module compiles successfully but fails to load into the kernel when using RCU protection to safely access current->cred->uid. The error appears to be related to __UNIQUE_ID marco initialization issues at runtime.

uid_t safe_current_uid()
{
    const struct cred *cred;
    uid_t uid;
    rcu_read_lock();
    cred = rcu_dereference(*(struct cred **)((uintptr_t)current + task_struct_offset.cred_offset));
    if (cred) {
        uid = *(uid_t *)((uintptr_t)cred + cred_offset.uid_offset);
    } else {
        uid = current_uid(); // fallback
    }
    rcu_read_unlock();
    
    return uid;
}

Kernel Logs

[Thu Jul 10 21:57:57 2025] KernelSU: prctl reply error, cmd: 30
[Thu Jul 10 21:57:57 2025] KernelSU: KPM: calling before arg2=34
[Thu Jul 10 21:57:57 2025] KernelSU: KPM: calling before arg2=31
[Thu Jul 10 21:57:57 2025] KernelSU: prctl reply error, cmd: 30
[Thu Jul 10 21:57:57 2025] KernelSU: KPM: calling before arg2=34
[Thu Jul 10 21:57:57 2025] KernelSU: KPM: calling before arg2=34
[Thu Jul 10 21:57:57 2025] KernelSU: prctl reply error, cmd: 30
[Thu Jul 10 21:57:57 2025] KernelSU: do_execveat_common su found
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions