From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33EB513B7BE for ; Sat, 1 Feb 2025 10:30:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738405856; cv=none; b=jk3ztY9sUxEG4w8I3WWYHK1V1xJNVaHUEBl9mV1JNVc9fAA9RgGYe2fsuNhfKGrBVJy1FFr9n3oWqHJzhzOBnFtTmx7YwCh0EBV2eDhiP32WiNSGqBAcnmd4tpSKBegJIoLTwkFEuN285OqKfWHxtoGecFT7WU0SL9hVZKVp/ME= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738405856; c=relaxed/simple; bh=3iXei+zMuga5mqMZDCe8XCjwCF2tjKl5U1Wbnl4CHtY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=upOmK7WGNKl26Fl/evaFlRl8t3y92PgWxoPvn0QZHlvCD+4gAIdVxm6gizXm4uPgVIKk7VjfcJ/pnQxBI1cxvH3I+Ecbnmax9CBMx3HwHOKw7aF0atsxiI7m7tBSXXXOYwrPjWH6ep/io15ef3eDIybNXqYbXfKoQ1XKLXShFt8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=rvJBSr4r; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="rvJBSr4r" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4361815b96cso19225665e9.1 for ; Sat, 01 Feb 2025 02:30:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1738405852; x=1739010652; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=xohF1aQ9sBB9g7xPx+Tdicp2pC5qB9GNqW8EawpT9YE=; b=rvJBSr4roHTlya3FZPgONLxXzLeriVndi/2aivBMGiotIVTHD7Y56GQYkm4K2VD5Zh WJkfWmIZAIrf3w6/2WNPuzgHcCJdU6Pjc5OqF5SJcjBdvXEXR6kjBcx7RSw73ucEOeiG fJ9aKQYjOtqpBX93ZUexDSB+tcFRpIbML163nF1p3LBr4rzoXpIXpfiU7YTOyzMoSzBs P3ActCOWYW+gnDl037ik6Hp4+qXOcJTJJxHZxIyF2HBRZwDeW69EgHjieT1fTpQJt+U5 cMceKLY/VozMpPHuJVCg1s4zbOOh0XoVl7TypEWMY0hYOdV2v3OmIq3BpP+xraIO6Ddb /SEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738405852; x=1739010652; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xohF1aQ9sBB9g7xPx+Tdicp2pC5qB9GNqW8EawpT9YE=; b=WTmUOLHxosl63mkFeCPHJg8lkMAn3Oy1td5COhp0oxrtmdyHZJRClfcIUuqx7WmViw UuwUzlq6Cb4S6pp3hI+PJ0orUuJmqpbnKMY2oNGubrUkCHv5orYd7YebNwP4YKZpLWLu nv4PrEZi7Y+XAeRVas4b4Pwl41snAfHt1H0+EzciQYR41EoKSrShQVd0QOOt05ItJXXZ grIPROi95X1tiyg/7Q7UHJ/q279pgROMsO5Cw0TUfd/CspJH9wtQm1YOn3uV2INaqAt7 azaVWTjgrsZ1BDWY7WFG94fYfodTkX7DMxLc193lu5a3tg5hDIWTQ5O1zgtgQ4VBysd9 8eCg== X-Forwarded-Encrypted: i=1; AJvYcCWpTLFBxU0jmpGCGJU58wQPwiuQHnaXfL8RaV5O6dC/mmeLVoVs1FJINnZKILOCZ0t18XaBBnPHQcMNs4g=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1Z52nBmU2SN/oqu0KjSYN/mjaXinp00t1E2Zu3Cq2rc6Eut6/ fJLxudC5H9UkIJ7e9NDmX1e/j6mBrHlsg5kMwkjcCa9KFslNtZtxgzKve7SV/UU= X-Gm-Gg: ASbGncsdth3WLyvM6+NNB09+/QJE4SZzrHjsoTRClOdNCN9sLCp6w5lBvWTa12I2FAL aOaTTuEHxnBGh+u2yYKcS41Nj3OrJULz7RwxQSEpJIR2JIv/T0MV1r6deYc8jVvUqrbT8w3nDrm o6V3aGKU7Ijef73KzNCrS0iWKCQ7sRQ3kgvLkLpeY8ut2dQmZPmNHhhNbtvY7anXlBfcj4kQD/c 1AcwXBe7Qpa1yc3UzwUB7imkQ5WJz/OR2z63IcSbsOEUM9yWzbSknwGqgM+o0naASUGjOFepwAk V3gmCbYaGFeMPCzseyNf X-Google-Smtp-Source: AGHT+IF0BG43GtXbK+RPYd0fGTqtRp85sB3ItAL9AxWDKVzVZUuEde1c6xbWxd/3dCeIjoZisES8Pw== X-Received: by 2002:a05:600c:3b98:b0:434:a4fe:cd71 with SMTP id 5b1f17b1804b1-438dc3be214mr127884145e9.12.1738405852406; Sat, 01 Feb 2025 02:30:52 -0800 (PST) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-38c5c1b5136sm7118399f8f.65.2025.02.01.02.30.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 02:30:51 -0800 (PST) Date: Sat, 1 Feb 2025 13:30:48 +0300 From: Dan Carpenter To: Laurentiu Palcu Cc: Niklas =?iso-8859-1?Q?S=F6derlund?= , Mauro Carvalho Chehab , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev Subject: Re: [RFC 04/12] staging: media: max96712: change DT parsing routine Message-ID: References: <20250131163408.2019144-1-laurentiu.palcu@oss.nxp.com> <20250131163408.2019144-5-laurentiu.palcu@oss.nxp.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250131163408.2019144-5-laurentiu.palcu@oss.nxp.com> On Fri, Jan 31, 2025 at 06:33:58PM +0200, Laurentiu Palcu wrote: > -static int max96712_parse_dt(struct max96712_priv *priv) > +static int max96712_parse_rx_ports(struct max96712_priv *priv, struct device_node *node, > + struct of_endpoint *ep) > +{ > + struct device *dev = &priv->client->dev; > + struct max96712_rx_port *source; > + struct fwnode_handle *remote_port_parent; > + > + if (priv->rx_ports[ep->port].fwnode) { > + dev_info(dev, "Multiple port endpoints are not supported: %d", ep->port); > + return 0; > + } > + > + source = &priv->rx_ports[ep->port]; > + source->fwnode = fwnode_graph_get_remote_endpoint(of_fwnode_handle(node)); > + if (!source->fwnode) { > + dev_info(dev, "Endpoint %pOF has no remote endpoint connection\n", ep->local_node); > + return 0; > + } > + > + remote_port_parent = fwnode_graph_get_remote_port_parent(of_fwnode_handle(node)); > + > + if (!fwnode_device_is_available(remote_port_parent)) { > + dev_dbg(dev, "Skipping port %d as remote port parent is disabled.\n", > + ep->port); > + source->fwnode = NULL; I don't understand the refcounting in this function. Should we call fwnode_handle_put(source->fwnode); before setting this to NULL? > + goto fwnode_put; > + } > + > + priv->rx_port_mask |= BIT(ep->port); > + priv->n_rx_ports++; > + > +fwnode_put: > + fwnode_handle_put(remote_port_parent); > + fwnode_handle_put(source->fwnode); > + return 0; I don't understand why we save source->fwnode but drop the refcount on the success path. My instinct says that it should be a source_fwnode local stack variable instead. (But again, I've only glanced at this code so I could be wrong). > +} > + regards, dan carpenter