[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 4/8] device-tree: get_val cannot cope with cells > 2, add early_panic



On Thu, 2012-12-06 at 12:13 +0000, David Vrabel wrote:
> On 03/12/12 17:10, Ian Campbell wrote:
> > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > ---
> > v3: early_panic instead of BUG_ON
> > v2: drop unrelated white space fixup
> > ---
> >  xen/common/device_tree.c |    3 +++
> >  1 files changed, 3 insertions(+), 0 deletions(-)
> > 
> > diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
> > index 9eb316f..5a0a1a6 100644
> > --- a/xen/common/device_tree.c
> > +++ b/xen/common/device_tree.c
> > @@ -58,6 +58,9 @@ static void __init get_val(const u32 **cell, u32 cells, 
> > u64 *val)
> >  {
> >      *val = 0;
> >  
> > +    if ( cells > 2 )
> > +        early_panic("dtb value contains > 2 cells\n");
> > +
> 
> This seems like overkill to me.  get_val() truncates the value down to
> 64 bits which is fine as no valid physical address is more than 64 bits.

If something does end up giving us a >2 cell number (for example a 4
cell thing with an unhelpful endianess) then we will silently end up
doing something which is unlikely to be the right thing.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.