On 24/09/25 11:11AM, Dave Jiang wrote:
+struct cxl_root_decoder *cxl_find_root_decoder_by_port(struct cxl_port *port) +{ + struct cxl_root *cxl_root __free(put_cxl_root) = find_cxl_root(port); + struct device *dev; + + if (!cxl_root) + return NULL; + + dev = device_find_child(&cxl_root->port.dev, NULL, match_root_decoder); + if (!dev) + return NULL; + + /* Release device ref taken via device_find_child() */ + put_device(dev);Should the caller release the device reference instead? DJ
Actually caller of this function wants to find root decoder information from cxl_port. So in order to find root decoder we have used device_find_child() which internally takes device ref. Therefore, just after finding the appropriate dev, I am releasing device ref. Its like taking device ref temporarly and releasing it then and there after finding proper root decoder. I believe, Releasing device ref from caller would make it look little out of context. Regards, Neeraj

