[igt-dev] [PATCH i-g-t 1/5] igt/kms_getfb: Check the iface exists before use
Antonio Argenziano
antonio.argenziano at intel.com
Mon Oct 1 19:53:46 UTC 2018
On 01/10/18 12:43, Chris Wilson wrote:
> Quoting Antonio Argenziano (2018-10-01 19:36:24)
>>
>>
>> On 28/09/18 03:19, Chris Wilson wrote:
>>> If the driver doesn't support the getfb iface (e.g. because KMS has been
>>> disabled), the ioctls will fail with ENOTSUP. This is expected, so skip
>>> the test as nothing useful can be learnt.
>>>
>>> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
>>> ---
>>> tests/kms_getfb.c | 40 ++++++++++++++++++++++++++++++++++++++--
>>> 1 file changed, 38 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c
>>> index 81d796a42..71d65488f 100644
>>> --- a/tests/kms_getfb.c
>>> +++ b/tests/kms_getfb.c
>>> @@ -40,6 +40,40 @@
>>> #include "drm.h"
>>> #include "drm_fourcc.h"
>>>
>>> +static bool has_getfb_iface(int fd)
>>> +{
>>> + struct drm_mode_fb_cmd arg = { };
>>> + int err;
>>> +
>>> + err = 0;
>>> + if (drmIoctl(fd, DRM_IOCTL_MODE_GETFB, &arg))
>>> + err = -errno;
>>> + switch (err) {
>>> + case -ENOTTY: /* ioctl unrecognised (kernel too old) */
>>> + case -ENOTSUP: /* driver doesn't support KMS */
>>> + return false;
>>> + default:
>>> + return true;
>>> + }
>>> +}
>>> +
>>> +static bool has_addfb2_iface(int fd)
>>> +{
>>> + struct drm_mode_fb_cmd2 arg = { };
>>> + int err;
>>> +
>>> + err = 0;
>>> + if (drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &arg) == 0)
>>> + err = -errno;
>>
>> Shouldn't this^ be != 0?
>
> Yup.
>
>>> + switch (err) {
>>> + case -ENOTTY: /* ioctl unrecognised (kernel too old) */
>>> + case -ENOTSUP: /* driver doesn't support KMS */
>>> + return false;
>>> + default:
>>> + return true;
>>
>> Shouldn't we fail on every errno?
>
> No. We want to be very careful in only fail at this point for errno we
> know imply the interface is not supported so that we do not confuse an
> illegal addfb2 request and fail later in the actual test.
Fair enough.
Acked-by: Antonio Argenziano <antonio.argenziano at intel.com>
for the series.
> -Chris
>
More information about the igt-dev
mailing list