On 10/15/2018 04:39 PM, Sakari Ailus wrote: > Hi Bingbu, > > On Mon, Oct 15, 2018 at 03:15:05PM +0800, Bing Bu Cao wrote: >> On 10/10/2018 04:32 PM, Sakari Ailus wrote: >>> While there are issues related to object lifetime management, unregister >>> the media device first, followed immediately by other device nodes when >>> the driver is being unbound. Only then the resources needed by the driver >>> may be released. This is slightly safer. >>> >>> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> >>> --- >>> drivers/media/pci/intel/ipu3/ipu3-cio2.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.c b/drivers/media/pci/intel/ipu3/ipu3-cio2.c >>> index 452eb9b42140..723022ef3662 100644 >>> --- a/drivers/media/pci/intel/ipu3/ipu3-cio2.c >>> +++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.c >>> @@ -1846,12 +1846,12 @@ static void cio2_pci_remove(struct pci_dev *pci_dev) >>> struct cio2_device *cio2 = pci_get_drvdata(pci_dev); >>> unsigned int i; >>> >>> + media_device_unregister(&cio2->media_dev); >>> cio2_notifier_exit(cio2); >>> - cio2_fbpt_exit_dummy(cio2); >>> for (i = 0; i < CIO2_QUEUES; i++) >>> cio2_queue_exit(cio2, &cio2->queue[i]); >>> + cio2_fbpt_exit_dummy(cio2); >> Hi, Sakari, >> The fbpt dummy pages cleanup does not matter much before/after queues >> exit, right? > cio2_queue_exit() will unregister the video device and the video buffer > queue. Up to this point it's possible to open the video device and start > streaming on it. While this patch does not fully address the issue it makes > it a slightly lesser issue. Okay, thanks for your explanation. >>> v4l2_device_unregister(&cio2->v4l2_dev); >>> - media_device_unregister(&cio2->media_dev); >>> media_device_cleanup(&cio2->media_dev); >>> mutex_destroy(&cio2->lock); >>> }