From: Julien Grall <julien@xen.org>
To: Vikram Garhwal <vikram.garhwal@amd.com>, xen-devel@lists.xenproject.org
Cc: michal.orzel@amd.com, sstabellini@kernel.org, jbeulich@suse.com
Subject: Re: [XEN][PATCH v7 04/19] common/device_tree: change __unflatten_device_tree() type
Date: Thu, 17 Aug 2023 08:59:18 +0100 [thread overview]
Message-ID: <48272b15-8fe1-4dfe-a02c-acdfd8ff9c62@xen.org> (raw)
In-Reply-To: <ZN1ge4pmAmcllhov@amd.com>
Hi,
On 17/08/2023 00:49, Vikram Garhwal wrote:
> On Tue, Jun 06, 2023 at 12:09:35PM -0700, Vikram Garhwal wrote:
>> Hi Julien,
>> Will update the commit message regarding why we need to export this for dtbo
>> programming.
>>
>> On 6/5/23 12:04 PM, Julien Grall wrote:
>>> Hi,
>>>
>>> Title:
>>>
>>> 'type' is a bit confusing here. How about "Export
>>> __unflatten_device_tre()"?
>>>
>>> On 02/06/2023 01:48, Vikram Garhwal wrote:
>>>> Following changes are done to __unflatten_device_tree():
>>>> 1. __unflatten_device_tree() is renamed to unflatten_device_tree().
>>>> 2. Remove __init and static function type.
>>>
>>> As there is no external caller yet, please explain why you want to
>>> export the function.
> Update the commit message in v8.
>>>
>>> Cheers,
>>>
>>>>
>>>> Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
>>>> Reviewed-by: Henry Wang <Henry.Wang@arm.com>
>>>> ---
>>>> xen/common/device_tree.c | 9 ++++-----
>>>> xen/include/xen/device_tree.h | 5 +++++
>>>> 2 files changed, 9 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
>>>> index bbdab07596..16b4b4e946 100644
>>>> --- a/xen/common/device_tree.c
>>>> +++ b/xen/common/device_tree.c
>>>> @@ -2083,7 +2083,7 @@ static unsigned long unflatten_dt_node(const
>>>> void *fdt,
>>>> }
>>>> /**
>>>> - * __unflatten_device_tree - create tree of device_nodes from flat blob
>>>> + * unflatten_device_tree - create tree of device_nodes from flat blob
>>>> *
>>>> * unflattens a device-tree, creating the
>>>> * tree of struct device_node. It also fills the "name" and "type"
>>>> @@ -2092,8 +2092,7 @@ static unsigned long unflatten_dt_node(const
>>>> void *fdt,
>>>> * @fdt: The fdt to expand
>>>> * @mynodes: The device_node tree created by the call
>>>> */
>>>> -static int __init __unflatten_device_tree(const void *fdt,
>>>> - struct dt_device_node
>>>> **mynodes)
>>>> +int unflatten_device_tree(const void *fdt, struct dt_device_node
>>>> **mynodes)
>>>> {
>>>> unsigned long start, mem, size;
>>>> struct dt_device_node **allnextp = mynodes;
>>>> @@ -2230,10 +2229,10 @@ dt_find_interrupt_controller(const struct
>>>> dt_device_match *matches)
>>>> void __init dt_unflatten_host_device_tree(void)
>>>> {
>>>> - int error = __unflatten_device_tree(device_tree_flattened,
>>>> &dt_host);
>>>> + int error = unflatten_device_tree(device_tree_flattened, &dt_host);
>>>> if ( error )
>>>> - panic("__unflatten_device_tree failed with error %d\n", error);
>>>> + panic("unflatten_device_tree failed with error %d\n", error);
>>>> dt_alias_scan();
>>>
>>> This function doesn't seem to be called in the case of the overlay
>>> device-tree. Does this mean that it will never contain any alias?
>>>
> I haven't seen any overlay example for FPGA use cases where alias are added.
> I have added a TODO in patch 16/19 where we are calling unflatten_device_tree().
>>>> }
>>>> diff --git a/xen/include/xen/device_tree.h
>>>> b/xen/include/xen/device_tree.h
>>>> index c2eada7489..2c35c0d391 100644
>>>> --- a/xen/include/xen/device_tree.h
>>>> +++ b/xen/include/xen/device_tree.h
>>>> @@ -178,6 +178,11 @@ int device_tree_for_each_node(const void *fdt,
>>>> int node,
>>>> */
>>>> void dt_unflatten_host_device_tree(void);
>>>> +/**
>>>> + * unflatten any device tree.
>>>
>>> Most of the exported function in device_tre.h have documentation. Can
>>> you do the same here?
> Done!
>>>
>>>> + */
>>>> +int unflatten_device_tree(const void *fdt, struct dt_device_node
>>>> **mynodes);
>>>
>>> NIT: From an external interface perspective, do we actually need to pass
>>> an extra pointer? Can't we instead, return the pointer?
> We will also need the error from the function. So, that's why i kept it as it is.
This can be achieved by using the ERR_PTR() infrastructure which I would
rather prefer over passing an extra pointer here.
Cheers,
--
Julien Grall
next prev parent reply other threads:[~2023-08-17 7:59 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-02 0:48 [XEN][PATCH v7 00/19] dynamic node programming using overlay dtbo Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 01/19] common/device_tree: handle memory allocation failure in __unflatten_device_tree() Vikram Garhwal
2023-06-02 7:09 ` Michal Orzel
2023-06-05 18:54 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 02/19] common/device_tree.c: unflatten_device_tree() propagate errors Vikram Garhwal
2023-06-02 7:14 ` Michal Orzel
2023-06-06 19:08 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 03/19] xen/arm/device: Remove __init from function type Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 04/19] common/device_tree: change __unflatten_device_tree() type Vikram Garhwal
2023-06-02 7:15 ` Michal Orzel
2023-06-05 19:04 ` Julien Grall
2023-06-06 19:09 ` Vikram Garhwal
2023-08-16 23:49 ` Vikram Garhwal
2023-08-17 7:59 ` Julien Grall [this message]
2023-06-02 0:48 ` [XEN][PATCH v7 05/19] xen/arm: Add CONFIG_OVERLAY_DTB Vikram Garhwal
2023-06-02 1:43 ` Henry Wang
2023-06-02 7:16 ` Michal Orzel
2023-06-02 9:06 ` Jan Beulich
2023-06-02 9:22 ` Henry Wang
2023-06-06 19:11 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 06/19] libfdt: Keep fdt functions after init for CONFIG_OVERLAY_DTB Vikram Garhwal
2023-06-02 9:09 ` Jan Beulich
2023-06-02 0:48 ` [XEN][PATCH v7 07/19] libfdt: overlay: change overlay_get_target() Vikram Garhwal
2023-06-05 19:05 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 08/19] xen/device-tree: Add device_tree_find_node_by_path() to find nodes in device tree Vikram Garhwal
2023-06-02 1:52 ` Henry Wang
2023-06-02 7:24 ` Michal Orzel
2023-06-05 19:12 ` Julien Grall
2023-06-06 20:29 ` Vikram Garhwal
2023-06-07 6:22 ` Michal Orzel
2023-06-07 6:27 ` Henry Wang
2023-06-07 8:30 ` Luca Fancellu
2023-06-02 0:48 ` [XEN][PATCH v7 09/19] xen/iommu: Move spin_lock from iommu_dt_device_is_assigned to caller Vikram Garhwal
2023-06-02 7:45 ` Michal Orzel
2023-06-05 19:22 ` Julien Grall
2023-06-06 20:33 ` Vikram Garhwal
2023-06-02 9:19 ` Jan Beulich
2023-06-02 9:26 ` Jan Beulich
2023-06-05 19:19 ` Julien Grall
2023-08-16 23:55 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 10/19] xen/iommu: protect iommu_add_dt_device() with dtdevs_lock Vikram Garhwal
2023-06-02 9:21 ` Jan Beulich
2023-06-05 19:25 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 11/19] xen/iommu: Introduce iommu_remove_dt_device() Vikram Garhwal
2023-06-02 9:22 ` Jan Beulich
2023-06-05 19:37 ` Julien Grall
2023-08-16 23:58 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 12/19] xen/smmu: Add remove_device callback for smmu_iommu ops Vikram Garhwal
2023-06-02 7:47 ` Michal Orzel
2023-06-02 0:48 ` [XEN][PATCH v7 13/19] asm/smp.h: Fix circular dependency for device_tree.h and rwlock.h Vikram Garhwal
2023-06-05 19:46 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 14/19] common/device_tree: Add rwlock for dt_host Vikram Garhwal
2023-06-02 1:58 ` Henry Wang
2023-06-05 7:10 ` Michal Orzel
2023-06-05 19:52 ` Julien Grall
2023-08-16 23:59 ` Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 15/19] xen/arm: Implement device tree node removal functionalities Vikram Garhwal
2023-06-02 9:31 ` Jan Beulich
2023-06-05 7:52 ` Michal Orzel
2023-06-05 21:07 ` Julien Grall
2023-08-17 0:31 ` Vikram Garhwal
2023-08-17 8:14 ` Julien Grall
2023-06-02 0:48 ` [XEN][PATCH v7 16/19] xen/arm: Implement device tree node addition functionalities Vikram Garhwal
2023-06-05 8:35 ` Michal Orzel
2023-06-02 0:48 ` [XEN][PATCH v7 17/19] tools/libs/ctrl: Implement new xc interfaces for dt overlay Vikram Garhwal
2023-06-12 11:17 ` Anthony PERARD
2023-06-02 0:48 ` [XEN][PATCH v7 18/19] tools/libs/light: Implement new libxl functions for device tree overlay ops Vikram Garhwal
2023-06-02 0:48 ` [XEN][PATCH v7 19/19] tools/xl: Add new xl command overlay for device tree overlay support Vikram Garhwal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48272b15-8fe1-4dfe-a02c-acdfd8ff9c62@xen.org \
--to=julien@xen.org \
--cc=jbeulich@suse.com \
--cc=michal.orzel@amd.com \
--cc=sstabellini@kernel.org \
--cc=vikram.garhwal@amd.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).