diff options
author | Bruno Meneguele <bmeneg@redhat.com> | 2020-07-10 20:44:23 +0300 |
---|---|---|
committer | Petr Mladek <pmladek@suse.com> | 2020-07-13 16:07:45 +0300 |
commit | bc885f1ab6de0d38c6956a71b0126543b64875b0 (patch) | |
tree | e89b8331b7a6f73655173380e49113952eeec584 /Documentation/ABI | |
parent | 8eda94bde4ff004a942ed95e6348de711b0e6da9 (diff) | |
download | linux-bc885f1ab6de0d38c6956a71b0126543b64875b0.tar.xz |
doc:kmsg: explicitly state the return value in case of SEEK_CUR
The commit 625d3449788f ("Revert "kernel/printk: add kmsg SEEK_CUR
handling"") reverted a change done to the return value in case a SEEK_CUR
operation was performed for kmsg buffer based on the fact that different
userspace apps were handling the new return value (-ESPIPE) in different
ways, breaking them.
At the same time -ESPIPE was the wrong decision because kmsg /does support/
seek() but doesn't follow the "normal" behavior userspace is used to.
Because of that and also considering the time -EINVAL has been used, it was
decided to keep this way to avoid more userspace breakage.
This patch adds an official statement to the kmsg documentation pointing to
the current return value for SEEK_CUR, -EINVAL, thus userspace libraries
and apps can refer to it for a definitive guide on what to expect.
Signed-off-by: Bruno Meneguele <bmeneg@redhat.com>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20200710174423.10480-1-bmeneg@redhat.com
Diffstat (limited to 'Documentation/ABI')
-rw-r--r-- | Documentation/ABI/testing/dev-kmsg | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/dev-kmsg b/Documentation/ABI/testing/dev-kmsg index 1e6c28b1942b..a917efc289a2 100644 --- a/Documentation/ABI/testing/dev-kmsg +++ b/Documentation/ABI/testing/dev-kmsg @@ -61,6 +61,17 @@ Description: The /dev/kmsg character device node provides userspace access SEEK_CUR is not supported, returning -ESPIPE (invalid seek) to errno whenever requested. + Other seek operations or offsets are not supported because of + the special behavior this device has. The device allows to read + or write only whole variable length messages (records) that are + stored in a ring buffer. + + Because of the non-standard behavior also the error values are + non-standard. -ESPIPE is returned for non-zero offset. -EINVAL + is returned for other operations, e.g. SEEK_CUR. This behavior + and values are historical and could not be modified without the + risk of breaking userspace. + The output format consists of a prefix carrying the syslog prefix including priority and facility, the 64 bit message sequence number and the monotonic timestamp in microseconds, |