This patch series adds missing annotations to various functions,
that register warnings of context imbalance when built with Sparse tool.
The adds fix the warnings, improve on readability of the code
and give better insight or directive on what the functions are actually doing.
Jules Irenge (5):
ipc/msg: Add missing annotation for freeque()
video: Add missing annotation for cyber2000fb_enable_ddc() and
cyber2000fb_disable_ddc()
ocfs2: Add missing annotation for dlm_empty_lockres()
libata: Add missing annotation for ata_scsi_rbuf_get() and
ata_scsi_rbuf_fill()
ipmi: Add missing annotation for ipmi_ssif_lock_cond() and
ipmi_ssif_unlock_cond()
drivers/ata/libata-scsi.c | 2 ++
drivers/char/ipmi/ipmi_ssif.c | 2 ++
drivers/video/fbdev/cyber2000fb.c | 2 ++
fs/ocfs2/dlm/dlmmaster.c | 1 +
ipc/msg.c | 2 ++
5 files changed, 9 insertions(+)
--
2.24.1
Sparse reports warnings at cyber2000fb_enable_ddc()
and cyber2000fb_disable_ddc()
warning: context imbalance in cyber2000fb_enable_ddc()
- wrong count at exit
warning: context imbalance in cyber2000fb_disable_ddc()
- unexpected unlock
The root cause is the missing annotation at cyber2000fb_enable_ddc()
and cyber2000fb_disable_ddc()
Add the missing __acquires(&cfb->reg_b0_lock) annotation
Add the missing __releases(&cfb->reg_b0_lock) annotation
Signed-off-by: Jules Irenge <[email protected]>
---
drivers/video/fbdev/cyber2000fb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 460826a7ad55..513f58f28b0f 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -1160,12 +1160,14 @@ EXPORT_SYMBOL(cyber2000fb_detach);
#define DDC_SDA_IN (1 << 6)
static void cyber2000fb_enable_ddc(struct cfb_info *cfb)
+ __acquires(&cfb->reg_b0_lock)
{
spin_lock(&cfb->reg_b0_lock);
cyber2000fb_writew(0x1bf, 0x3ce, cfb);
}
static void cyber2000fb_disable_ddc(struct cfb_info *cfb)
+ __releases(&cfb->reg_b0_lock)
{
cyber2000fb_writew(0x0bf, 0x3ce, cfb);
spin_unlock(&cfb->reg_b0_lock);
--
2.24.1
Hi Jules.
On Fri, Apr 03, 2020 at 05:05:02PM +0100, Jules Irenge wrote:
> Sparse reports warnings at cyber2000fb_enable_ddc()
> and cyber2000fb_disable_ddc()
>
> warning: context imbalance in cyber2000fb_enable_ddc()
> - wrong count at exit
>
> warning: context imbalance in cyber2000fb_disable_ddc()
> - unexpected unlock
>
> The root cause is the missing annotation at cyber2000fb_enable_ddc()
> and cyber2000fb_disable_ddc()
>
> Add the missing __acquires(&cfb->reg_b0_lock) annotation
> Add the missing __releases(&cfb->reg_b0_lock) annotation
>
> Signed-off-by: Jules Irenge <[email protected]>
Thanks, added to drm-misc-next, so the patch will hit the kernel
when the merge windows opens the next time.
Was this the only locking relevant warning in fbdev?
I would expect a few more.
Sam
> ---
> drivers/video/fbdev/cyber2000fb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
> index 460826a7ad55..513f58f28b0f 100644
> --- a/drivers/video/fbdev/cyber2000fb.c
> +++ b/drivers/video/fbdev/cyber2000fb.c
> @@ -1160,12 +1160,14 @@ EXPORT_SYMBOL(cyber2000fb_detach);
> #define DDC_SDA_IN (1 << 6)
>
> static void cyber2000fb_enable_ddc(struct cfb_info *cfb)
> + __acquires(&cfb->reg_b0_lock)
> {
> spin_lock(&cfb->reg_b0_lock);
> cyber2000fb_writew(0x1bf, 0x3ce, cfb);
> }
>
> static void cyber2000fb_disable_ddc(struct cfb_info *cfb)
> + __releases(&cfb->reg_b0_lock)
> {
> cyber2000fb_writew(0x0bf, 0x3ce, cfb);
> spin_unlock(&cfb->reg_b0_lock);
> --
> 2.24.1
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel