I have verified thatSorry,
if the ->probe() failed, then the ->remove will be get called.
I'm doing the test by add a line before the drm_dev_alloc()I do the test by adding one line code before the drm_dev_alloc() function
All in all, if the ->probe() failed, then the ->remove() will *NOT* get called.
See below:
```
return -ENODEV;
dev = drm_dev_alloc(&kms_driver, &pdev->dev);
if (IS_ERR(dev))
return PTR_ERR(dev);
ret = pci_enable_device(pdev);
if (ret)
goto err_free;
```
So, there is no problem, as far as I can see.