[v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG

2012-09-03 Thread Hiroshi Doyu
dev_dbg_reatelimited() without DEBUG printed "217078 callbacks
suppressed". This shouldn't print anything without DEBUG.

With CONFIG_DYNAMIC_DEBUG, the print should be configured as expected.

Signed-off-by: Hiroshi Doyu 
Reported-by: Hin-Tak Leung 
Tested-by: Antti Palosaari 
Tested-by: Hin-Tak Leung 
Acked-by: Hin-Tak Leung 
---
 include/linux/device.h |   62 +--
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/include/linux/device.h b/include/linux/device.h
index 9648331..bb6ffcb 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -932,6 +932,32 @@ int _dev_info(const struct device *dev, const char *fmt, 
...)
 
 #endif
 
+/*
+ * Stupid hackaround for existing uses of non-printk uses dev_info
+ *
+ * Note that the definition of dev_info below is actually _dev_info
+ * and a macro is used to avoid redefining dev_info
+ */
+
+#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
+
+#if defined(CONFIG_DYNAMIC_DEBUG)
+#define dev_dbg(dev, format, ...)   \
+do {\
+   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+} while (0)
+#elif defined(DEBUG)
+#define dev_dbg(dev, format, arg...)   \
+   dev_printk(KERN_DEBUG, dev, format, ##arg)
+#else
+#define dev_dbg(dev, format, arg...)   \
+({ \
+   if (0)  \
+   dev_printk(KERN_DEBUG, dev, format, ##arg); \
+   0;  \
+})
+#endif
+
 #define dev_level_ratelimited(dev_level, dev, fmt, ...)
\
 do {   \
static DEFINE_RATELIMIT_STATE(_rs,  \
@@ -955,33 +981,21 @@ do {  
\
dev_level_ratelimited(dev_notice, dev, fmt, ##__VA_ARGS__)
 #define dev_info_ratelimited(dev, fmt, ...)\
dev_level_ratelimited(dev_info, dev, fmt, ##__VA_ARGS__)
+#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
 #define dev_dbg_ratelimited(dev, fmt, ...) \
-   dev_level_ratelimited(dev_dbg, dev, fmt, ##__VA_ARGS__)
-
-/*
- * Stupid hackaround for existing uses of non-printk uses dev_info
- *
- * Note that the definition of dev_info below is actually _dev_info
- * and a macro is used to avoid redefining dev_info
- */
-
-#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-#define dev_dbg(dev, format, ...)   \
-do {\
-   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+do {   \
+   static DEFINE_RATELIMIT_STATE(_rs,  \
+ DEFAULT_RATELIMIT_INTERVAL,   \
+ DEFAULT_RATELIMIT_BURST); \
+   DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
+   if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) &&\
+   __ratelimit(&_rs))  \
+   __dynamic_pr_debug(, pr_fmt(fmt),\
+  ##__VA_ARGS__);  \
 } while (0)
-#elif defined(DEBUG)
-#define dev_dbg(dev, format, arg...)   \
-   dev_printk(KERN_DEBUG, dev, format, ##arg)
 #else
-#define dev_dbg(dev, format, arg...)   \
-({ \
-   if (0)  \
-   dev_printk(KERN_DEBUG, dev, format, ##arg); \
-   0;  \
-})
+#define dev_dbg_ratelimited(dev, fmt, ...) \
+   no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
 #endif
 
 #ifdef VERBOSE_DEBUG
-- 
1.7.5.4
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG

2012-09-03 Thread Hiroshi Doyu
dev_dbg_reatelimited() without DEBUG printed 217078 callbacks
suppressed. This shouldn't print anything without DEBUG.

With CONFIG_DYNAMIC_DEBUG, the print should be configured as expected.

Signed-off-by: Hiroshi Doyu hd...@nvidia.com
Reported-by: Hin-Tak Leung ht...@users.sourceforge.net
Tested-by: Antti Palosaari cr...@iki.fi
Tested-by: Hin-Tak Leung ht...@users.sourceforge.net
Acked-by: Hin-Tak Leung ht...@users.sourceforge.net
---
 include/linux/device.h |   62 +--
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/include/linux/device.h b/include/linux/device.h
index 9648331..bb6ffcb 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -932,6 +932,32 @@ int _dev_info(const struct device *dev, const char *fmt, 
...)
 
 #endif
 
+/*
+ * Stupid hackaround for existing uses of non-printk uses dev_info
+ *
+ * Note that the definition of dev_info below is actually _dev_info
+ * and a macro is used to avoid redefining dev_info
+ */
+
+#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
+
+#if defined(CONFIG_DYNAMIC_DEBUG)
+#define dev_dbg(dev, format, ...)   \
+do {\
+   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+} while (0)
+#elif defined(DEBUG)
+#define dev_dbg(dev, format, arg...)   \
+   dev_printk(KERN_DEBUG, dev, format, ##arg)
+#else
+#define dev_dbg(dev, format, arg...)   \
+({ \
+   if (0)  \
+   dev_printk(KERN_DEBUG, dev, format, ##arg); \
+   0;  \
+})
+#endif
+
 #define dev_level_ratelimited(dev_level, dev, fmt, ...)
\
 do {   \
static DEFINE_RATELIMIT_STATE(_rs,  \
@@ -955,33 +981,21 @@ do {  
\
dev_level_ratelimited(dev_notice, dev, fmt, ##__VA_ARGS__)
 #define dev_info_ratelimited(dev, fmt, ...)\
dev_level_ratelimited(dev_info, dev, fmt, ##__VA_ARGS__)
+#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
 #define dev_dbg_ratelimited(dev, fmt, ...) \
-   dev_level_ratelimited(dev_dbg, dev, fmt, ##__VA_ARGS__)
-
-/*
- * Stupid hackaround for existing uses of non-printk uses dev_info
- *
- * Note that the definition of dev_info below is actually _dev_info
- * and a macro is used to avoid redefining dev_info
- */
-
-#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-#define dev_dbg(dev, format, ...)   \
-do {\
-   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+do {   \
+   static DEFINE_RATELIMIT_STATE(_rs,  \
+ DEFAULT_RATELIMIT_INTERVAL,   \
+ DEFAULT_RATELIMIT_BURST); \
+   DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
+   if (unlikely(descriptor.flags  _DPRINTK_FLAGS_PRINT) \
+   __ratelimit(_rs))  \
+   __dynamic_pr_debug(descriptor, pr_fmt(fmt),\
+  ##__VA_ARGS__);  \
 } while (0)
-#elif defined(DEBUG)
-#define dev_dbg(dev, format, arg...)   \
-   dev_printk(KERN_DEBUG, dev, format, ##arg)
 #else
-#define dev_dbg(dev, format, arg...)   \
-({ \
-   if (0)  \
-   dev_printk(KERN_DEBUG, dev, format, ##arg); \
-   0;  \
-})
+#define dev_dbg_ratelimited(dev, fmt, ...) \
+   no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
 #endif
 
 #ifdef VERBOSE_DEBUG
-- 
1.7.5.4
--
To unsubscribe from this list: send the line unsubscribe linux-tegra in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG

2012-08-25 Thread Hin-Tak Leung
--- On Fri, 24/8/12, Hiroshi Doyu  wrote:

> From: Hiroshi Doyu 
> Subject: [v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG
> To: "gre...@linuxfoundation.org" 
> Cc: "linux-kernel@vger.kernel.org" , 
> "ht...@users.sourceforge.net" , 
> "linux-me...@vger.kernel.org" , 
> "j...@perches.com" , "linux-te...@vger.kernel.org" 
> , "cr...@iki.fi" 
> Date: Friday, 24 August, 2012, 5:35
> dev_dbg_reatelimited() without DEBUG
> printed "217078 callbacks
> suppressed". This shouldn't print anything without DEBUG.
> 
> With CONFIG_DYNAMIC_DEBUG, the print should be configured as
> expected.
> 
> Signed-off-by: Hiroshi Doyu 
> Reported-by: Hin-Tak Leung 
> Tested-by: Antti Palosaari 
> Acked-by: Hin-Tak Leung 

Tested-by: Hin-Tak Leung 

Went ahead and patched my 2.5.x distro kernel-devel package header, and it 
works as expected. Apologies about the red-herring with media_build (for those 
who are not familar with it, = "back-port" wrapper package for building new DVB 
modules against older kernels). 

The distro kernel-devel headers is per installed distro kernel so will be 
replaced in a week or two... no permanent demage done :-).   

> ---
>  include/linux/device.h |   62
> +--
>  1 files changed, 38 insertions(+), 24 deletions(-)
> 
> diff --git a/include/linux/device.h
> b/include/linux/device.h
> index 9648331..bb6ffcb 100644
> --- a/include/linux/device.h
> +++ b/include/linux/device.h
> @@ -932,6 +932,32 @@ int _dev_info(const struct device *dev,
> const char *fmt, ...)
>  
>  #endif
>  
> +/*
> + * Stupid hackaround for existing uses of non-printk uses
> dev_info
> + *
> + * Note that the definition of dev_info below is actually
> _dev_info
> + * and a macro is used to avoid redefining dev_info
> + */
> +
> +#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt,
> ##arg)
> +
> +#if defined(CONFIG_DYNAMIC_DEBUG)
> +#define dev_dbg(dev, format, ...)   
>          \
> +do {       
>            
>          \
> +    dynamic_dev_dbg(dev, format,
> ##__VA_ARGS__); \
> +} while (0)
> +#elif defined(DEBUG)
> +#define dev_dbg(dev, format, arg...)   
>     \
> +    dev_printk(KERN_DEBUG, dev, format,
> ##arg)
> +#else
> +#define dev_dbg(dev, format, arg...)   
>             \
> +({           
>            
>         \
> +    if (0)   
>            
>             \
> +       
> dev_printk(KERN_DEBUG, dev, format,
> ##arg);    \
> +    0;       
>            
>         \
> +})
> +#endif
> +
>  #define dev_level_ratelimited(dev_level, dev, fmt,
> ...)           
> \
>  do {       
>            
>            
>     \
>      static
> DEFINE_RATELIMIT_STATE(_rs,   
>             \
> @@ -955,33 +981,21 @@ do {   
>            
>            
>         \
>      dev_level_ratelimited(dev_notice, dev,
> fmt, ##__VA_ARGS__)
>  #define dev_info_ratelimited(dev, fmt,
> ...)           
>     \
>      dev_level_ratelimited(dev_info, dev,
> fmt, ##__VA_ARGS__)
> +#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
>  #define dev_dbg_ratelimited(dev, fmt,
> ...)           
>     \
> -    dev_level_ratelimited(dev_dbg, dev, fmt,
> ##__VA_ARGS__)
> -
> -/*
> - * Stupid hackaround for existing uses of non-printk uses
> dev_info
> - *
> - * Note that the definition of dev_info below is actually
> _dev_info
> - * and a macro is used to avoid redefining dev_info
> - */
> -
> -#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt,
> ##arg)
> -
> -#if defined(CONFIG_DYNAMIC_DEBUG)
> -#define dev_dbg(dev, format, ...)   
>          \
> -do {       
>            
>          \
> -    dynamic_dev_dbg(dev, format,
> ##__VA_ARGS__); \
> +do {       
>            
>            
>     \
> +    static
> DEFINE_RATELIMIT_STATE(_rs,   
>             \
> +           
>          
> DEFAULT_RATELIMIT_INTERVAL,    \
> +           
>          
> DEFAULT_RATELIMIT_BURST);   
>     \
> +   
> DEFINE_DYNAMIC_DEBUG_METADATA(descriptor,
> fmt);       
>     \
> +    if (unlikely(descriptor.flags &
> _DPRINTK_FLAGS_PRINT) &&    \
> +       
> __ratelimit(&_rs))       
>            
>     \
> +       
> __dynamic_pr_debug(,
> pr_fmt(fmt),        \
> +           
>    
>    ##__VA_ARGS__);   
>         \
>  } while (0)
> -#elif defined(DEBUG)
> -#define dev_dbg(dev, format, arg...)   
>     \
> -    dev_printk(KERN_DEBUG, dev, format,
> ##arg)
>  #else
> -#define dev_dbg(dev, format, arg...)   
>             

Re: [v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG

2012-08-25 Thread Hin-Tak Leung
--- On Fri, 24/8/12, Hiroshi Doyu hd...@nvidia.com wrote:

 From: Hiroshi Doyu hd...@nvidia.com
 Subject: [v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG
 To: gre...@linuxfoundation.org gre...@linuxfoundation.org
 Cc: linux-kernel@vger.kernel.org linux-kernel@vger.kernel.org, 
 ht...@users.sourceforge.net ht...@users.sourceforge.net, 
 linux-me...@vger.kernel.org linux-me...@vger.kernel.org, 
 j...@perches.com j...@perches.com, linux-te...@vger.kernel.org 
 linux-te...@vger.kernel.org, cr...@iki.fi cr...@iki.fi
 Date: Friday, 24 August, 2012, 5:35
 dev_dbg_reatelimited() without DEBUG
 printed 217078 callbacks
 suppressed. This shouldn't print anything without DEBUG.
 
 With CONFIG_DYNAMIC_DEBUG, the print should be configured as
 expected.
 
 Signed-off-by: Hiroshi Doyu hd...@nvidia.com
 Reported-by: Hin-Tak Leung ht...@users.sourceforge.net
 Tested-by: Antti Palosaari cr...@iki.fi
 Acked-by: Hin-Tak Leung ht...@users.sourceforge.net

Tested-by: Hin-Tak Leung ht...@users.sourceforge.net

Went ahead and patched my 2.5.x distro kernel-devel package header, and it 
works as expected. Apologies about the red-herring with media_build (for those 
who are not familar with it, = back-port wrapper package for building new DVB 
modules against older kernels). 

The distro kernel-devel headers is per installed distro kernel so will be 
replaced in a week or two... no permanent demage done :-).   

 ---
  include/linux/device.h |   62
 +--
  1 files changed, 38 insertions(+), 24 deletions(-)
 
 diff --git a/include/linux/device.h
 b/include/linux/device.h
 index 9648331..bb6ffcb 100644
 --- a/include/linux/device.h
 +++ b/include/linux/device.h
 @@ -932,6 +932,32 @@ int _dev_info(const struct device *dev,
 const char *fmt, ...)
  
  #endif
  
 +/*
 + * Stupid hackaround for existing uses of non-printk uses
 dev_info
 + *
 + * Note that the definition of dev_info below is actually
 _dev_info
 + * and a macro is used to avoid redefining dev_info
 + */
 +
 +#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt,
 ##arg)
 +
 +#if defined(CONFIG_DYNAMIC_DEBUG)
 +#define dev_dbg(dev, format, ...)   
          \
 +do {       
            
          \
 +    dynamic_dev_dbg(dev, format,
 ##__VA_ARGS__); \
 +} while (0)
 +#elif defined(DEBUG)
 +#define dev_dbg(dev, format, arg...)   
     \
 +    dev_printk(KERN_DEBUG, dev, format,
 ##arg)
 +#else
 +#define dev_dbg(dev, format, arg...)   
             \
 +({           
            
         \
 +    if (0)   
            
             \
 +       
 dev_printk(KERN_DEBUG, dev, format,
 ##arg);    \
 +    0;       
            
         \
 +})
 +#endif
 +
  #define dev_level_ratelimited(dev_level, dev, fmt,
 ...)           
 \
  do {       
            
            
     \
      static
 DEFINE_RATELIMIT_STATE(_rs,   
             \
 @@ -955,33 +981,21 @@ do {   
            
            
         \
      dev_level_ratelimited(dev_notice, dev,
 fmt, ##__VA_ARGS__)
  #define dev_info_ratelimited(dev, fmt,
 ...)           
     \
      dev_level_ratelimited(dev_info, dev,
 fmt, ##__VA_ARGS__)
 +#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
  #define dev_dbg_ratelimited(dev, fmt,
 ...)           
     \
 -    dev_level_ratelimited(dev_dbg, dev, fmt,
 ##__VA_ARGS__)
 -
 -/*
 - * Stupid hackaround for existing uses of non-printk uses
 dev_info
 - *
 - * Note that the definition of dev_info below is actually
 _dev_info
 - * and a macro is used to avoid redefining dev_info
 - */
 -
 -#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt,
 ##arg)
 -
 -#if defined(CONFIG_DYNAMIC_DEBUG)
 -#define dev_dbg(dev, format, ...)   
          \
 -do {       
            
          \
 -    dynamic_dev_dbg(dev, format,
 ##__VA_ARGS__); \
 +do {       
            
            
     \
 +    static
 DEFINE_RATELIMIT_STATE(_rs,   
             \
 +           
          
 DEFAULT_RATELIMIT_INTERVAL,    \
 +           
          
 DEFAULT_RATELIMIT_BURST);   
     \
 +   
 DEFINE_DYNAMIC_DEBUG_METADATA(descriptor,
 fmt);       
     \
 +    if (unlikely(descriptor.flags 
 _DPRINTK_FLAGS_PRINT)     \
 +       
 __ratelimit(_rs))       
            
     \
 +       
 __dynamic_pr_debug(descriptor,
 pr_fmt(fmt),        \
 +           
    
    ##__VA_ARGS__);   
         \
  } while (0)
 -#elif defined(DEBUG)
 -#define dev_dbg(dev, format, arg...)   
     \
 -    dev_printk(KERN_DEBUG, dev, format,
 ##arg)
  #else
 -#define dev_dbg(dev, format, arg...)   
             \
 -({           
            
         \
 -    if (0)   
            
             \
 -       
 dev_printk(KERN_DEBUG, dev, format,
 ##arg);    \
 -    0;       
            
         \
 -})
 +#define dev_dbg_ratelimited(dev, fmt,
 ...)           
 \
 +    no_printk(KERN_DEBUG pr_fmt(fmt),
 ##__VA_ARGS__)
  #endif
  
  #ifdef VERBOSE_DEBUG
 -- 
 1.7.5.4
 
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord

[v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG

2012-08-23 Thread Hiroshi Doyu
dev_dbg_reatelimited() without DEBUG printed "217078 callbacks
suppressed". This shouldn't print anything without DEBUG.

With CONFIG_DYNAMIC_DEBUG, the print should be configured as expected.

Signed-off-by: Hiroshi Doyu 
Reported-by: Hin-Tak Leung 
Tested-by: Antti Palosaari 
Acked-by: Hin-Tak Leung 
---
 include/linux/device.h |   62 +--
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/include/linux/device.h b/include/linux/device.h
index 9648331..bb6ffcb 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -932,6 +932,32 @@ int _dev_info(const struct device *dev, const char *fmt, 
...)
 
 #endif
 
+/*
+ * Stupid hackaround for existing uses of non-printk uses dev_info
+ *
+ * Note that the definition of dev_info below is actually _dev_info
+ * and a macro is used to avoid redefining dev_info
+ */
+
+#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
+
+#if defined(CONFIG_DYNAMIC_DEBUG)
+#define dev_dbg(dev, format, ...)   \
+do {\
+   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+} while (0)
+#elif defined(DEBUG)
+#define dev_dbg(dev, format, arg...)   \
+   dev_printk(KERN_DEBUG, dev, format, ##arg)
+#else
+#define dev_dbg(dev, format, arg...)   \
+({ \
+   if (0)  \
+   dev_printk(KERN_DEBUG, dev, format, ##arg); \
+   0;  \
+})
+#endif
+
 #define dev_level_ratelimited(dev_level, dev, fmt, ...)
\
 do {   \
static DEFINE_RATELIMIT_STATE(_rs,  \
@@ -955,33 +981,21 @@ do {  
\
dev_level_ratelimited(dev_notice, dev, fmt, ##__VA_ARGS__)
 #define dev_info_ratelimited(dev, fmt, ...)\
dev_level_ratelimited(dev_info, dev, fmt, ##__VA_ARGS__)
+#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
 #define dev_dbg_ratelimited(dev, fmt, ...) \
-   dev_level_ratelimited(dev_dbg, dev, fmt, ##__VA_ARGS__)
-
-/*
- * Stupid hackaround for existing uses of non-printk uses dev_info
- *
- * Note that the definition of dev_info below is actually _dev_info
- * and a macro is used to avoid redefining dev_info
- */
-
-#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-#define dev_dbg(dev, format, ...)   \
-do {\
-   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+do {   \
+   static DEFINE_RATELIMIT_STATE(_rs,  \
+ DEFAULT_RATELIMIT_INTERVAL,   \
+ DEFAULT_RATELIMIT_BURST); \
+   DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
+   if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) &&\
+   __ratelimit(&_rs))  \
+   __dynamic_pr_debug(, pr_fmt(fmt),\
+  ##__VA_ARGS__);  \
 } while (0)
-#elif defined(DEBUG)
-#define dev_dbg(dev, format, arg...)   \
-   dev_printk(KERN_DEBUG, dev, format, ##arg)
 #else
-#define dev_dbg(dev, format, arg...)   \
-({ \
-   if (0)  \
-   dev_printk(KERN_DEBUG, dev, format, ##arg); \
-   0;  \
-})
+#define dev_dbg_ratelimited(dev, fmt, ...) \
+   no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
 #endif
 
 #ifdef VERBOSE_DEBUG
-- 
1.7.5.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[v3 1/1] driver-core: Shut up dev_dbg_reatelimited() without DEBUG

2012-08-23 Thread Hiroshi Doyu
dev_dbg_reatelimited() without DEBUG printed 217078 callbacks
suppressed. This shouldn't print anything without DEBUG.

With CONFIG_DYNAMIC_DEBUG, the print should be configured as expected.

Signed-off-by: Hiroshi Doyu hd...@nvidia.com
Reported-by: Hin-Tak Leung ht...@users.sourceforge.net
Tested-by: Antti Palosaari cr...@iki.fi
Acked-by: Hin-Tak Leung ht...@users.sourceforge.net
---
 include/linux/device.h |   62 +--
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/include/linux/device.h b/include/linux/device.h
index 9648331..bb6ffcb 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -932,6 +932,32 @@ int _dev_info(const struct device *dev, const char *fmt, 
...)
 
 #endif
 
+/*
+ * Stupid hackaround for existing uses of non-printk uses dev_info
+ *
+ * Note that the definition of dev_info below is actually _dev_info
+ * and a macro is used to avoid redefining dev_info
+ */
+
+#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
+
+#if defined(CONFIG_DYNAMIC_DEBUG)
+#define dev_dbg(dev, format, ...)   \
+do {\
+   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+} while (0)
+#elif defined(DEBUG)
+#define dev_dbg(dev, format, arg...)   \
+   dev_printk(KERN_DEBUG, dev, format, ##arg)
+#else
+#define dev_dbg(dev, format, arg...)   \
+({ \
+   if (0)  \
+   dev_printk(KERN_DEBUG, dev, format, ##arg); \
+   0;  \
+})
+#endif
+
 #define dev_level_ratelimited(dev_level, dev, fmt, ...)
\
 do {   \
static DEFINE_RATELIMIT_STATE(_rs,  \
@@ -955,33 +981,21 @@ do {  
\
dev_level_ratelimited(dev_notice, dev, fmt, ##__VA_ARGS__)
 #define dev_info_ratelimited(dev, fmt, ...)\
dev_level_ratelimited(dev_info, dev, fmt, ##__VA_ARGS__)
+#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
 #define dev_dbg_ratelimited(dev, fmt, ...) \
-   dev_level_ratelimited(dev_dbg, dev, fmt, ##__VA_ARGS__)
-
-/*
- * Stupid hackaround for existing uses of non-printk uses dev_info
- *
- * Note that the definition of dev_info below is actually _dev_info
- * and a macro is used to avoid redefining dev_info
- */
-
-#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-#define dev_dbg(dev, format, ...)   \
-do {\
-   dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
+do {   \
+   static DEFINE_RATELIMIT_STATE(_rs,  \
+ DEFAULT_RATELIMIT_INTERVAL,   \
+ DEFAULT_RATELIMIT_BURST); \
+   DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
+   if (unlikely(descriptor.flags  _DPRINTK_FLAGS_PRINT) \
+   __ratelimit(_rs))  \
+   __dynamic_pr_debug(descriptor, pr_fmt(fmt),\
+  ##__VA_ARGS__);  \
 } while (0)
-#elif defined(DEBUG)
-#define dev_dbg(dev, format, arg...)   \
-   dev_printk(KERN_DEBUG, dev, format, ##arg)
 #else
-#define dev_dbg(dev, format, arg...)   \
-({ \
-   if (0)  \
-   dev_printk(KERN_DEBUG, dev, format, ##arg); \
-   0;  \
-})
+#define dev_dbg_ratelimited(dev, fmt, ...) \
+   no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
 #endif
 
 #ifdef VERBOSE_DEBUG
-- 
1.7.5.4
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/