On Mon, Mar 24, 2025 at 10:27:08PM +0530, Cavitt, Jonathan wrote:
> From: Jadav, Raag <raag.ja...@intel.com> 
> > On Thu, Mar 20, 2025 at 03:26:15PM +0000, Jonathan Cavitt wrote:
> > > Add support for userspace to request a list of observed faults
> > > from a specified VM.
> > 
> > ...
> > 
> > > +static int xe_vm_get_property_size(struct xe_vm *vm, u32 property)
> > > +{
> > > + int size = -EINVAL;
> > 
> > Mixing size and error codes is usually received with mixed feelings.
> > 
> > > +
> > > + switch (property) {
> > > + case DRM_XE_VM_GET_PROPERTY_FAULTS:
> > > +         spin_lock(&vm->faults.lock);
> > > +         size = vm->faults.len * sizeof(struct xe_vm_fault);
> > 
> > size_mul() and,
> > [1] perhaps fill it up into the pointer passed by the caller here?
> 
> "The pointer passed by the caller".  You mean the args pointer?
> 
> We'd still need to check that the args->size value is empty here before 
> overwriting
> it, and we'd also still need to return the size to the ioctl so we can verify 
> it's
> acceptable later in xe_vm_get_property_verify_size.
> 
> Unless you want to merge those two processes together into here?

The semantics are a bit fuzzy to me. Why do we have a single ioctl for
two different processes? Shouldn't they be handled separately?

Raag

Reply via email to