Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3207742pxb; Mon, 9 Nov 2020 05:37:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJxRO1+egSZ9u3LWIECaQrVIZ9p9MuE4YtxBasSL/6N8AR+RMrTJ48Im1CH4lEfFbiN5ZUmG X-Received: by 2002:a17:906:7d16:: with SMTP id u22mr14858370ejo.169.1604929032363; Mon, 09 Nov 2020 05:37:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604929032; cv=none; d=google.com; s=arc-20160816; b=tJzvt+3vobLBOPMBVjOKXOoCcZTz8usbpxBnX6tuGZNyn9vsS9uN7YlVf0Dcj0gaPb yM7Etyx/ghNpAouWxfgEGT5m76ocm8P1ozHS6xc25CQW+MkIWV0Kh1TSdoSw9twLwoEg f1mPTTHJ+hXkZVoXA8DLUlagg8DZTW18InEoY3sL/WyrtOqYxZ7OiybyUfkKKTvgwUFH GP1CsIGjNZKg7LRFU0acfSkLpF3HjvpdqJ/+l3uJrR15cUxdlUz8OwhhEflKGyheJdIH dRnvKbiv1BeSkJVrsP3Zq4ZpyI7ZGi+JuIBUEBnIiFjgKX4z8cqxLeyc3OW8/i5P64fP kOyw== 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=4U0lnBHLrmPY3CFAD9xPao/x/pfRSCdX5RcWJ+Gz9lk=; b=ATE75dP3Jhug0RoCeI339DiJNjStEaweJyTxeklfvxDsbX3HRD5ic/5gX9CP57UIII 5FhrDC90pGRNZiib6sZ9Cv9XcjgV7+9Q6WbMYuGpAU+gVfPwQxiE3qdMqU9wIdZaWCIO m5IrsI8mk3M5zB4lBR93HICY+xrLYRTiRrA1rjWD3RhIco7iEumF7IzIjj9htrvygNih caOD5NGYBnSFW9jf1KlQCniBVClRUW/lwPTqge2UdFu8hWML+xJ7CatOfj+maXAluR0w hCr3uBOpn0HKrteQf6VuH5IFgna23B1XJF2mtXUhW4iFqrdLbe8khs2OUhiZoraK6Kzv lV7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="fu+D/3bd"; 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 cc21si7891551edb.123.2020.11.09.05.36.49; Mon, 09 Nov 2020 05:37:12 -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="fu+D/3bd"; 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 S1732871AbgKINfa (ORCPT + 99 others); Mon, 9 Nov 2020 08:35:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:58212 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730839AbgKINFW (ORCPT ); Mon, 9 Nov 2020 08:05:22 -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 DCDDE21D40; Mon, 9 Nov 2020 13:05:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604927119; bh=0d5mbr8golkF2uyLE7azfmyXcCyXmpgRp8/Y4gZob2s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fu+D/3bdk6vI5KpFtUEmCnBhxCPfbv+uNt0engwIXH2dRAk5YAOmjLLWdhNCWPqyA TOo43LvUoMcQpYn+iw6TmmrIjmxCureblgAwIdGpeoAXDyHPngvstN0Yz1P8H/ZmQs HsbwijMaXcEQwlgk3q9kyJ6L9EKFf32iNE1AznJ8= 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 4.9 086/117] device property: Keep secondary firmware node secondary by type Date: Mon, 9 Nov 2020 13:55:12 +0100 Message-Id: <20201109125029.772123248@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201109125025.630721781@linuxfoundation.org> References: <20201109125025.630721781@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 @@ -2362,7 +2362,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; }