Re: [PATCH v6 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group

From: Jason Gunthorpe
Date: Wed Sep 07 2022 - 09:47:46 EST


On Wed, Sep 07, 2022 at 02:41:54PM +0200, Joerg Roedel wrote:
> On Mon, Aug 15, 2022 at 11:14:33AM -0700, Nicolin Chen wrote:
> > Provide a dedicated errno from the IOMMU driver during attach that the
> > reason attached failed is because of domain incompatability. EMEDIUMTYPE
> > is chosen because it is never used within the iommu subsystem today and
> > evokes a sense that the 'medium' aka the domain is incompatible.
>
> I am not a fan of re-using EMEDIUMTYPE or any other special value. What
> is needed here in EINVAL, but with a way to tell the caller which of the
> function parameters is actually invalid.

Using errnos to indicate the nature of failure is a well established
unix practice, it is why we have hundreds of error codes and don't
just return -EINVAL for everything.

What don't you like about it?

Would you be happier if we wrote it like

#define IOMMU_EINCOMPATIBLE_DEVICE xx

Which tells "which of the function parameters is actually invalid" ?

> For that I prefer adding an additional pointer parameter to the attach
> functions in which the reason for the failure can be communicated up the
> chain.

That sounds like OS/2 :\

Jason