
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 <drivers/usb/musb-new/linux-compat.h> 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 <drivers/usb/musb-new/linux-compat.h>, or use the patch as I suggest, or anything else, what about your opinion?
Signed-off-by: Bo Shen voice.shen@atmel.com
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