drivers/gpu/drm/vkms/vkms_crtc.c | 2 ++ 1 file changed, 2 insertions(+)
The functions `vkms_crtc_atomic_begin` and `vkms_crtc_atomic_flush` are
responsible for locking and unlocking a mutex, respectively. Add the
`__acquires` and `__releases` annotations to these functions to prevent
the associated sparse warning about context imbalance.
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
drivers/gpu/drm/vkms/vkms_crtc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index 40b4d084e3ceef9e1e24b7338efdd9253afee8d6..2ad164b518fb93f5b6b86948116ff7ed97770b60 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -232,6 +232,7 @@ static void vkms_crtc_atomic_disable(struct drm_crtc *crtc,
static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
struct drm_atomic_state *state)
+ __acquires(&vkms_output->lock)
{
struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
@@ -243,6 +244,7 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_atomic_state *state)
+ __releases(&vkms_output->lock)
{
struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
---
base-commit: d2194256049910d286cd6c308c2689df521d8842
change-id: 20240912-vkms-warnings-e0e331bc5e6d
Best regards,
--
Louis Chauvet <louis.chauvet@bootlin.com>
Hi Louis, On 9/12/24 12:25, Louis Chauvet wrote: > The functions `vkms_crtc_atomic_begin` and `vkms_crtc_atomic_flush` are > responsible for locking and unlocking a mutex, respectively. Add the > `__acquires` and `__releases` annotations to these functions to prevent > the associated sparse warning about context imbalance. > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> When I was applying this patch, I got the following warning: 137f51649b04 (HEAD -> drm-misc-next) drm/vkms: Suppress context imbalance sparse warning -:4: WARNING:EMAIL_SUBJECT: A patch subject line should describe the change not the tool that found it #4: Subject: [PATCH] drm/vkms: Suppress context imbalance sparse warning total: 0 errors, 1 warnings, 0 checks, 14 lines checked Therefore, before pushing the patch, I changed the commit title to "drm/vkms: Suppress context imbalance detected by sparse warning". Hope you don't mind. Applied to misc/kernel.git (drm-misc-next). Best Regards, - Maíra > --- > drivers/gpu/drm/vkms/vkms_crtc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c > index 40b4d084e3ceef9e1e24b7338efdd9253afee8d6..2ad164b518fb93f5b6b86948116ff7ed97770b60 100644 > --- a/drivers/gpu/drm/vkms/vkms_crtc.c > +++ b/drivers/gpu/drm/vkms/vkms_crtc.c > @@ -232,6 +232,7 @@ static void vkms_crtc_atomic_disable(struct drm_crtc *crtc, > > static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, > struct drm_atomic_state *state) > + __acquires(&vkms_output->lock) > { > struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); > > @@ -243,6 +244,7 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, > > static void vkms_crtc_atomic_flush(struct drm_crtc *crtc, > struct drm_atomic_state *state) > + __releases(&vkms_output->lock) > { > struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); > > > --- > base-commit: d2194256049910d286cd6c308c2689df521d8842 > change-id: 20240912-vkms-warnings-e0e331bc5e6d > > Best regards,
Hi Louis, > The functions `vkms_crtc_atomic_begin` and `vkms_crtc_atomic_flush` are > responsible for locking and unlocking a mutex, respectively. Add the > `__acquires` and `__releases` annotations to these functions to prevent > the associated sparse warning about context imbalance. > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com> Thanks for fixing this warning. Tested it and I can confirm that these warnings are fixed now: drivers/gpu/drm/vkms/vkms_crtc.c:233:13: warning: context imbalance in 'vkms_crtc_atomic_begin' - wrong count at exit drivers/gpu/drm/vkms/vkms_crtc.c:262:39: warning: context imbalance in 'vkms_crtc_atomic_flush' - unexpected unlock Feel free to add: Reviewed-by: José Expósito <jose.exposito89@gmail.com> > --- > drivers/gpu/drm/vkms/vkms_crtc.c | 2 ++ > 1 file changed, 2 insertions(+) > > > --- > base-commit: d2194256049910d286cd6c308c2689df521d8842 > change-id: 20240912-vkms-warnings-e0e331bc5e6d > > Best regards, > > diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c > index 40b4d084e3ceef9e1e24b7338efdd9253afee8d6..2ad164b518fb93f5b6b86948116ff7ed97770b60 100644 > --- a/drivers/gpu/drm/vkms/vkms_crtc.c > +++ b/drivers/gpu/drm/vkms/vkms_crtc.c > @@ -232,6 +232,7 @@ static void vkms_crtc_atomic_disable(struct drm_crtc *crtc, > > static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, > struct drm_atomic_state *state) > + __acquires(&vkms_output->lock) > { > struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); > > @@ -243,6 +244,7 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, > > static void vkms_crtc_atomic_flush(struct drm_crtc *crtc, > struct drm_atomic_state *state) > + __releases(&vkms_output->lock) > { > struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); > >
© 2016 - 2024 Red Hat, Inc.