kallsyms: add static relationship between `KSYM_NAME_LEN{,_BUFFER}`
authorMiguel Ojeda <ojeda@kernel.org>
Wed, 27 Jul 2022 19:41:56 +0000 (21:41 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Wed, 28 Sep 2022 06:55:08 +0000 (08:55 +0200)
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>
scripts/kallsyms.c

index 25e2fe5..411ff50 100644 (file)
 
 #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;