> 
> On Fri, Sep 09, 2022 at 06:38:33AM +0000, Winkler, Tomas wrote:
> > >
> > > On Thu, Sep 08, 2022 at 05:16:02PM -0700, Daniele Ceraolo Spurio wrote:
> > > > +static ssize_t mei_pxp_gsc_command(struct device *dev, u8
> > > > +client_id,
> > > u32 fence_id,
> > > > +                                  struct scatterlist *sg_in, size_t 
> > > > total_in_len,
> > > > +                                  struct scatterlist *sg_out) {
> > > > +       struct mei_cl_device *cldev;
> > > > +
> > > > +       if (!dev || !sg_in || !sg_out)
> > > > +               return -EINVAL;
> > >
> > > How can these ever be NULL?  Doesn't the core control this, so why
> > > would that happen?
> > This is any interface function between modules, I think it is not
> > healthy to take assumptions here about how caller behaves, this is not an
> inner functions. This is important even for catching programmatical mistakes.
> 
> It is a static function being called from a framework.  Enforce this in the
> framework, don't sprinkle this stuff everywhere, the kernel is NOT defensive
> about internal users like this otherwise it will overwhelm every function 
> call.

I'm not sure, this is the case here.  The function is passed to  i915 (other 
driver) driver via struct i915_pxp_component_op.
This is outside of the component framework. 

Thanks
Tomas

Reply via email to