WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 2/3] add DomU xz kernel decompression

To: Jan Beulich <jbeulich@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 2/3] add DomU xz kernel decompression
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Fri, 11 Mar 2011 07:28:27 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Delivery-date: Thu, 10 Mar 2011 23:29:11 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4D7931BC020000780006C4A8@xxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <4D7931BC020000780006C4A8@xxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Thu, 2011-03-10 at 20:17 +0000, Jan Beulich wrote:
> >>> Ian Jackson  03/10/11 6:51 PM >>>
> >Jan Beulich writes ("[Xen-devel] [PATCH 2/3] add DomU xz kernel 
> >decompression"):
> >> Signed-off-by: Jan Beulich 
> >
> >I see this has already been committed, but:
> >
> >> --- a/tools/libxc/xc_dom_bzimageloader.c
> >> +++ b/tools/libxc/xc_dom_bzimageloader.c
> >...
> >>  {
> >> -    lzma_stream stream = LZMA_STREAM_INIT;
> >> -    lzma_ret ret;
> >>      lzma_action action = LZMA_RUN;
> >>      unsigned char *out_buf;
> >>      unsigned char *tmp_buf;
> >> @@ -152,10 +151,9 @@ static int xc_try_lzma_decode(
> >>      int outsize;
> >>      const char *msg;
> >>  
> >> -    ret = lzma_alone_decoder(&stream, 128*1024*1024);
> >>      if ( ret != LZMA_OK )
> >>      {
> >
> >I don't think this can possibly be correct.
> 
> At the first glance it may look odd, I agree. However, I tested it
> and it did work for me. The fact is that "ret" is now getting passed
> in by the caller, and the invocation of (in this case) lzma_alone_decoder()
> was moved into the (new) caller.
> 
> If it's not that aspect of the change, I may need some more
> explanation from you as to what you think is wrong.

At the very least the variable is now horribly misnamed.

But more importantly I think it's horribly convoluted, confusing and
unexpected to pass the return code of a function called in one function
down the callstack into the next (_xc_try_lzma_decode) simply so that
function can, as it's first action, check for failure and return.

That check very clearly belongs in each of the callers, right after the
failed function call.

Ian.

> 
> Jan
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel