[Intel-gfx] [PATCH 01/16] drm/i915: Provide a hook for selftests

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Dec 8 12:30:23 UTC 2016


On 08/12/2016 11:15, Chris Wilson wrote:
> On Thu, Dec 08, 2016 at 10:47:52AM +0000, Tvrtko Ursulin wrote:
>> On 07/12/2016 13:58, Chris Wilson wrote:
>>> -	return i915_driver_load(pdev, ent);
>>> +	err = i915_driver_load(pdev, ent);
>>> +	if (err)
>>> +		return err;
>>> +
>>> +	err = i915_late_selftests(pdev);
>>> +	if (err) {
>>> +		i915_driver_unload(pci_get_drvdata(pdev));
>>> +		return err > 0 ? -ENOTTY : err;
>>
>> Here ...
>>
>>> +	}
>>> +
>>> +	return 0;
>>> }
>>>
>>> static void i915_pci_remove(struct pci_dev *pdev)
>>> @@ -520,6 +532,11 @@ static struct pci_driver i915_pci_driver = {
>>> static int __init i915_init(void)
>>> {
>>> 	bool use_kms = true;
>>> +	int err;
>>> +
>>> +	err = i915_mock_selftests();
>>> +	if (err)
>>> +		return err > 0 ? 0 : err;
>>
>> ... and here, the return conversion is different but in the
>> implementation is the same. It is probably wrong or at least
>> confusing so it would be good to make it the same.
>
> The return convention is tricky because ->probe and module_init want
> different things. To cancel the probe, we have to return an error value
> (-ENOTTY). But for integration with kselftest we want the module load to
> report success (kselftest effectively uses
> 	modprobe i915 mock_selftests=-1 || exit "FAIL"
> ). Our igt_kselftest has access to the error code from the syscall and
> so can differentiate better than the kselftest.sh, but that shell script
> is the lowest common demoninator

Ah ok.

But you agree on the point of validating that subtest do not return 
positive error codes in order not to interfere with the behaviour set by 
module parameters?

Regards,

Tvrtko





More information about the Intel-gfx mailing list