From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bo Shen Date: Tue, 26 Aug 2014 09:11:13 +0800 Subject: [U-Boot] [RFC PATCH] USB: get rid of warning when compile with debug enabled In-Reply-To: <201408251243.18740.marex@denx.de> References: <1408958599-13518-1-git-send-email-voice.shen@atmel.com> <201408251243.18740.marex@denx.de> Message-ID: <53FBDEB1.4050408@atmel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Marek, On 08/25/2014 06:43 PM, Marek Vasut wrote: > On Monday, August 25, 2014 at 11:23:19 AM, Bo Shen wrote: >> When compile with debug information is enabled, if call >> spin_lock_irqsave, it will give following warning information. >> This patch is used to get rid of it. >> --->8--- >> warning: 'flags' is used uninitialized in this function [-Wuninitialized] >> ---8<--- > > The patch is wrong. The compiler complains that flags might be used uninited > because that is the case -- you call spin_lock_irqsave() with uninited flags > and because debug() is expanded to printf() I guess, the compiler spews. > > So which file does this warning come from ? I enable debug information (In common.h, define the DEBUG). It comes out from usb gadget driver, for example, atmel_usba_udc.c and also s3c_udc_otg.c and etc. I see the spin_lock_irqsave() function in defined as: --->8--- #define spin_lock_irqsave(lock, flags) do {} while (0) ---8<--- As in u-boot, there is no lock actually, so I think we can fix it as , or use the patch as I suggest, or anything else, what about your opinion? >> Signed-off-by: Bo Shen >> --- >> >> include/usb/lin_gadget_compat.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/include/usb/lin_gadget_compat.h >> b/include/usb/lin_gadget_compat.h index a25e9d9..fb525e7 100644 >> --- a/include/usb/lin_gadget_compat.h >> +++ b/include/usb/lin_gadget_compat.h >> @@ -15,7 +15,7 @@ >> /* common */ >> #define spin_lock_init(...) >> #define spin_lock(...) >> -#define spin_lock_irqsave(lock, flags) do { debug("%lu\n", flags); } while >> (0) +#define spin_lock_irqsave(lock, flags) do { flags = 1; debug("%lu\n", >> flags); } while (0) #define spin_unlock(...) >> #define spin_unlock_irqrestore(lock, flags) do {flags = 0; } while (0) >> #define disable_irq(...) > > Best regards, > Marek Vasut > Best Regards, Bo Shen