[PATCH v4 05/15] mei: pxp: add command streamer API to the PXP driver

Winkler, Tomas tomas.winkler at intel.com
Fri Sep 9 06:38:33 UTC 2022


> 
> 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. 
> 
> Don't check for things that can never happen.
> 
> > +
> > +	cldev = to_mei_cl_device(dev);
> > +
> > +	return mei_cldev_send_gsc_command(cldev, client_id, fence_id,
> sg_in,
> > +total_in_len, sg_out); }
> > +
> >  static const struct i915_pxp_component_ops mei_pxp_ops = {
> >  	.owner = THIS_MODULE,
> >  	.send = mei_pxp_send_message,
> >  	.recv = mei_pxp_receive_message,
> > +	.gsc_command = mei_pxp_gsc_command,
> >  };
> >
> >  static int mei_component_master_bind(struct device *dev) diff --git
> > a/include/drm/i915_pxp_tee_interface.h
> > b/include/drm/i915_pxp_tee_interface.h
> > index af593ec64469..a702b6ec17f7 100644
> > --- a/include/drm/i915_pxp_tee_interface.h
> > +++ b/include/drm/i915_pxp_tee_interface.h
> > @@ -8,6 +8,7 @@
> >
> >  #include <linux/mutex.h>
> >  #include <linux/device.h>
> > +struct scatterlist;
> >
> >  /**
> >   * struct i915_pxp_component_ops - ops for PXP services.
> > @@ -23,6 +24,10 @@ struct i915_pxp_component_ops {
> >
> >  	int (*send)(struct device *dev, const void *message, size_t size);
> >  	int (*recv)(struct device *dev, void *buffer, size_t size);
> > +	ssize_t (*gsc_command)(struct device *dev, u8 client_id, u32
> fence_id,
> > +			       struct scatterlist *sg_in, size_t total_in_len,
> > +			       struct scatterlist *sg_out);
> 
> No documentation for this new callback?
> 
> The build should give you are warning :(
Will fix.

Thanks
Tomas




More information about the dri-devel mailing list