Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp805165pxb; Tue, 3 Nov 2020 13:02:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJxcKq+SjFNcPa/XsCaksq/AOUCHX/K8hyjUp1thc5CKaWWllC9cdVLTkKEVxbIvykQ9bqZ+ X-Received: by 2002:a17:906:5e45:: with SMTP id b5mr10232914eju.46.1604437350585; Tue, 03 Nov 2020 13:02:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604437350; cv=none; d=google.com; s=arc-20160816; b=SFz+7QET21zWaeCW/xqGyXeN/P3s+FquAwfVFBvAFrSfJ/M4lKwhZziTJLscllKtTM Q/bqfAqkNTeBcHk6dNAkbBsXAjXlk9OdRkZLpZQae4CbRLxlvSskju6t5Y0RAvxIrao3 8XHfz2VZESYsSWq9075Rloa/CojOv+RNFnaOLpqzSgcVeNXog8zNuYdr8bj5EGvCM1bu 2FsFhdVT2v4MlyO3Cd5xZ5PGx/iiyzMezj83rXGO0GJhT5HvFQ2/Cis43I0li/BCwMuj AUAw4G+gJdxW5ZUYgPFKvzVPHyVuqerx+lxzr9AtOy9nuXh/g/h98H1tJNvRWcBZGEC/ X/Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Meuiu15O9cuIo5FTzyOINtSZjGx6R2baAa5/iAzeXFw=; b=W8lXVEAdCNBSo/S4MNfgIvfrJW9CnRDeFbKZroFPmFn6keBG5tJXGq+VE0A9jXZbQG X8qYkwV0ebyw3UyyNRhQTS0gXwndnQZkcdKvmk1+14HhpnqQY5ydkPtLYuVQvbAM8qcG M+7+vL8sw5U9LvWF+DygqkBx/7YL9+wDSEMpCRwyjsTGlN3+mb5jm77Xqb+PGAetPZwU oOmtJ6bZObspjObxZh95Iq5gHmriSvjF0/bke54YwEFDSMLgmafjDhwUcLbJsC0TmPqg xDIZzS0Gz8Ym9L8h9KyQjBpen2gdFlqyBgv92SOokbqWv0KecQtNc9jrISAPj6UM4fIH ul5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fg1DdtX8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s18si36059ejd.147.2020.11.03.13.02.06; Tue, 03 Nov 2020 13:02:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fg1DdtX8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733276AbgKCVAo (ORCPT + 99 others); Tue, 3 Nov 2020 16:00:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:36716 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733267AbgKCVAl (ORCPT ); Tue, 3 Nov 2020 16:00:41 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BEC0722226; Tue, 3 Nov 2020 21:00:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604437241; bh=su3cQwyHx3kCHKDVHurH/fOB9rM7M9B3DeAEDRy13to=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fg1DdtX8BdBwGRz40htaavR+WEaaKlcRoK7w0VyuwyJ3pTtG5ZCQat0XOQPSK7ii9 LljRltDrdq9Mr/ZjjAcAt/oWMw/Rzv+BUGxGtzBLf+wqjqYwjMCdTVHZ4uIYNuqg0S cAO6gOeJZC3FoIhpuZ/EtmrzuOAPmHvd/nOtKOBw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ferry Toth , Andy Shevchenko , Heikki Krogerus , "Rafael J. Wysocki" Subject: [PATCH 5.4 207/214] device property: Keep secondary firmware node secondary by type Date: Tue, 3 Nov 2020 21:37:35 +0100 Message-Id: <20201103203310.018855101@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201103203249.448706377@linuxfoundation.org> References: <20201103203249.448706377@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andy Shevchenko commit d5dcce0c414fcbfe4c2037b66ac69ea5f9b3f75c upstream. Behind primary and secondary we understand the type of the nodes which might define their ordering. However, if primary node gone, we can't maintain the ordering by definition of the linked list. Thus, by ordering secondary node becomes first in the list. But in this case the meaning of it is still secondary (or auxiliary). The type of the node is maintained by the secondary pointer in it: secondary pointer Meaning NULL or valid primary node ERR_PTR(-ENODEV) secondary node So, if by some reason we do the following sequence of calls set_primary_fwnode(dev, NULL); set_primary_fwnode(dev, primary); we should preserve secondary node. This concept is supported by the description of set_primary_fwnode() along with implementation of set_secondary_fwnode(). Hence, fix the commit c15e1bdda436 to follow this as well. Fixes: c15e1bdda436 ("device property: Fix the secondary firmware node handling in set_primary_fwnode()") Cc: Ferry Toth Signed-off-by: Andy Shevchenko Reviewed-by: Heikki Krogerus Tested-by: Ferry Toth Cc: 5.9+ # 5.9+ Signed-off-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman --- drivers/base/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3414,7 +3414,7 @@ void set_primary_fwnode(struct device *d } else { if (fwnode_is_primary(fn)) { dev->fwnode = fn->secondary; - fn->secondary = NULL; + fn->secondary = ERR_PTR(-ENODEV); } else { dev->fwnode = NULL; }