|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 2/7] xen/arm: make process_memory_node a device_tree_node_func
On 15/08/2019 14:51, Volodymyr Babchuk wrote: Julien Grall writes:Hi Volodymyr, On 15/08/2019 13:14, Volodymyr Babchuk wrote:Julien Grall writes:On 15/08/2019 12:24, Julien Grall wrote:Hi Volodymyr, On 15/08/2019 12:20, Volodymyr Babchuk wrote:Hi Stefano, Stefano Stabellini writes:On Tue, 13 Aug 2019, Volodymyr Babchuk wrote:@@ -162,6 +156,10 @@ static void __init process_memory_node(const void *fdt, int node, bootinfo.mem.bank[bootinfo.mem.nr_banks].size = size; bootinfo.mem.nr_banks++; } + + if ( bootinfo.mem.nr_banks == NR_MEM_BANKS ) + return -ENOSPC;Are you sure that this logic is correct? For example, if NR_MEM_BANKS is 1, and we have exactly one memory node in device tree, this function will fail. But it should not. I think you want this condition: bootinfo.mem.nr_banks > NR_MEM_BANKSYou are right, if NR_MEM_BANKS is 1 and we have 1 memory node in device tree the code would return an error while actually it is normal. I think the right check would be: if ( i < banks && bootinfo.mem.nr_banks == NR_MEM_BANKS ) return -ENOSPC; I guess you mean before the loop? If so, this is possible but then you will ignore the full node rather than trying to add as much regions as possible. To give an exagerated example, imagine a the DT has a single node with NR_MEM_BANKS + 1. You will end up to not add any banks, so Xen will see no memory. This is not very ideal. So we need the check suggested by Stefano.As I said earlier, it does not cover all corner cases. It will behave differently, depending on ordering of entries in "reg" property (if we allow zero-length regions). Yes, this is the user's problem, but I think it is better to have consistent behavior even in case of user's fault. Where did I say it cover all corner cases? As I said "If a DT is wrong then we should treat as such and shout at the user." See above for the early check. This is another option for Stefano check. I don't particularly care on the check as long as it is correct. If we want array to be filled no mater what. Anyways, I don't want to press on this anymore. I just wanted to share my concerns. You are preaching the converted. However, I have already pointed multiple times that we need to fill the array as much as possible. This is not a user fault but a Xen limitation. So I am not sure why you are pushing for an early check. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |