logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

PR_SET_SPECULATION_CTRL - set the state of a speculation misfeature for the calling thread

Description

Sets the state of the speculation misfeature specified in misfeature. The speculation-misfeature settings are per-thread attributes. Currently, misfeature must be one of: PR_SPEC_STORE_BYPASS Set the state of the speculative store bypass misfeature. PR_SPEC_INDIRECT_BRANCH (since Linux 4.20) Set the state of the indirect branch speculation misfeature. The val argument is used to hand in the control value, which is one of the following: PR_SPEC_ENABLE The speculation feature is enabled, mitigation is disabled. PR_SPEC_DISABLE The speculation feature is disabled, mitigation is enabled. PR_SPEC_FORCE_DISABLE Same as PR_SPEC_DISABLE, but cannot be undone. PR_SPEC_DISABLE_NOEXEC (since Linux 5.1) Same as PR_SPEC_DISABLE, but the state will be cleared on execve(2). Currently only supported for PR_SPEC_STORE_BYPASS. The speculation feature can also be controlled by the spec_store_bypass_disable boot parameter. This parameter may enforce a read-only policy which will result in the prctl() call failing with the error ENXIO. For further details, see the kernel source file Documentation/admin-guide/kernel-parameters.txt.

Errors

ENODEV The kernel or CPU does not support the requested speculation misfeature. ENXIO The control of the selected speculation misfeature is not possible. See PR_GET_SPECULATION_CTRL for the bit fields to determine which option is available. EPERM The speculation was disabled with PR_SPEC_FORCE_DISABLE and caller tried to enable it again. ERANGEmisfeature is not a valid value.

History

Linux 4.17.

Library

Standard C library (libc, -lc)

Name

PR_SET_SPECULATION_CTRL - set the state of a speculation misfeature for the calling thread

Return Value

On success, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.

See Also

prctl(2), PR_GET_SPECULATION_CTRL(2const) Linux man-pages 6.9.1 2024-06-01 PR_SET_SPECULATION_CTRL(2const)

Standards

Linux.

Synopsis

#include<linux/prctl.h> /* Definition of PR_* constants */ #include<sys/prctl.h>intprctl(PR_SET_SPECULATION_CTRL,longmisfeature,longval,0L,0L);

See Also