On Mon, 2016-11-21 at 13:29 +0100, Greg Kroah-Hartman wrote: > On Wed, Nov 16, 2016 at 08:06:32PM +0200, Andy Shevchenko wrote: > > Static analyzer can not see balanced locking if the lock is acquired > > and > > released conditionally. > > > > drivers/tty/serial/serial_core.c:131:17: warning: context imbalance > > in 'uart_stop' - unexpected unlock > > include/linux/spinlock.h:362:9: warning: context imbalance in > > 'uart_start' - unexpected unlock > > include/linux/spinlock.h:362:9: warning: context imbalance in > > 'uart_put_char' - unexpected unlock > > include/linux/spinlock.h:362:9: warning: context imbalance in > > 'uart_write' - unexpected unlock > > include/linux/spinlock.h:362:9: warning: context imbalance in > > 'uart_write_room' - unexpected unlock > > include/linux/spinlock.h:362:9: warning: context imbalance in > > 'uart_chars_in_buffer' - unexpected unlock > > include/linux/spinlock.h:362:9: warning: context imbalance in > > 'uart_flush_buffer' - unexpected unlock > > > > Get rid of macros and implement their functionality in place. This > > will also > > help to enable runtime PM in more clean way later. > > Really? Because now the code is harder to follow from a "what is this > doing" point of view as you have to duplicate logic in a number of > different places. We have number of places in kernel where we take reference count of something and then using spin lock. I don't see how this makes harder to follow. > What happened to making these just static inline functions instead? So, the function needs annotation for checker and flags parameter will go like a) taking address of it, b) dereference it. For me it will look not shiny. -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html