Hi Sakari, On Thu, Nov 22, 2018 at 12:01:03AM +0200, Sakari Ailus wrote: > On Thu, Nov 15, 2018 at 09:51:06PM +0100, Maxime Ripard wrote: > > Hi Hans, > > > > Thanks for your review! I'll address the other comments you made. > > > > On Tue, Nov 13, 2018 at 01:24:47PM +0100, Hans Verkuil wrote: > > > > +static int csi_probe(struct platform_device *pdev) > > > > +{ > > > > + struct sun4i_csi *csi; > > > > + struct resource *res; > > > > + int ret; > > > > + int irq; > > > > + > > > > + csi = devm_kzalloc(&pdev->dev, sizeof(*csi), GFP_KERNEL); > > > > > > devm_kzalloc is not recommended: all devm_ memory is freed when the driver > > > is unbound, but a filehandle might still have a reference open. > > > > How would a !devm variant with a kfree in the remove help? We would > > still fall in the same case, right? > > Not quite. For video nodes this is handled: the release callback gets called > once there are no file handles open to the device. That may well be much > later than the device has been unbound from the driver. I might be missing something, but how the release callback will be able to get the reference to the structure we allocated here so that it can free it? Thanks! Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com