--- /dev/null
+From 33ab3e22415b2cee9f1899dc3d7c84d96db919ce Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 15 Jan 2016 16:59:12 -0800
+Subject: printk: help pr_debug and pr_devel to optimize out arguments
+
+From: Aaron Conole <aconole@redhat.com>
+
+[ Upstream commit fe22cd9b7c980b8b948ec85f034a8668c57ec867 ]
+
+Currently, pr_debug and pr_devel will not elide function call arguments
+appearing in calls to the no_printk for these macros. This is because
+all side effects must be honored before proceeding to the 0-value
+assignment in no_printk.
+
+The behavior is contrary to documentation found in the CodingStyle and
+the header file where these functions are declared.
+
+This patch corrects that behavior by shunting out the call to no_printk
+completely. The format string is still checked by gcc for correctness,
+but no code seems to be emitted in common cases.
+
+[akpm@linux-foundation.org: remove braces, per Joe]
+Fixes: 5264f2f75d86 ("include/linux/printk.h: use and neaten no_printk")
+Signed-off-by: Aaron Conole <aconole@redhat.com>
+Reported-by: Dmitry Vyukov <dvyukov@google.com>
+Cc: Joe Perches <joe@perches.com>
+Cc: Jason Baron <jbaron@akamai.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ include/linux/printk.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/include/linux/printk.h b/include/linux/printk.h
+index 9729565c25ff..9ccbdf2c1453 100644
+--- a/include/linux/printk.h
++++ b/include/linux/printk.h
+@@ -106,13 +106,13 @@ struct va_format {
+
+ /*
+ * Dummy printk for disabled debugging statements to use whilst maintaining
+- * gcc's format and side-effect checking.
++ * gcc's format checking.
+ */
+-static inline __printf(1, 2)
+-int no_printk(const char *fmt, ...)
+-{
+- return 0;
+-}
++#define no_printk(fmt, ...) \
++do { \
++ if (0) \
++ printk(fmt, ##__VA_ARGS__); \
++} while (0)
+
+ #ifdef CONFIG_EARLY_PRINTK
+ extern asmlinkage __printf(1, 2)
+--
+2.25.1
+