diff options
author | Miguel Ojeda <ojeda@kernel.org> | 2022-07-27 21:41:56 +0200 |
---|---|---|
committer | Miguel Ojeda <ojeda@kernel.org> | 2022-09-28 08:55:08 +0200 |
commit | 6e8c5bbd5e83e649251c198e743c8b9e7c48372b (patch) | |
tree | 21ebec7cb52492cc4139be2f4dbc219d0521331b /scripts/kallsyms.c | |
parent | kallsyms: avoid hardcoding buffer size (diff) | |
download | linux-6e8c5bbd5e83e649251c198e743c8b9e7c48372b.tar.xz linux-6e8c5bbd5e83e649251c198e743c8b9e7c48372b.zip |
kallsyms: add static relationship between `KSYM_NAME_LEN{,_BUFFER}`
This adds a static assert to ensure `KSYM_NAME_LEN_BUFFER`
gets updated when `KSYM_NAME_LEN` changes.
The relationship used is one that keeps the new size (512+1)
close to the original buffer size (500).
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Co-developed-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Diffstat (limited to 'scripts/kallsyms.c')
-rw-r--r-- | scripts/kallsyms.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 25e2fe5fbcd4..411ff5058b51 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -32,8 +32,18 @@ #define KSYM_NAME_LEN 128 -/* A substantially bigger size than the current maximum. */ -#define KSYM_NAME_LEN_BUFFER 499 +/* + * A substantially bigger size than the current maximum. + * + * It cannot be defined as an expression because it gets stringified + * for the fscanf() format string. Therefore, a _Static_assert() is + * used instead to maintain the relationship with KSYM_NAME_LEN. + */ +#define KSYM_NAME_LEN_BUFFER 512 +_Static_assert( + KSYM_NAME_LEN_BUFFER == KSYM_NAME_LEN * 4, + "Please keep KSYM_NAME_LEN_BUFFER in sync with KSYM_NAME_LEN" +); struct sym_entry { unsigned long long addr; |