Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Feb 2018 21:25:19 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r329470 - head/sys/compat/linuxkpi/common/include/linux
Message-ID:  <201802172125.w1HLPJ8G069029@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Sat Feb 17 21:25:19 2018
New Revision: 329470
URL: https://svnweb.freebsd.org/changeset/base/329470

Log:
  Add support for printk_ratelimit() function macro and improve the existing
  printk_ratelimited() function macro to return a boolean stating if there
  was a printout, true, or not, false.
  
  MFC after:	1 week
  Submitted by:	Johannes Lundberg <johalun0@gmail.com>
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/compat/linuxkpi/common/include/linux/printk.h

Modified: head/sys/compat/linuxkpi/common/include/linux/printk.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/printk.h	Sat Feb 17 20:59:12 2018	(r329469)
+++ head/sys/compat/linuxkpi/common/include/linux/printk.h	Sat Feb 17 21:25:19 2018	(r329470)
@@ -106,10 +106,16 @@ print_hex_dump_bytes(const char *prefix_str, const int
 	print_hex_dump(NULL, prefix_str, prefix_type, 16, 1, buf, len, 0);
 }
 
-#define	printk_ratelimited(...) do {		\
+#define	printk_ratelimit() ({			\
 	static linux_ratelimit_t __ratelimited;	\
-	if (linux_ratelimited(&__ratelimited))	\
+	linux_ratelimited(&__ratelimited);	\
+})
+
+#define	printk_ratelimited(...) ({		\
+	bool __retval = printk_ratelimit();	\
+	if (__retval)				\
 		printk(__VA_ARGS__);		\
-} while (0)
+	__retval;				\
+})
 
 #endif					/* _LINUX_PRINTK_H_ */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802172125.w1HLPJ8G069029>