> > +} > > + > > +static int sunplus_thermal_remove(struct platform_device *pdev) { > > + struct sp_thermal_data *sp_data = platform_get_drvdata(pdev); > > + > > + thermal_zone_of_sensor_unregister(&pdev->dev, sp_data->pcb_tz); > > You used devm to register, so this looks wrong and will lead to double free. > > You mean the remove function is not needed. ??