stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] dev-core: fix build break when DEBUG is enabled
@ 2013-08-15 16:04 Dmitry Kasatkin
  2013-08-15 16:37 ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Kasatkin @ 2013-08-15 16:04 UTC (permalink / raw)
  To: linux-kernel, gregkh, sarah.a.sharp; +Cc: dmitry.kasatkin, stable

When DEBUG is defined, dev_dbg_ratelimited uses dynamic debug data
structures even when CONFIG_DYNAMIC_DEBUG is not defined.
It leads to build break.
For example, when I try to use dev_dbg_ratelimited in USB code and
CONFIG_USB_DEBUG is enabled, but CONFIG_DYNAMIC_DEBUG is not, I get:

  CC [M]  drivers/usb/host/xhci-ring.o
  drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_intr_tx’:
  drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘DEFINE_DYNAMIC_DEBUG_METADATA’ [-Werror=implicit-function-declaration]
  drivers/usb/host/xhci-ring.c:3059:3: error: ‘descriptor’ undeclared (first use in this function)
  drivers/usb/host/xhci-ring.c:3059:3: note: each undeclared identifier is reported only once for each function it appears in
  drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘__dynamic_pr_debug’ [-Werror=implicit-function-declaration]
  drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_isoc_tx_prepare’:
  drivers/usb/host/xhci-ring.c:3847:3: error: ‘descriptor’ undeclared (first use in this function)
  cc1: some warnings being treated as errors
  make[2]: *** [drivers/usb/host/xhci-ring.o] Error 1
  make[1]: *** [drivers/usb/host] Error 2
  make: *** [drivers/usb/] Error 2

This patch separates definition for CONFIG_DYNAMIC_DEBUG and DEBUG cases.

Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
Cc: stable@vger.kernel.org
---
 include/linux/device.h | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/include/linux/device.h b/include/linux/device.h
index 22b546a..d336beb 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -1099,17 +1099,28 @@ 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)
+#if defined(CONFIG_DYNAMIC_DEBUG)
 #define dev_dbg_ratelimited(dev, fmt, ...)				\
 do {									\
 	static DEFINE_RATELIMIT_STATE(_rs,				\
 				      DEFAULT_RATELIMIT_INTERVAL,	\
 				      DEFAULT_RATELIMIT_BURST);		\
 	DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);			\
+	/* descriptor check is first to prevent flooding with		\
+	   "callbacks suppressed" */					\
 	if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) &&	\
 	    __ratelimit(&_rs))						\
