On Tue, Aug 22, 2017 at 8:05 AM, sathya <sathyaosid@xxxxxxxxx> wrote: > On 08/18/2017 05:24 AM, Andy Shevchenko wrote: >> On Tue, Aug 1, 2017 at 9:13 PM, >> <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> wrote: >>> This patch cleans up unnecessary free/alloc calls in this driver >>> by using devm_* calls. >>> static int ipc_plat_remove(struct platform_device *pdev) >>> { >>> - struct resource *res; >>> - >>> sysfs_remove_group(&pdev->dev.kobj, &intel_ipc_group); >>> - free_irq(ipcdev.irq, &ipcdev); >> >> Can we get an IRQ at any time here? > > Yes, if the ipc_plat_probe() is successful then ipcdev.irq will have valid > IRQ in all cases. ...which effectively means you can't remove free_irq() here. OTOH you may replace it by explicit devm_free_irq() call. >>> platform_device_unregister(ipcdev.tco_dev); >>> platform_device_unregister(ipcdev.punit_dev); >>> platform_device_unregister(ipcdev.telemetry_dev); >>> ipcdev.dev = NULL; >>> return 0; >>> } -- With Best Regards, Andy Shevchenko