Message ID | 20240521162254.3025-1-tumic@gpxsee.org |
---|---|
State | New |
Headers | show |
Series | media: mgb4: Fix double debugfs remove | expand |
On 27. 05. 24 9:36 dop., Hans Verkuil wrote: > Hi Martin, > > On 21/05/2024 18:22, tumic@gpxsee.org wrote: >> From: Martin Tůma <martin.tuma@digiteqautomotive.com> >> >> Fixes an error where debugfs_remove_recursive() is called first on a parent >> directory and then again on a child which causes a kernel panic. > > I accepted this patch for v6.10, but I would appreciate it if you can > make an additional patch for v6.11 that removes the #ifdef CONFIG_DEBUG_FS > lines where possible. > > Most debugfs functions have a dummy implementation when that define is not > set, so it would clean up the driver if these unnecessary #ifdefs are removed. > Ok, I will do it and send the patch in the next days. M. > Regards, > > Hans > >> >> Signed-off-by: Martin Tůma <martin.tuma@digiteqautomotive.com> >> --- >> drivers/media/pci/mgb4/mgb4_core.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/media/pci/mgb4/mgb4_core.c b/drivers/media/pci/mgb4/mgb4_core.c >> index 60498a5abebf..ab4f07e2e560 100644 >> --- a/drivers/media/pci/mgb4/mgb4_core.c >> +++ b/drivers/media/pci/mgb4/mgb4_core.c >> @@ -642,9 +642,6 @@ static void mgb4_remove(struct pci_dev *pdev) >> struct mgb4_dev *mgbdev = pci_get_drvdata(pdev); >> int i; >> >> -#ifdef CONFIG_DEBUG_FS >> - debugfs_remove_recursive(mgbdev->debugfs); >> -#endif >> #if IS_REACHABLE(CONFIG_HWMON) >> hwmon_device_unregister(mgbdev->hwmon_dev); >> #endif >> @@ -659,6 +656,10 @@ static void mgb4_remove(struct pci_dev *pdev) >> if (mgbdev->vin[i]) >> mgb4_vin_free(mgbdev->vin[i]); >> >> +#ifdef CONFIG_DEBUG_FS >> + debugfs_remove_recursive(mgbdev->debugfs); >> +#endif >> + >> device_remove_groups(&mgbdev->pdev->dev, mgb4_pci_groups); >> free_spi(mgbdev); >> free_i2c(mgbdev); >> >> base-commit: 8771b7f31b7fff91a998e6afdb60650d4bac59a5 > >
diff --git a/drivers/media/pci/mgb4/mgb4_core.c b/drivers/media/pci/mgb4/mgb4_core.c index 60498a5abebf..ab4f07e2e560 100644 --- a/drivers/media/pci/mgb4/mgb4_core.c +++ b/drivers/media/pci/mgb4/mgb4_core.c @@ -642,9 +642,6 @@ static void mgb4_remove(struct pci_dev *pdev) struct mgb4_dev *mgbdev = pci_get_drvdata(pdev); int i; -#ifdef CONFIG_DEBUG_FS - debugfs_remove_recursive(mgbdev->debugfs); -#endif #if IS_REACHABLE(CONFIG_HWMON) hwmon_device_unregister(mgbdev->hwmon_dev); #endif @@ -659,6 +656,10 @@ static void mgb4_remove(struct pci_dev *pdev) if (mgbdev->vin[i]) mgb4_vin_free(mgbdev->vin[i]); +#ifdef CONFIG_DEBUG_FS + debugfs_remove_recursive(mgbdev->debugfs); +#endif + device_remove_groups(&mgbdev->pdev->dev, mgb4_pci_groups); free_spi(mgbdev); free_i2c(mgbdev);