-		__dynamic_pr_debug(&descriptor, pr_fmt(fmt),		\
-				   ##__VA_ARGS__);			\
+		__dynamic_dev_dbg(&descriptor, dev, fmt,		\
+				  ##__VA_ARGS__);			\
+} while (0)
+#elif defined(DEBUG)
+#define dev_dbg_ratelimited(dev, fmt, ...)				\
+do {									\
+	static DEFINE_RATELIMIT_STATE(_rs,				\
+				      DEFAULT_RATELIMIT_INTERVAL,	\
+				      DEFAULT_RATELIMIT_BURST);		\
+	if (__ratelimit(&_rs))						\
+		dev_printk(KERN_DEBUG, dev, fmt, ##__VA_ARGS__);	\
 } while (0)
 #else
 #define dev_dbg_ratelimited(dev, fmt, ...)			\
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] dev-core: fix build break when DEBUG is enabled
  2013-08-15 16:04 [PATCH 1/2] dev-core: fix build break when DEBUG is enabled Dmitry Kasatkin
@ 2013-08-15 16:37 ` Greg KH
  2013-08-15 16:53   ` Dmitry Kasatkin
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2013-08-15 16:37 UTC (permalink / raw)
  To: Dmitry Kasatkin; +Cc: linux-kernel, sarah.a.sharp, dmitry.kasatkin, stable

On Thu, Aug 15, 2013 at 07:04:54PM +0300, Dmitry Kasatkin wrote:
> When DEBUG is defined, dev_dbg_ratelimited uses dynamic debug data
> structures even when CONFIG_DYNAMIC_DEBUG is not defined.
> It leads to build break.
> For example, when I try to use dev_dbg_ratelimited in USB code and
> CONFIG_USB_DEBUG is enabled, but CONFIG_DYNAMIC_DEBUG is not, I get:
> 
>   CC [M]  drivers/usb/host/xhci-ring.o
>   drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_intr_tx’:
>   drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘DEFINE_DYNAMIC_DEBUG_METADATA’ [-Werror=implicit-function-declaration]
>   drivers/usb/host/xhci-ring.c:3059:3: error: ‘descriptor’ undeclared (first use in this function)
>   drivers/usb/host/xhci-ring.c:3059:3: note: each undeclared identifier is reported only once for each function it appears in
>   drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘__dynamic_pr_debug’ [-Werror=implicit-function-declaration]
>   drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_isoc_tx_prepare’:
>   drivers/usb/host/xhci-ring.c:3847:3: error: ‘descriptor’ undeclared (first use in this function)
>   cc1: some warnings being treated as errors
>   make[2]: *** [drivers/usb/host/xhci-ring.o] Error 1
>   make[1]: *** [drivers/usb/host] Error 2
>   make: *** [drivers/usb/] Error 2
> 
> This patch separates definition for CONFIG_DYNAMIC_DEBUG and DEBUG cases.
> 
> Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
> Cc: stable@vger.kernel.org

How is this a stable issue?  I don't see how the rules listed in
Documentation/stable_kernel_rules.txt apply here, what am I missing?

Not to say your patch isn't correct, just that it's not stable material,
right?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] dev-core: fix build break when DEBUG is enabled
  2013-08-15 16:37 ` Greg KH
@ 2013-08-15 16:53   ` Dmitry Kasatkin
  2013-08-15 17:11     ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Kasatkin @ 2013-08-15 16:53 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel, sarah.a.sharp, dmitry.kasatkin, stable

On 15/08/13 19:37, Greg KH wrote:
> On Thu, Aug 15, 2013 at 07:04:54PM +0300, Dmitry Kasatkin wrote:
>> When DEBUG is defined, dev_dbg_ratelimited uses dynamic debug data
>> structures even when CONFIG_DYNAMIC_DEBUG is not defined.
>> It leads to build break.
>> For example, when I try to use dev_dbg_ratelimited in USB code and
>> CONFIG_USB_DEBUG is enabled, but CONFIG_DYNAMIC_DEBUG is not, I get:
>>
>>   CC [M]  drivers/usb/host/xhci-ring.o
>>   drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_intr_tx’:
>>   drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘DEFINE_DYNAMIC_DEBUG_METADATA’ [-Werror=implicit-function-declaration]
>>   drivers/usb/host/xhci-ring.c:3059:3: error: ‘descriptor’ undeclared (first use in this function)
>>   drivers/usb/host/xhci-ring.c:3059:3: note: each undeclared identifier is reported only once for each function it appears in
>>   drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘__dynamic_pr_debug’ [-Werror=implicit-function-declaration]
>>   drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_isoc_tx_prepare’:
>>   drivers/usb/host/xhci-ring.c:3847:3: error: ‘descriptor’ undeclared (first use in this function)
>>   cc1: some warnings being treated as errors
>>   make[2]: *** [drivers/usb/host/xhci-ring.o] Error 1
>>   make[1]: *** [drivers/usb/host] Error 2
>>   make: *** [drivers/usb/] Error 2
>>
>> This patch separates definition for CONFIG_DYNAMIC_DEBUG and DEBUG cases.
>>
>> Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
>> Cc: stable@vger.kernel.org
> How is this a stable issue?  I don't see how the rules listed in
> Documentation/stable_kernel_rules.txt apply here, what am I missing?
>
> Not to say your patch isn't correct, just that it's not stable material,
> right?
>
> thanks,
>
> greg k-h
>

