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