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

Re: [Xen-devel] [PATCH 2/2] xen/xenbus: don't reimplement kvasprintf via a fixed size buffer



>>> On 04.01.12 at 12:39, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

> Cc: Haogang Chen <haogangchen@xxxxxxxxx>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx 
> Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx 
> Cc: linux-kernel@xxxxxxxxxxxxxxx 
> ---
>  drivers/xen/xenbus/xenbus_xs.c |   17 +++++++----------
>  1 files changed, 7 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
> index 6f0121e..226d1ac 100644
> --- a/drivers/xen/xenbus/xenbus_xs.c
> +++ b/drivers/xen/xenbus/xenbus_xs.c
> @@ -532,21 +532,18 @@ int xenbus_printf(struct xenbus_transaction t,
>  {
>       va_list ap;
>       int ret;
> -#define PRINTF_BUFFER_SIZE 4096
> -     char *printf_buffer;
> -
> -     printf_buffer = kmalloc(PRINTF_BUFFER_SIZE, GFP_NOIO | __GFP_HIGH);
> -     if (printf_buffer == NULL)
> -             return -ENOMEM;
> +     char *buf;
>  
>       va_start(ap, fmt);
> -     ret = vsnprintf(printf_buffer, PRINTF_BUFFER_SIZE, fmt, ap);
> +     buf = kvasprintf(GFP_NOIO | __GFP_HIGH, fmt, ap);
>       va_end(ap);
>  
> -     BUG_ON(ret > PRINTF_BUFFER_SIZE-1);
> -     ret = xenbus_write(t, dir, node, printf_buffer);
> +     if (!buf)
> +             return -ENOMEM;
> +
> +     ret = xenbus_write(t, dir, node, buf);
>  
> -     kfree(printf_buffer);
> +     kfree(buf);
>  
>       return ret;
>  }
> -- 
> 1.7.2.5
> 
> 
> _______________________________________________
> 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


 


Rackspace

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