Re: [PATCH] mtd: partitions: fix of_node_get/put balance in parser

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Boris,

Boris Brezillon <boris.brezillon@xxxxxxxxxxx> wrote on Mon, 17 Sep 2018
15:51:40 +0200:

> On Mon, 17 Sep 2018 11:55:20 +0200
> Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:
> 
> > > Or you just say that mtd_get_of_node() does not retain a reference to
> > > the device_node object it returns and that should be enough ;-).    
> > 
> > Fine by me, you can apply it and modify in place.  
> 
> Here is the new commit message:
> 
> "
> mtd: partitions: fix unbalanced of_node_get/put()
> 
> While at first mtd_part_of_parse() would just call
> of_get_chil_by_name(), it has been patched to deal with sub-partitions
> and will now directly manipulate the node returned mtd_get_of_node() if

                                                    ^by

> the MTD device is a partition.
> 
> A of_node_put() was a bit below in the code, to balance the
> of_get_child_by_name(). However, despite its name, mtd_get_of_node()
> does not take a reference on the OF node. It is a simple helper
> hiding some pointer logic to retrieve the OF node related to an MTD
> device.
>     
> The direct effect of such unbalanced reference counting is visible
> by rmmod'ing any module that would have added MTD partitions:
> 
> 	OF: ERROR: Bad of_node_put() on <of_path_to_partition>
> 
> As it seems normal to get a reference on the OF node during the
> of_property_for_each_string() that follows, add a call to
> of_node_get() when relevant.
>     
> Fixes: 76a832254ab0 ("mtd: partitions: use DT info for parsing partitions with "compatible" prop")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxx>
> "
> 
> Let me know if you're okay with this update.

One missing work, otherwise I'm ok.

Thanks,
Miquèl



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux