* [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once
@ 2021-04-22 19:47 Tanner Love
2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw)
To: netdev; +Cc: davem, Tanner Love
From: Tanner Love <tannerlove@google.com>
First two patches implement DO_ONCE_LITE for non-fast-path "do once"
functionality. Third patch uses the feature in netdev_rx_csum_fault to
print dump only once.
Tanner Love (3):
once: implement DO_ONCE_LITE for non-fast-path "do once" functionality
once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
net: update netdev_rx_csum_fault() print dump only once
fs/xfs/xfs_message.h | 13 +++----------
include/asm-generic/bug.h | 37 +++++++------------------------------
include/linux/once.h | 16 ++++++++++++++++
include/linux/printk.h | 23 +++--------------------
kernel/trace/trace.h | 13 +++----------
net/core/dev.c | 10 +++++++---
6 files changed, 39 insertions(+), 73 deletions(-)
--
2.31.1.498.g6c1eba8ee3d-goog
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality
2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
@ 2021-04-22 19:47 ` Tanner Love
2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love
2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
2 siblings, 0 replies; 11+ messages in thread
From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw)
To: netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar
From: Tanner Love <tannerlove@google.com>
Certain uses of "do once" functionality (such as many occurrences of
static bool __section(".data.once")) reside outside of fast path, and
thus do not require jump label patching via static keys.
Implement DO_ONCE_LITE, which offers this "do once" functionality
without using static keys.
Implement DO_ONCE_LITE_IF, which offers the same functionality but
gated by a condition test. This is common in current uses of static
bool __section(".data.once").
Signed-off-by: Tanner Love <tannerlove@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Mahesh Bandewar <maheshb@google.com>
---
include/linux/once.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/include/linux/once.h b/include/linux/once.h
index 9225ee6d96c7..a92bb213f817 100644
--- a/include/linux/once.h
+++ b/include/linux/once.h
@@ -52,6 +52,22 @@ void __do_once_done(bool *done, struct static_key_true *once_key,
___ret; \
})
+/* Call a function once. Similar to DO_ONCE(), but does not use jump label
+ * patching via static keys.
+ */
+#define DO_ONCE_LITE(func, ...) \
+ DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__)
+#define DO_ONCE_LITE_IF(condition, func, ...) \
+ ({ \
+ static bool __section(".data.once") __already_done; \
+ bool __ret_do_once = !!(condition); \
+ \
+ if (unlikely(__ret_do_once && !__already_done)) { \
+ __already_done = true; \
+ func(__VA_ARGS__); \
+ } \
+ unlikely(__ret_do_once); \
+ })
#define get_random_once(buf, nbytes) \
DO_ONCE(get_random_bytes, (buf), (nbytes))
#define get_random_once_wait(buf, nbytes) \
--
2.31.1.498.g6c1eba8ee3d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love
@ 2021-04-22 19:47 ` Tanner Love
2021-04-22 21:23 ` kernel test robot
` (2 more replies)
2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
2 siblings, 3 replies; 11+ messages in thread
From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw)
To: netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar
From: Tanner Love <tannerlove@google.com>
DO_ONCE_LITE(_IF)? abstracts this "do once" functionality, presenting
an opportunity for code reuse.
This commit changes the behavior of xfs_printk_once, printk_once and
printk_deferred_once. Before, these macros resulted in code ultimately
evaluating to __print_once. Now, they ultimately evaluate to true.
This is acceptable because none of the clients of these macros relies
on the value.
Signed-off-by: Tanner Love <tannerlove@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Mahesh Bandewar <maheshb@google.com>
---
fs/xfs/xfs_message.h | 13 +++----------
include/asm-generic/bug.h | 37 +++++++------------------------------
include/linux/printk.h | 23 +++--------------------
kernel/trace/trace.h | 13 +++----------
4 files changed, 16 insertions(+), 70 deletions(-)
diff --git a/fs/xfs/xfs_message.h b/fs/xfs/xfs_message.h
index 3c392b1512ac..e587e8df6e73 100644
--- a/fs/xfs/xfs_message.h
+++ b/fs/xfs/xfs_message.h
@@ -2,6 +2,8 @@
#ifndef __XFS_MESSAGE_H
#define __XFS_MESSAGE_H 1
+#include <linux/once.h>
+
struct xfs_mount;
extern __printf(2, 3)
@@ -41,16 +43,7 @@ do { \
} while (0)
#define xfs_printk_once(func, dev, fmt, ...) \
-({ \
- static bool __section(".data.once") __print_once; \
- bool __ret_print_once = !__print_once; \
- \
- if (!__print_once) { \
- __print_once = true; \
- func(dev, fmt, ##__VA_ARGS__); \
- } \
- unlikely(__ret_print_once); \
-})
+ DO_ONCE_LITE(func, dev, fmt, ##__VA_ARGS__)
#define xfs_emerg_ratelimited(dev, fmt, ...) \
xfs_printk_ratelimited(xfs_emerg, dev, fmt, ##__VA_ARGS__)
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 76a10e0dca9f..c93adb63780e 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -4,6 +4,7 @@
#include <linux/compiler.h>
#include <linux/instrumentation.h>
+#include <linux/once.h>
#define CUT_HERE "------------[ cut here ]------------\n"
@@ -140,39 +141,15 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
})
#ifndef WARN_ON_ONCE
-#define WARN_ON_ONCE(condition) ({ \
- static bool __section(".data.once") __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once && !__warned)) { \
- __warned = true; \
- WARN_ON(1); \
- } \
- unlikely(__ret_warn_once); \
-})
+#define WARN_ON_ONCE(condition) \
+ DO_ONCE_LITE_IF(condition, WARN_ON, 1)
#endif
-#define WARN_ONCE(condition, format...) ({ \
- static bool __section(".data.once") __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once && !__warned)) { \
- __warned = true; \
- WARN(1, format); \
- } \
- unlikely(__ret_warn_once); \
-})
+#define WARN_ONCE(condition, format...) \
+ DO_ONCE_LITE_IF(condition, WARN, 1, format)
-#define WARN_TAINT_ONCE(condition, taint, format...) ({ \
- static bool __section(".data.once") __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once && !__warned)) { \
- __warned = true; \
- WARN_TAINT(1, taint, format); \
- } \
- unlikely(__ret_warn_once); \
-})
+#define WARN_TAINT_ONCE(condition, taint, format...) \
+ DO_ONCE_LITE_IF(condition, WARN_TAINT, 1, taint, format)
#else /* !CONFIG_BUG */
#ifndef HAVE_ARCH_BUG
diff --git a/include/linux/printk.h b/include/linux/printk.h
index fe7eb2351610..f706be99f0b6 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -8,6 +8,7 @@
#include <linux/linkage.h>
#include <linux/cache.h>
#include <linux/ratelimit_types.h>
+#include <linux/once.h>
extern const char linux_banner[];
extern const char linux_proc_banner[];
@@ -436,27 +437,9 @@ extern int kptr_restrict;
#ifdef CONFIG_PRINTK
#define printk_once(fmt, ...) \
-({ \
- static bool __section(".data.once") __print_once; \
- bool __ret_print_once = !__print_once; \
- \
- if (!__print_once) { \
- __print_once = true; \
- printk(fmt, ##__VA_ARGS__); \
- } \
- unlikely(__ret_print_once); \
-})
+ DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
#define printk_deferred_once(fmt, ...) \
-({ \
- static bool __section(".data.once") __print_once; \
- bool __ret_print_once = !__print_once; \
- \
- if (!__print_once) { \
- __print_once = true; \
- printk_deferred(fmt, ##__VA_ARGS__); \
- } \
- unlikely(__ret_print_once); \
-})
+ DO_ONCE_LITE(printk_deferred, fmt, ##__VA_ARGS__)
#else
#define printk_once(fmt, ...) \
no_printk(fmt, ##__VA_ARGS__)
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index a6446c03cfbc..8c868e5b4525 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -20,6 +20,7 @@
#include <linux/irq_work.h>
#include <linux/workqueue.h>
#include <linux/ctype.h>
+#include <linux/once.h>
#ifdef CONFIG_FTRACE_SYSCALLS
#include <asm/unistd.h> /* For NR_SYSCALLS */
@@ -98,16 +99,8 @@ enum trace_type {
#include "trace_entries.h"
/* Use this for memory failure errors */
-#define MEM_FAIL(condition, fmt, ...) ({ \
- static bool __section(".data.once") __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once && !__warned)) { \
- __warned = true; \
- pr_err("ERROR: " fmt, ##__VA_ARGS__); \
- } \
- unlikely(__ret_warn_once); \
-})
+#define MEM_FAIL(condition, fmt, ...) \
+ DO_ONCE_LITE_IF(condition, pr_err, "ERROR: " fmt, ##__VA_ARGS__)
/*
* syscalls are special, and need special handling, this is why
--
2.31.1.498.g6c1eba8ee3d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once
2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love
2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love
@ 2021-04-22 19:47 ` Tanner Love
2021-04-23 0:42 ` Yunsheng Lin
2 siblings, 1 reply; 11+ messages in thread
From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw)
To: netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar
From: Tanner Love <tannerlove@google.com>
Printing this stack dump multiple times does not provide additional
useful information, and consumes time in the data path. Printing once
is sufficient.
Signed-off-by: Tanner Love <tannerlove@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Mahesh Bandewar <maheshb@google.com>
---
net/core/dev.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index d9bf63dbe4fd..26b82b5d8563 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -148,6 +148,7 @@
#include <net/devlink.h>
#include <linux/pm_runtime.h>
#include <linux/prandom.h>
+#include <linux/once.h>
#include "net-sysfs.h"
@@ -3487,13 +3488,16 @@ EXPORT_SYMBOL(__skb_gso_segment);
/* Take action when hardware reception checksum errors are detected. */
#ifdef CONFIG_BUG
-void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
+static void do_netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
{
- if (net_ratelimit()) {
pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>");
skb_dump(KERN_ERR, skb, true);
dump_stack();
- }
+}
+
+void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
+{
+ DO_ONCE_LITE(do_netdev_rx_csum_fault, dev, skb);
}
EXPORT_SYMBOL(netdev_rx_csum_fault);
#endif
--
2.31.1.498.g6c1eba8ee3d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love
@ 2021-04-22 21:23 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2021-04-22 21:23 UTC (permalink / raw)
To: Tanner Love, netdev
Cc: kbuild-all, davem, Tanner Love, Eric Dumazet, Mahesh Bandewar
[-- Attachment #1: Type: text/plain, Size: 5229 bytes --]
Hi Tanner,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef
config: i386-tinyconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_slow_inc':
>> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration]
81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
| ^~~~
include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE'
278 | STATIC_KEY_CHECK_USE(key);
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_enable':
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration]
309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_slow_inc':
>> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration]
81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
| ^~~~
include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE'
278 | STATIC_KEY_CHECK_USE(key);
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_enable':
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration]
309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/WARN_ON_ONCE +309 include/linux/jump_label.h
b202952075f626 Gleb Natapov 2011-11-27 303
e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key)
e33886b38cc82a Peter Zijlstra 2015-07-24 305 {
5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key);
e33886b38cc82a Peter Zijlstra 2015-07-24 307
1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) {
1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return;
1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 }
1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1);
e33886b38cc82a Peter Zijlstra 2015-07-24 313 }
e33886b38cc82a Peter Zijlstra 2015-07-24 314
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 7357 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
@ 2021-04-22 21:23 ` kernel test robot
0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2021-04-22 21:23 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 5329 bytes --]
Hi Tanner,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef
config: i386-tinyconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_slow_inc':
>> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration]
81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
| ^~~~
include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE'
278 | STATIC_KEY_CHECK_USE(key);
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_enable':
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration]
309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_slow_inc':
>> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration]
81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
| ^~~~
include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE'
278 | STATIC_KEY_CHECK_USE(key);
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/once.h:6,
from include/asm-generic/bug.h:7,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/jump_label.h: In function 'static_key_enable':
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration]
309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/WARN_ON_ONCE +309 include/linux/jump_label.h
b202952075f626 Gleb Natapov 2011-11-27 303
e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key)
e33886b38cc82a Peter Zijlstra 2015-07-24 305 {
5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key);
e33886b38cc82a Peter Zijlstra 2015-07-24 307
1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) {
1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return;
1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 }
1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1);
e33886b38cc82a Peter Zijlstra 2015-07-24 313 }
e33886b38cc82a Peter Zijlstra 2015-07-24 314
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 7357 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love
@ 2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw)
To: Tanner Love, netdev
Cc: kbuild-all, clang-built-linux, davem, Tanner Love, Eric Dumazet,
Mahesh Bandewar
[-- Attachment #1: Type: text/plain, Size: 28438 bytes --]
Hi Tanner,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef
config: powerpc-randconfig-r011-20210421 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
>> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
>> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg");
^
arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg");
^
arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed");
^
arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire");
^
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
In file included from arch/powerpc/include/asm/cmpxchg.h:526:
In file included from include/asm-generic/cmpxchg-local.h:6:
In file included from include/linux/irqflags.h:16:
In file included from arch/powerpc/include/asm/irqflags.h:12:
In file included from arch/powerpc/include/asm/hw_irq.h:12:
In file included from arch/powerpc/include/asm/ptrace.h:264:
In file included from include/linux/thread_info.h:59:
In file included from arch/powerpc/include/asm/thread_info.h:13:
In file included from arch/powerpc/include/asm/page.h:249:
>> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration]
WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1));
^
arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON'
__WARN(); \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
--
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
>> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
>> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg");
^
arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg");
^
arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed");
^
arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire");
^
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
In file included from arch/powerpc/include/asm/cmpxchg.h:526:
In file included from include/asm-generic/cmpxchg-local.h:6:
In file included from include/linux/irqflags.h:16:
In file included from arch/powerpc/include/asm/irqflags.h:12:
In file included from arch/powerpc/include/asm/hw_irq.h:12:
In file included from arch/powerpc/include/asm/ptrace.h:264:
In file included from include/linux/thread_info.h:59:
In file included from arch/powerpc/include/asm/thread_info.h:13:
In file included from arch/powerpc/include/asm/page.h:249:
>> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration]
WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1));
^
arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON'
__WARN(); \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'modules_prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'modules_prepare' not remade because of errors.
..
vim +/BITS_PER_BYTE +80 arch/powerpc/include/asm/cmpxchg.h
d0563a1297e234 Pan Xinhui 2016-04-27 72
ae3a197e3d0bfe David Howells 2012-03-28 73 /*
ae3a197e3d0bfe David Howells 2012-03-28 74 * Atomic exchange
ae3a197e3d0bfe David Howells 2012-03-28 75 *
26760fc19a7e66 Boqun Feng 2015-12-15 76 * Changes the memory location '*p' to be val and returns
ae3a197e3d0bfe David Howells 2012-03-28 77 * the previous value stored there.
ae3a197e3d0bfe David Howells 2012-03-28 78 */
26760fc19a7e66 Boqun Feng 2015-12-15 79
d0563a1297e234 Pan Xinhui 2016-04-27 @80 XCHG_GEN(u8, _local, "memory");
d0563a1297e234 Pan Xinhui 2016-04-27 81 XCHG_GEN(u8, _relaxed, "cc");
d0563a1297e234 Pan Xinhui 2016-04-27 82 XCHG_GEN(u16, _local, "memory");
d0563a1297e234 Pan Xinhui 2016-04-27 83 XCHG_GEN(u16, _relaxed, "cc");
d0563a1297e234 Pan Xinhui 2016-04-27 84
ae3a197e3d0bfe David Howells 2012-03-28 85 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 86 __xchg_u32_local(volatile void *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 87 {
ae3a197e3d0bfe David Howells 2012-03-28 88 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 89
ae3a197e3d0bfe David Howells 2012-03-28 90 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 91 "1: lwarx %0,0,%2 \n"
ae3a197e3d0bfe David Howells 2012-03-28 92 " stwcx. %3,0,%2 \n\
ae3a197e3d0bfe David Howells 2012-03-28 93 bne- 1b"
ae3a197e3d0bfe David Howells 2012-03-28 94 : "=&r" (prev), "+m" (*(volatile unsigned int *)p)
ae3a197e3d0bfe David Howells 2012-03-28 95 : "r" (p), "r" (val)
ae3a197e3d0bfe David Howells 2012-03-28 96 : "cc", "memory");
ae3a197e3d0bfe David Howells 2012-03-28 97
ae3a197e3d0bfe David Howells 2012-03-28 98 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 99 }
ae3a197e3d0bfe David Howells 2012-03-28 100
ae3a197e3d0bfe David Howells 2012-03-28 101 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 102 __xchg_u32_relaxed(u32 *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 103 {
ae3a197e3d0bfe David Howells 2012-03-28 104 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 105
ae3a197e3d0bfe David Howells 2012-03-28 106 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 107 "1: lwarx %0,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 108 " stwcx. %3,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 109 " bne- 1b"
26760fc19a7e66 Boqun Feng 2015-12-15 110 : "=&r" (prev), "+m" (*p)
ae3a197e3d0bfe David Howells 2012-03-28 111 : "r" (p), "r" (val)
26760fc19a7e66 Boqun Feng 2015-12-15 112 : "cc");
ae3a197e3d0bfe David Howells 2012-03-28 113
ae3a197e3d0bfe David Howells 2012-03-28 114 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 115 }
ae3a197e3d0bfe David Howells 2012-03-28 116
ae3a197e3d0bfe David Howells 2012-03-28 117 #ifdef CONFIG_PPC64
ae3a197e3d0bfe David Howells 2012-03-28 118 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 119 __xchg_u64_local(volatile void *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 120 {
ae3a197e3d0bfe David Howells 2012-03-28 121 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 122
ae3a197e3d0bfe David Howells 2012-03-28 123 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 124 "1: ldarx %0,0,%2 \n"
ae3a197e3d0bfe David Howells 2012-03-28 125 " stdcx. %3,0,%2 \n\
ae3a197e3d0bfe David Howells 2012-03-28 126 bne- 1b"
ae3a197e3d0bfe David Howells 2012-03-28 127 : "=&r" (prev), "+m" (*(volatile unsigned long *)p)
ae3a197e3d0bfe David Howells 2012-03-28 128 : "r" (p), "r" (val)
ae3a197e3d0bfe David Howells 2012-03-28 129 : "cc", "memory");
ae3a197e3d0bfe David Howells 2012-03-28 130
ae3a197e3d0bfe David Howells 2012-03-28 131 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 132 }
ae3a197e3d0bfe David Howells 2012-03-28 133
ae3a197e3d0bfe David Howells 2012-03-28 134 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 135 __xchg_u64_relaxed(u64 *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 136 {
ae3a197e3d0bfe David Howells 2012-03-28 137 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 138
ae3a197e3d0bfe David Howells 2012-03-28 139 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 140 "1: ldarx %0,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 141 " stdcx. %3,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 142 " bne- 1b"
26760fc19a7e66 Boqun Feng 2015-12-15 143 : "=&r" (prev), "+m" (*p)
ae3a197e3d0bfe David Howells 2012-03-28 144 : "r" (p), "r" (val)
26760fc19a7e66 Boqun Feng 2015-12-15 145 : "cc");
ae3a197e3d0bfe David Howells 2012-03-28 146
ae3a197e3d0bfe David Howells 2012-03-28 147 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 148 }
ae3a197e3d0bfe David Howells 2012-03-28 149 #endif
ae3a197e3d0bfe David Howells 2012-03-28 150
ae3a197e3d0bfe David Howells 2012-03-28 151 static __always_inline unsigned long
d0563a1297e234 Pan Xinhui 2016-04-27 152 __xchg_local(void *ptr, unsigned long x, unsigned int size)
ae3a197e3d0bfe David Howells 2012-03-28 153 {
ae3a197e3d0bfe David Howells 2012-03-28 154 switch (size) {
d0563a1297e234 Pan Xinhui 2016-04-27 155 case 1:
d0563a1297e234 Pan Xinhui 2016-04-27 156 return __xchg_u8_local(ptr, x);
d0563a1297e234 Pan Xinhui 2016-04-27 157 case 2:
d0563a1297e234 Pan Xinhui 2016-04-27 158 return __xchg_u16_local(ptr, x);
ae3a197e3d0bfe David Howells 2012-03-28 159 case 4:
26760fc19a7e66 Boqun Feng 2015-12-15 160 return __xchg_u32_local(ptr, x);
ae3a197e3d0bfe David Howells 2012-03-28 161 #ifdef CONFIG_PPC64
ae3a197e3d0bfe David Howells 2012-03-28 162 case 8:
26760fc19a7e66 Boqun Feng 2015-12-15 163 return __xchg_u64_local(ptr, x);
ae3a197e3d0bfe David Howells 2012-03-28 164 #endif
ae3a197e3d0bfe David Howells 2012-03-28 165 }
10d8b1480e6966 pan xinhui 2016-02-23 @166 BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg");
ae3a197e3d0bfe David Howells 2012-03-28 167 return x;
ae3a197e3d0bfe David Howells 2012-03-28 168 }
ae3a197e3d0bfe David Howells 2012-03-28 169
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30148 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
@ 2021-04-22 22:28 ` kernel test robot
0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 28903 bytes --]
Hi Tanner,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef
config: powerpc-randconfig-r011-20210421 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
>> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
>> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg");
^
arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg");
^
arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed");
^
arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire");
^
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
In file included from arch/powerpc/include/asm/cmpxchg.h:526:
In file included from include/asm-generic/cmpxchg-local.h:6:
In file included from include/linux/irqflags.h:16:
In file included from arch/powerpc/include/asm/irqflags.h:12:
In file included from arch/powerpc/include/asm/hw_irq.h:12:
In file included from arch/powerpc/include/asm/ptrace.h:264:
In file included from include/linux/thread_info.h:59:
In file included from arch/powerpc/include/asm/thread_info.h:13:
In file included from arch/powerpc/include/asm/page.h:249:
>> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration]
WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1));
^
arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON'
__WARN(); \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
--
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
>> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u8, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _local, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE'
XCHG_GEN(u16, _relaxed, "cc");
^
arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
>> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg");
^
arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u8, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _local, , , "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE'
CMPXCHG_GEN(u16, _relaxed, , , "cc");
^
arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN'
bitoff = BITOFF_CAL(sizeof(type), off); \
^
arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL'
#define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE)
^
arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg");
^
arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local");
^
arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed");
^
arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration]
BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire");
^
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
In file included from include/linux/jump_label.h:249:
In file included from include/linux/atomic.h:7:
In file included from arch/powerpc/include/asm/atomic.h:11:
In file included from arch/powerpc/include/asm/cmpxchg.h:526:
In file included from include/asm-generic/cmpxchg-local.h:6:
In file included from include/linux/irqflags.h:16:
In file included from arch/powerpc/include/asm/irqflags.h:12:
In file included from arch/powerpc/include/asm/hw_irq.h:12:
In file included from arch/powerpc/include/asm/ptrace.h:264:
In file included from include/linux/thread_info.h:59:
In file included from arch/powerpc/include/asm/thread_info.h:13:
In file included from arch/powerpc/include/asm/page.h:249:
>> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration]
WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1));
^
arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON'
__WARN(); \
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'modules_prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'modules_prepare' not remade because of errors.
..
vim +/BITS_PER_BYTE +80 arch/powerpc/include/asm/cmpxchg.h
d0563a1297e234 Pan Xinhui 2016-04-27 72
ae3a197e3d0bfe David Howells 2012-03-28 73 /*
ae3a197e3d0bfe David Howells 2012-03-28 74 * Atomic exchange
ae3a197e3d0bfe David Howells 2012-03-28 75 *
26760fc19a7e66 Boqun Feng 2015-12-15 76 * Changes the memory location '*p' to be val and returns
ae3a197e3d0bfe David Howells 2012-03-28 77 * the previous value stored there.
ae3a197e3d0bfe David Howells 2012-03-28 78 */
26760fc19a7e66 Boqun Feng 2015-12-15 79
d0563a1297e234 Pan Xinhui 2016-04-27 @80 XCHG_GEN(u8, _local, "memory");
d0563a1297e234 Pan Xinhui 2016-04-27 81 XCHG_GEN(u8, _relaxed, "cc");
d0563a1297e234 Pan Xinhui 2016-04-27 82 XCHG_GEN(u16, _local, "memory");
d0563a1297e234 Pan Xinhui 2016-04-27 83 XCHG_GEN(u16, _relaxed, "cc");
d0563a1297e234 Pan Xinhui 2016-04-27 84
ae3a197e3d0bfe David Howells 2012-03-28 85 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 86 __xchg_u32_local(volatile void *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 87 {
ae3a197e3d0bfe David Howells 2012-03-28 88 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 89
ae3a197e3d0bfe David Howells 2012-03-28 90 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 91 "1: lwarx %0,0,%2 \n"
ae3a197e3d0bfe David Howells 2012-03-28 92 " stwcx. %3,0,%2 \n\
ae3a197e3d0bfe David Howells 2012-03-28 93 bne- 1b"
ae3a197e3d0bfe David Howells 2012-03-28 94 : "=&r" (prev), "+m" (*(volatile unsigned int *)p)
ae3a197e3d0bfe David Howells 2012-03-28 95 : "r" (p), "r" (val)
ae3a197e3d0bfe David Howells 2012-03-28 96 : "cc", "memory");
ae3a197e3d0bfe David Howells 2012-03-28 97
ae3a197e3d0bfe David Howells 2012-03-28 98 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 99 }
ae3a197e3d0bfe David Howells 2012-03-28 100
ae3a197e3d0bfe David Howells 2012-03-28 101 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 102 __xchg_u32_relaxed(u32 *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 103 {
ae3a197e3d0bfe David Howells 2012-03-28 104 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 105
ae3a197e3d0bfe David Howells 2012-03-28 106 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 107 "1: lwarx %0,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 108 " stwcx. %3,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 109 " bne- 1b"
26760fc19a7e66 Boqun Feng 2015-12-15 110 : "=&r" (prev), "+m" (*p)
ae3a197e3d0bfe David Howells 2012-03-28 111 : "r" (p), "r" (val)
26760fc19a7e66 Boqun Feng 2015-12-15 112 : "cc");
ae3a197e3d0bfe David Howells 2012-03-28 113
ae3a197e3d0bfe David Howells 2012-03-28 114 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 115 }
ae3a197e3d0bfe David Howells 2012-03-28 116
ae3a197e3d0bfe David Howells 2012-03-28 117 #ifdef CONFIG_PPC64
ae3a197e3d0bfe David Howells 2012-03-28 118 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 119 __xchg_u64_local(volatile void *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 120 {
ae3a197e3d0bfe David Howells 2012-03-28 121 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 122
ae3a197e3d0bfe David Howells 2012-03-28 123 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 124 "1: ldarx %0,0,%2 \n"
ae3a197e3d0bfe David Howells 2012-03-28 125 " stdcx. %3,0,%2 \n\
ae3a197e3d0bfe David Howells 2012-03-28 126 bne- 1b"
ae3a197e3d0bfe David Howells 2012-03-28 127 : "=&r" (prev), "+m" (*(volatile unsigned long *)p)
ae3a197e3d0bfe David Howells 2012-03-28 128 : "r" (p), "r" (val)
ae3a197e3d0bfe David Howells 2012-03-28 129 : "cc", "memory");
ae3a197e3d0bfe David Howells 2012-03-28 130
ae3a197e3d0bfe David Howells 2012-03-28 131 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 132 }
ae3a197e3d0bfe David Howells 2012-03-28 133
ae3a197e3d0bfe David Howells 2012-03-28 134 static __always_inline unsigned long
26760fc19a7e66 Boqun Feng 2015-12-15 135 __xchg_u64_relaxed(u64 *p, unsigned long val)
ae3a197e3d0bfe David Howells 2012-03-28 136 {
ae3a197e3d0bfe David Howells 2012-03-28 137 unsigned long prev;
ae3a197e3d0bfe David Howells 2012-03-28 138
ae3a197e3d0bfe David Howells 2012-03-28 139 __asm__ __volatile__(
ae3a197e3d0bfe David Howells 2012-03-28 140 "1: ldarx %0,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 141 " stdcx. %3,0,%2\n"
26760fc19a7e66 Boqun Feng 2015-12-15 142 " bne- 1b"
26760fc19a7e66 Boqun Feng 2015-12-15 143 : "=&r" (prev), "+m" (*p)
ae3a197e3d0bfe David Howells 2012-03-28 144 : "r" (p), "r" (val)
26760fc19a7e66 Boqun Feng 2015-12-15 145 : "cc");
ae3a197e3d0bfe David Howells 2012-03-28 146
ae3a197e3d0bfe David Howells 2012-03-28 147 return prev;
ae3a197e3d0bfe David Howells 2012-03-28 148 }
ae3a197e3d0bfe David Howells 2012-03-28 149 #endif
ae3a197e3d0bfe David Howells 2012-03-28 150
ae3a197e3d0bfe David Howells 2012-03-28 151 static __always_inline unsigned long
d0563a1297e234 Pan Xinhui 2016-04-27 152 __xchg_local(void *ptr, unsigned long x, unsigned int size)
ae3a197e3d0bfe David Howells 2012-03-28 153 {
ae3a197e3d0bfe David Howells 2012-03-28 154 switch (size) {
d0563a1297e234 Pan Xinhui 2016-04-27 155 case 1:
d0563a1297e234 Pan Xinhui 2016-04-27 156 return __xchg_u8_local(ptr, x);
d0563a1297e234 Pan Xinhui 2016-04-27 157 case 2:
d0563a1297e234 Pan Xinhui 2016-04-27 158 return __xchg_u16_local(ptr, x);
ae3a197e3d0bfe David Howells 2012-03-28 159 case 4:
26760fc19a7e66 Boqun Feng 2015-12-15 160 return __xchg_u32_local(ptr, x);
ae3a197e3d0bfe David Howells 2012-03-28 161 #ifdef CONFIG_PPC64
ae3a197e3d0bfe David Howells 2012-03-28 162 case 8:
26760fc19a7e66 Boqun Feng 2015-12-15 163 return __xchg_u64_local(ptr, x);
ae3a197e3d0bfe David Howells 2012-03-28 164 #endif
ae3a197e3d0bfe David Howells 2012-03-28 165 }
10d8b1480e6966 pan xinhui 2016-02-23 @166 BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg");
ae3a197e3d0bfe David Howells 2012-03-28 167 return x;
ae3a197e3d0bfe David Howells 2012-03-28 168 }
ae3a197e3d0bfe David Howells 2012-03-28 169
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30148 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love
@ 2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw)
To: Tanner Love, netdev
Cc: kbuild-all, clang-built-linux, davem, Tanner Love, Eric Dumazet,
Mahesh Bandewar
[-- Attachment #1: Type: text/plain, Size: 7387 bytes --]
Hi Tanner,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef
config: s390-randconfig-r014-20210421 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/s390/include/asm/bug.h:68:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
^
include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 0);
^
6 errors generated.
--
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/s390/include/asm/bug.h:68:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
^
include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 0);
^
6 errors generated.
make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/WARN_ON_ONCE +309 include/linux/jump_label.h
b202952075f626 Gleb Natapov 2011-11-27 303
e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key)
e33886b38cc82a Peter Zijlstra 2015-07-24 305 {
5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key);
e33886b38cc82a Peter Zijlstra 2015-07-24 307
1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) {
1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return;
1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 }
1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1);
e33886b38cc82a Peter Zijlstra 2015-07-24 313 }
e33886b38cc82a Peter Zijlstra 2015-07-24 314
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 12645 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)?
@ 2021-04-22 22:28 ` kernel test robot
0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7517 bytes --]
Hi Tanner,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef
config: s390-randconfig-r014-20210421 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958
git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/s390/include/asm/bug.h:68:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
^
include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 0);
^
6 errors generated.
--
In file included from kernel/bounds.c:10:
In file included from include/linux/page-flags.h:10:
In file included from include/linux/bug.h:5:
In file included from arch/s390/include/asm/bug.h:68:
In file included from include/asm-generic/bug.h:7:
In file included from include/linux/once.h:6:
include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
>> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
^
include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration]
STATIC_KEY_CHECK_USE(key);
^
include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE'
#define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \
^
include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration]
WARN_ON_ONCE(atomic_read(&key->enabled) != 0);
^
6 errors generated.
make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +/WARN_ON_ONCE +309 include/linux/jump_label.h
b202952075f626 Gleb Natapov 2011-11-27 303
e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key)
e33886b38cc82a Peter Zijlstra 2015-07-24 305 {
5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key);
e33886b38cc82a Peter Zijlstra 2015-07-24 307
1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) {
1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1);
1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return;
1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 }
1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1);
e33886b38cc82a Peter Zijlstra 2015-07-24 313 }
e33886b38cc82a Peter Zijlstra 2015-07-24 314
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 12645 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once
2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
@ 2021-04-23 0:42 ` Yunsheng Lin
0 siblings, 0 replies; 11+ messages in thread
From: Yunsheng Lin @ 2021-04-23 0:42 UTC (permalink / raw)
To: Tanner Love, netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar
On 2021/4/23 3:47, Tanner Love wrote:
> From: Tanner Love <tannerlove@google.com>
>
> Printing this stack dump multiple times does not provide additional
> useful information, and consumes time in the data path. Printing once
> is sufficient.
>
> Signed-off-by: Tanner Love <tannerlove@google.com>
> Acked-by: Eric Dumazet <edumazet@google.com>
> Acked-by: Mahesh Bandewar <maheshb@google.com>
> ---
> net/core/dev.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/net/core/dev.c b/net/core/dev.c
> index d9bf63dbe4fd..26b82b5d8563 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -148,6 +148,7 @@
> #include <net/devlink.h>
> #include <linux/pm_runtime.h>
> #include <linux/prandom.h>
> +#include <linux/once.h>
>
> #include "net-sysfs.h"
>
> @@ -3487,13 +3488,16 @@ EXPORT_SYMBOL(__skb_gso_segment);
>
> /* Take action when hardware reception checksum errors are detected. */
> #ifdef CONFIG_BUG
> -void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
> +static void do_netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
> {
> - if (net_ratelimit()) {
> pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>");
> skb_dump(KERN_ERR, skb, true);
> dump_stack();
Once the "if ()" is removed, one level of indent seems enough?
> - }
> +}
> +
> +void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
> +{
> + DO_ONCE_LITE(do_netdev_rx_csum_fault, dev, skb);
> }
> EXPORT_SYMBOL(netdev_rx_csum_fault);
> #endif
>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2021-04-23 0:42 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love
2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love
2021-04-22 21:23 ` kernel test robot
2021-04-22 21:23 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 22:28 ` kernel test robot
2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love
2021-04-23 0:42 ` Yunsheng Lin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.