Re: [PATCH] drm/i915/fbc: Avoid full proxy f_ops for FBC debug attributes

From: Julia Lawall
Date: Thu Jan 05 2023 - 03:13:44 EST


> Hi Julia, thanks for helping here.
>
> So, my question is why this
>
> make coccicheck M=drivers/gpu/drm/i915/ MODE=context COCCI=./scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci
>
> didn't catch this chunck:
>
> - debugfs_create_file("i915_fbc_false_color", 0644, parent,
> - fbc, &intel_fbc_debugfs_false_color_fops);
> + debugfs_create_file_unsafe("i915_fbc_false_color", 0644, parent,
> + fbc, &intel_fbc_debugfs_false_color_fops);
>
> When I run it it only catches and replaces this:
>
> - DEFINE_SIMPLE_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt);
> + DEFINE_DEBUGFS_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt);

There is something strange in your question. You have MODE=context but
you show the output for MODE=patch. The rule dcf matches a call to
debugfs_create_file, and the context rule matching DEFINE_SIMPLE_ATTRIBUTE
is only activated if dcf succeeds. So when the context rule gives a
report, there is always a corresponding call to debugfs_create_file in the
same file, it is just not highlighted. So the request is that it should
be highlighted as well?

julia

>
> But looking to the .cocci script or at least to its description,
> I believe it should catch both cases.
>
> But if it is not a bug in the cocci script, then I'd like to hear
> from Nicolai why. And have this documented in the script.
>
> Thanks,
> Rodrigo.
>
> >
> > julia
> >
> >
> > >
> > > Thank you,
> > > ./drv
> > >
> > > >
> > > > >
> > > > > >
> > > > > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
> > > > > > (to both patches, this and the drrs one.
> > > > > >
> > > > > > Also, it looks like you could contribute with other 2 patches:
> > > > > > drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c:64:0-23: WARNING: pxp_terminate_fops should be defined with DEFINE_DEBUGFS_ATTRIBUTE
> > > > > > drivers/gpu/drm/i915/gvt/debugfs.c:150:0-23: WARNING: vgpu_scan_nonprivbb_fops should be defined with DEFINE_DEBUGFS_ATTRIBUTE
> > > > >
> > > > > Yes, these are on my list. Was waiting for a feedback on the first submission
> > > > > before I send more similar patches.
> > > > >
> > > > > Appreciate your time and the feedback.
> > > > >
> > > > >
> > > > > Regards,
> > > > > ./drv
> > > > >
> > > > > >
> > > > > > >
> > > > > > > Signed-off-by: Deepak R Varma <drv@xxxxxxxxx>
> > > > > > > ---
> > > > > > > drivers/gpu/drm/i915/display/intel_fbc.c | 12 ++++++------
> > > > > > > 1 file changed, 6 insertions(+), 6 deletions(-)
> > > > > > >
> > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > > > > index b5ee5ea0d010..4b481e2f908b 100644
> > > > > > > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > > > > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > > > > > @@ -1809,10 +1809,10 @@ static int intel_fbc_debugfs_false_color_set(void *data, u64 val)
> > > > > > > return 0;
> > > > > > > }
> > > > > > >
> > > > > > > -DEFINE_SIMPLE_ATTRIBUTE(intel_fbc_debugfs_false_color_fops,
> > > > > > > - intel_fbc_debugfs_false_color_get,
> > > > > > > - intel_fbc_debugfs_false_color_set,
> > > > > > > - "%llu\n");
> > > > > > > +DEFINE_DEBUGFS_ATTRIBUTE(intel_fbc_debugfs_false_color_fops,
> > > > > > > + intel_fbc_debugfs_false_color_get,
> > > > > > > + intel_fbc_debugfs_false_color_set,
> > > > > > > + "%llu\n");
> > > > > > >
> > > > > > > static void intel_fbc_debugfs_add(struct intel_fbc *fbc,
> > > > > > > struct dentry *parent)
> > > > > > > @@ -1821,8 +1821,8 @@ static void intel_fbc_debugfs_add(struct intel_fbc *fbc,
> > > > > > > fbc, &intel_fbc_debugfs_status_fops);
> > > > > > >
> > > > > > > if (fbc->funcs->set_false_color)
> > > > > > > - debugfs_create_file("i915_fbc_false_color", 0644, parent,
> > > > > > > - fbc, &intel_fbc_debugfs_false_color_fops);
> > > > > > > + debugfs_create_file_unsafe("i915_fbc_false_color", 0644, parent,
> > > > > > > + fbc, &intel_fbc_debugfs_false_color_fops);
> > > > > > > }
> > > > > > >
> > > > > > > void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc)
> > > > > > > --
> > > > > > > 2.34.1
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
>