forked from Mirrors/opensbi
		
	lib: utils: fdt_domain: Make opensbi-domain optional in CPU node
The domain_support.md documentation states that "the HART to domain instance assignment can be parsed from the device tree using *optional* DT property opensbi-domain in each CPU DT node". However, the current implementation does not treat this parameter as optional when determining which HARTs to assign to a freshly discovered domain from the device tree, causing an effect where every HART in the system must be explicitly assigned to a domain only if a domain is specified in the device tree. Instead, this patch simply ignores CPUs that do not specify a domain, and does not attempt to assign them into the recently discovered domain. Signed-off-by: Gregor Haas <gregorhaas1997@gmail.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
		@@ -475,12 +475,12 @@ static int __fdt_parse_domain(const void *fdt, int domain_offset, void *opaque)
 | 
			
		||||
		if (!fdt_node_is_enabled(fdt, cpu_offset))
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		/* This is an optional property */
 | 
			
		||||
		val = fdt_getprop(fdt, cpu_offset, "opensbi-domain", &len);
 | 
			
		||||
		if (!val || len < 4) {
 | 
			
		||||
			err = SBI_EINVAL;
 | 
			
		||||
			goto fail_free_all;
 | 
			
		||||
		}
 | 
			
		||||
		if (!val || len < 4)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		/* However, it should be valid if specified */
 | 
			
		||||
		doffset = fdt_node_offset_by_phandle(fdt, fdt32_to_cpu(*val));
 | 
			
		||||
		if (doffset < 0) {
 | 
			
		||||
			err = doffset;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user