There are few drivers which uses dev_dbg_ratelimited().
In the case someone tries to build kernel with those drivers with DEBUG
enabled and without CONFIG_DYNAMIC_DEBUG,
will get the build break. It will happen also on stable kernel.

- Dmitry


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] dev-core: fix build break when DEBUG is enabled
  2013-08-15 16:53   ` Dmitry Kasatkin
@ 2013-08-15 17:11     ` Greg KH
  0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2013-08-15 17:11 UTC (permalink / raw)
  To: Dmitry Kasatkin; +Cc: linux-kernel, sarah.a.sharp, dmitry.kasatkin, stable

On Thu, Aug 15, 2013 at 07:53:13PM +0300, Dmitry Kasatkin wrote:
> On 15/08/13 19:37, Greg KH wrote:
> > On Thu, Aug 15, 2013 at 07:04:54PM +0300, Dmitry Kasatkin wrote:
> >> When DEBUG is defined, dev_dbg_ratelimited uses dynamic debug data
> >> structures even when CONFIG_DYNAMIC_DEBUG is not defined.
> >> It leads to build break.
> >> For example, when I try to use dev_dbg_ratelimited in USB code and
> >> CONFIG_USB_DEBUG is enabled, but CONFIG_DYNAMIC_DEBUG is not, I get:
> >>
> >>   CC [M]  drivers/usb/host/xhci-ring.o
> >>   drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_intr_tx’:
> >>   drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘DEFINE_DYNAMIC_DEBUG_METADATA’ [-Werror=implicit-function-declaration]
> >>   drivers/usb/host/xhci-ring.c:3059:3: error: ‘descriptor’ undeclared (first use in this function)
> >>   drivers/usb/host/xhci-ring.c:3059:3: note: each undeclared identifier is reported only once for each function it appears in
> >>   drivers/usb/host/xhci-ring.c:3059:3: error: implicit declaration of function ‘__dynamic_pr_debug’ [-Werror=implicit-function-declaration]
> >>   drivers/usb/host/xhci-ring.c: In function ‘xhci_queue_isoc_tx_prepare’:
> >>   drivers/usb/host/xhci-ring.c:3847:3: error: ‘descriptor’ undeclared (first use in this function)
> >>   cc1: some warnings being treated as errors
> >>   make[2]: *** [drivers/usb/host/xhci-ring.o] Error 1
> >>   make[1]: *** [drivers/usb/host] Error 2
> >>   make: *** [drivers/usb/] Error 2
> >>
> >> This patch separates definition for CONFIG_DYNAMIC_DEBUG and DEBUG cases.
> >>
> >> Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
> >> Cc: stable@vger.kernel.org
> > How is this a stable issue?  I don't see how the rules listed in
> > Documentation/stable_kernel_rules.txt apply here, what am I missing?
> >
> > Not to say your patch isn't correct, just that it's not stable material,
> > right?
> >
> > thanks,
> >
> > greg k-h
> >
> 
> There are few drivers which uses dev_dbg_ratelimited().
> In the case someone tries to build kernel with those drivers with DEBUG
> enabled and without CONFIG_DYNAMIC_DEBUG,
> will get the build break. It will happen also on stable kernel.

Do you have specific examples of this happening?  Given that this code
has been this way for a very long time now, and Randy's excellent
'random .config bot' normally catches this type of thing, I think the
applicability to a stable release is pretty low.

Please read that Documentation file again about "actual" issues, not
just theoretical ones.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-08-15 17:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-15 16:04 [PATCH 1/2] dev-core: fix build break when DEBUG is enabled Dmitry Kasatkin
2013-08-15 16:37 ` Greg KH
2013-08-15 16:53   ` Dmitry Kasatkin
2013-08-15 17:11     ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).