[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 09/10] xen: arm: Drop device_tree_node_compatible
On Mon, 16 Jun 2014, Ian Campbell wrote: > Instead use fdt_node_check_compatible from libfdt. Unfortunately the two functions are not equivalent: fdt_node_check_compatible uses memcmp while device_tree_node_compatible uses strcasecmp that ignores cases. At the very least we should make a note of this in the commit message. > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > --- > xen/arch/arm/bootfdt.c | 28 ++-------------------------- > 1 file changed, 2 insertions(+), 26 deletions(-) > > diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c > index a80055c..8ab45c9 100644 > --- a/xen/arch/arm/bootfdt.c > +++ b/xen/arch/arm/bootfdt.c > @@ -31,30 +31,6 @@ static bool_t __init device_tree_node_matches(const void > *fdt, int node, > && (name[match_len] == '@' || name[match_len] == '\0'); > } > > -static bool_t __init device_tree_node_compatible(const void *fdt, int node, > - const char *match) > -{ > - int len, l; > - int mlen; > - const void *prop; > - > - mlen = strlen(match); > - > - prop = fdt_getprop(fdt, node, "compatible", &len); > - if ( prop == NULL ) > - return 0; > - > - while ( len > 0 ) { > - if ( !dt_compat_cmp(prop, match) ) > - return 1; > - l = strlen(prop) + 1; > - prop += l; > - len -= l; > - } > - > - return 0; > -} > - > static void __init device_tree_get_reg(const __be32 **cell, u32 > address_cells, > u32 size_cells, u64 *start, u64 *size) > { > @@ -261,8 +237,8 @@ static int __init early_scan_node(const void *fdt, > { > if ( device_tree_node_matches(fdt, node, "memory") ) > process_memory_node(fdt, node, name, address_cells, size_cells); > - else if ( device_tree_node_compatible(fdt, node, "xen,multiboot-module" > ) || > - device_tree_node_compatible(fdt, node, "multiboot,module" )) > + else if ( fdt_node_check_compatible(fdt, node, "xen,multiboot-module" ) > || > + fdt_node_check_compatible(fdt, node, "multiboot,module" )) > process_multiboot_node(fdt, node, name, address_cells, size_cells); > else if ( depth == 1 && device_tree_node_matches(fdt, node, "chosen") ) > process_chosen_node(fdt, node, name, address_cells, size_cells); > -- > 1.7.10.4 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |