[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20160504113613.GG2839@codeblueprint.co.uk>
Date: Wed, 4 May 2016 12:36:13 +0100
From: Matt Fleming <matt@...eblueprint.co.uk>
To: Shannon Zhao <zhaoshenglong@...wei.com>
Cc: Shannon Zhao <shannon.zhao@...aro.org>,
Stephen Rothwell <sfr@...b.auug.org.au>,
Jeremy Fitzhardinge <jeremy@...p.org>,
Stefano Stabellini <sstabellini@...nel.org>,
Ard Biesheuvel <ard.biesheuvel@...aro.org>,
Peter Zijlstra <peterz@...radead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Luis R. Rodriguez" <mcgrof@...nel.org>,
Xen Devel <Xen-devel@...ts.xensource.com>,
Borislav Petkov <bp@...en8.de>, linux-next@...r.kernel.org,
Ingo Molnar <mingo@...e.hu>, "H. Peter Anvin" <hpa@...or.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...nel.org>,
Stefano Stabellini <stefano.stabellini@...citrix.com>
Subject: Re: [Xen-devel] efi_enabled(EFI_PARAVIRT) use
On Tue, 03 May, at 09:45:22AM, Shannon Zhao wrote:
> > +static int __init fdt_find_uefi_params(unsigned long node, const char *uname,
> > + int depth, void *data)
> > +{
> > + struct param_info *info = data;
> > + int i;
> > +
> > + for (i = 0; i < ARRAY_SIZE(dt_params); i++) {
> > +
> > + if (depth != 1 || strcmp(uname, dt_params[i].uname) != 0) {
> > + info->missing = dt_params[i].params[0].name;
> > + continue;
> > + }
> > +
> So here it needs to check whether the node is /hypervisor. If so, get
> the subnode "uefi". Like below:
> if (strcmp(uname, "hypervisor") == 0) {
> offset = of_get_flat_dt_subnode_by_name(node, "uefi");
> if (offset < 0)
> return 0;
> node = offset;
> }
Urgh, right.
How about giving dt_params a const char *subnode field and doing,
for (i = 0; i < ARRAY_SIZE(dt_params); i++) {
const char *subnode = dt_params[i].sub_node;
if (depth != 1 || strcmp(uname, dt_params[i].uname) != 0) {
info->missing = dt_params[i].params[0].name;
continue;
}
if (subnode) {
offset = of_get_flat_dt_subnode_by_name(node, subnode);
if (offset < 0)
return 0;
node = offset;
}
...
Powered by blists - more mailing lists