aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-08-18 15:19:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-08-18 15:19:56 -0400
commit771c035372a036f83353eef46dbb829780330234 (patch)
treead508b447984cee53096cdd078158c47d0cd206c
parenta18d783fedfe6f9b720afe901db9501ce116ed81 (diff)
deprecate the '__deprecated' attribute warnings entirely and for good
We haven't had lots of deprecation warnings lately, but the rdma use of it made them flare up again. They are not useful. They annoy everybody, and nobody ever does anything about them, because it's always "somebody elses problem". And when people start thinking that warnings are normal, they stop looking at them, and the real warnings that mean something go unnoticed. If you want to get rid of a function, just get rid of it. Convert every user to the new world order. And if you can't do that, then don't annoy everybody else with your marking that says "I couldn't be bothered to fix this, so I'll just spam everybody elses build logs with warnings about my laziness". Make a kernelnewbies wiki page about things that could be cleaned up, write a blog post about it, or talk to people on the mailing lists. But don't add warnings to the kernel build about cleanup that you think should happen but you aren't doing yourself. Don't. Just don't. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/compiler-gcc.h1
-rw-r--r--include/linux/compiler_types.h21
-rw-r--r--lib/Kconfig.debug8
3 files changed, 2 insertions, 28 deletions
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 573f5a7d42d4..3e70b7d4e9ed 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -103,7 +103,6 @@
103#define __always_inline inline __attribute__((always_inline)) 103#define __always_inline inline __attribute__((always_inline))
104#define noinline __attribute__((noinline)) 104#define noinline __attribute__((noinline))
105 105
106#define __deprecated __attribute__((deprecated))
107#define __packed __attribute__((packed)) 106#define __packed __attribute__((packed))
108#define __weak __attribute__((weak)) 107#define __weak __attribute__((weak))
109#define __alias(symbol) __attribute__((alias(#symbol))) 108#define __alias(symbol) __attribute__((alias(#symbol)))
diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index a8ba6b04152c..fbf337933fd8 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -111,21 +111,10 @@ struct ftrace_likely_data {
111#endif /* __ASSEMBLY__ */ 111#endif /* __ASSEMBLY__ */
112 112
113#ifdef __KERNEL__ 113#ifdef __KERNEL__
114/*
115 * Allow us to mark functions as 'deprecated' and have gcc emit a nice
116 * warning for each use, in hopes of speeding the functions removal.
117 * Usage is:
118 * int __deprecated foo(void)
119 */
120#ifndef __deprecated
121# define __deprecated /* unimplemented */
122#endif
123 114
124#ifdef MODULE 115/* Don't. Just don't. */
125#define __deprecated_for_modules __deprecated 116#define __deprecated
126#else
127#define __deprecated_for_modules 117#define __deprecated_for_modules
128#endif
129 118
130#ifndef __must_check 119#ifndef __must_check
131#define __must_check 120#define __must_check
@@ -135,12 +124,6 @@ struct ftrace_likely_data {
135#undef __must_check 124#undef __must_check
136#define __must_check 125#define __must_check
137#endif 126#endif
138#ifndef CONFIG_ENABLE_WARN_DEPRECATED
139#undef __deprecated
140#undef __deprecated_for_modules
141#define __deprecated
142#define __deprecated_for_modules
143#endif
144 127
145#ifndef __malloc 128#ifndef __malloc
146#define __malloc 129#define __malloc
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index c6e73904c5a5..ab1b599202bc 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -211,14 +211,6 @@ config GDB_SCRIPTS
211 instance. See Documentation/dev-tools/gdb-kernel-debugging.rst 211 instance. See Documentation/dev-tools/gdb-kernel-debugging.rst
212 for further details. 212 for further details.
213 213
214config ENABLE_WARN_DEPRECATED
215 bool "Enable __deprecated logic"
216 default y
217 help
218 Enable the __deprecated logic in the kernel build.
219 Disable this to suppress the "warning: 'foo' is deprecated
220 (declared at kernel/power/somefile.c:1234)" messages.
221
222config ENABLE_MUST_CHECK 214config ENABLE_MUST_CHECK
223 bool "Enable __must_check logic" 215 bool "Enable __must_check logic"
224 default y 216 default y