Received: by 2002:ac0:a591:0:0:0:0:0 with SMTP id m17-v6csp1009200imm; Sat, 7 Jul 2018 14:10:22 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdpUCCtBO6BTSXzazwmNh4Kxg8WYjk2MfApuE0Vk/gvxJEKLGsPhu9lalEDH7dLsqpMacWV X-Received: by 2002:a63:4203:: with SMTP id p3-v6mr13732396pga.184.1530997822167; Sat, 07 Jul 2018 14:10:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530997822; cv=none; d=google.com; s=arc-20160816; b=v/C6faeGgX6uAgVv+q15pVGqriZy//zay2W8sYcBFF8VMv+JuXWf/cLu936ccT8qVY qrvDL9spajknvIkgjpCyPxFd1qWe7nf+6Y/jkil2aNTz6tANoAQ/I16nA132r8uslgMV eVatCsoTKehxqVeV3Wu7x++ihqzYY0HOjX1dkvFlyWck8YTxCgzyZE1NTEFjMobMYexa yfZ0e8qhVRB0Kt5Iq3SH5t3gRmRh5y1f6zCRExIYCkay4VaUuXgmWVaFJIOedRfgHTmL blExthWeNCLfNJ3TWwDVFwS9cWp94x2GN+KpqftAxwDfLq6SZBz7lNloxgjjYt4MGX5I ibeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=QMx9lRtf6A3RQ/HxUEXasZkEUJZb6R90xLt7CbJ1FdU=; b=NcGoxBTh/Inwld3+CRPcULNOIu1Sx++iqAV1W1SKNR7PDgzW8Yad6ReZvOt5NYZgvb lKb1jKNzfTS62AzIZH/bZZvR+pxWDQ9Poiggtnf/mf++OWtI5xPe+0Udz50BmNaNpYEq AXTNxPEZ16fwIdZ8kJXZWYIJ6uo3eV6Tvdb9Vd8o3KTqz/ROmECy7BUJlXN78NMU75M7 29ERar17EWPUqV5c07tQD0rNM0L9sfyBxwE8TCbDahU7JAxWokQPUfJUYgvGjlRaSIv6 55DhBXq7OGD1m6j7Y7P+Ts1gMIGEHrwgTQ6Qx0S40COjsgOYfqflZMP5BBjsNv10DvYM OrQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YQw9MscY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r7-v6si10898634pgl.1.2018.07.07.14.10.07; Sat, 07 Jul 2018 14:10:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YQw9MscY; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932657AbeGGVJ0 (ORCPT + 99 others); Sat, 7 Jul 2018 17:09:26 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:35522 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754329AbeGGVJZ (ORCPT ); Sat, 7 Jul 2018 17:09:25 -0400 Received: by mail-pf0-f195.google.com with SMTP id q7-v6so9876497pff.2; Sat, 07 Jul 2018 14:09:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=QMx9lRtf6A3RQ/HxUEXasZkEUJZb6R90xLt7CbJ1FdU=; b=YQw9MscYsyJvuCkDY/p6HDAYOrkkYwiaMN8R5X+79+fq4YWsHesmtFBLOiPMJe08/+ A04Eol8UCSRzMn5luFCoKuQ8vqni3kycdhdswCC51C+Q/OlN+cdox2N0tHhq3BwldQy0 bPMsmVaSp4MqYNo11lVUwiqX5EPzIEb5PJajiqFlQj5y9ZGiVw0xSPgPcmXncQQzwLKA faWhDWuZOldtvdmKnsLIE6O/aAtJk6OxDdWVvoiaTDDl8zbNxcqZeuJUBgdKprkhYex+ 9lcYhrb82D7QWinnB82bxSpFJsuVE1E8RFk5dzdWG65ajMWRc6uLGu7vGv32MMRkL74K bNYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=QMx9lRtf6A3RQ/HxUEXasZkEUJZb6R90xLt7CbJ1FdU=; b=nhJiQwfu68F63qAQkQImFogSzdc/SxBohqhOdp0wv5y57aVLU6Stbcj0RvfyfNQCJ9 GL88ArGF+BRrG2GaC0vkPgbb/iXK20v14b6MNLZMeKyfbfR2Ms4uxHsVYSO5w3BFoLWa mIivPx1ePcqnr9q30HGZZg7sV2JY8JBy5sO98lSpBsgYbYyRL8rCnDWZIGutP5LoRhzs xAhA6qDvhcmj2/oaKYcn30m1PjZwCFl+8JJSUHBUpqlmx3a+nKRrhrhlGv2tuAJgC78v qjlQCv/adwF36aeWI/a7d3Aw5ODTxxmTFJntoWllD0pQcbotjeGyGcx5CucwTqHSOBJd 1YAQ== X-Gm-Message-State: APt69E3JmOG8lGyITWS9j1S5ZErLKiU0LuvVSgMdfnVUhJ+lTW7Ou3ke 4+nGAnEX9TPBEAZxKAxthwkC9Ykq X-Received: by 2002:a63:4283:: with SMTP id p125-v6mr13993301pga.142.1530997763522; Sat, 07 Jul 2018 14:09:23 -0700 (PDT) Received: from [192.168.1.54] (c-24-5-209-231.hsd1.ca.comcast.net. [24.5.209.231]) by smtp.gmail.com with ESMTPSA id f24-v6sm20054220pfe.39.2018.07.07.14.09.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 07 Jul 2018 14:09:22 -0700 (PDT) Subject: Re: [PATCH v5 15/17] media: platform: Switch to v4l2_async_notifier_add_subdev To: Sakari Ailus , Steve Longerbeam Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org References: <1530298220-5097-1-git-send-email-steve_longerbeam@mentor.com> <1530298220-5097-16-git-send-email-steve_longerbeam@mentor.com> <20180702112327.3rzfxmhghoakbcyz@valkosipuli.retiisi.org.uk> From: Steve Longerbeam Message-ID: <83f950df-7f5b-2dda-3f48-ac25d67e5069@gmail.com> Date: Sat, 7 Jul 2018 14:09:21 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180702112327.3rzfxmhghoakbcyz@valkosipuli.retiisi.org.uk> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sakari, On 07/02/2018 04:23 AM, Sakari Ailus wrote: > On Fri, Jun 29, 2018 at 11:49:59AM -0700, Steve Longerbeam wrote: >> diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c >> index a96f53c..8464ceb 100644 >> --- a/drivers/media/platform/davinci/vpif_capture.c >> +++ b/drivers/media/platform/davinci/vpif_capture.c >> @@ -1553,7 +1553,7 @@ vpif_capture_get_pdata(struct platform_device *pdev) >> sizeof(*chan->inputs), >> GFP_KERNEL); >> if (!chan->inputs) >> - return NULL; >> + goto err_cleanup; >> >> chan->input_count++; >> chan->inputs[i].input.type = V4L2_INPUT_TYPE_CAMERA; >> @@ -1587,28 +1587,30 @@ vpif_capture_get_pdata(struct platform_device *pdev) >> rem->name, rem); >> sdinfo->name = rem->full_name; >> >> - pdata->asd[i] = devm_kzalloc(&pdev->dev, >> - sizeof(struct v4l2_async_subdev), >> - GFP_KERNEL); >> - if (!pdata->asd[i]) { >> + pdata->asd[i] = v4l2_async_notifier_add_fwnode_subdev( >> + &vpif_obj.notifier, of_fwnode_handle(rem), >> + sizeof(struct v4l2_async_subdev)); >> + if (IS_ERR(pdata->asd[i])) { >> of_node_put(rem); >> - pdata = NULL; >> - goto done; >> + goto err_cleanup; >> } >> >> - pdata->asd[i]->match_type = V4L2_ASYNC_MATCH_FWNODE; >> - pdata->asd[i]->match.fwnode = of_fwnode_handle(rem); >> - of_node_put(rem); >> + of_node_put(endpoint); > You end up putting the same endpoint twice in the successful case. > > One way to address that would be to get the OF node's remote port parent > (i.e. the device) immediately so you can forget OF node use counts in error > handling. > Thanks for catching. I ended up doing what you suggested, moved the get of remote port parent to just after getting local endpoint node, and removed node puts in the done and cleanup paths, in vpif_capture_get_pdata(). Steve