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

[Xen-devel] Re: [PATCH 3/6] trace: improve check_tbuf_size()


  • To: Jan Beulich <JBeulich@xxxxxxxxxx>
  • From: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
  • Date: Wed, 30 Jun 2010 16:15:00 +0100
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 30 Jun 2010 08:15:57 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=qKRfmFsA4x4Q0p4cbHla0pOzbMBr/dYkMDS7+4JY5FeY2kDq13RTgCb6unQnCgT9vx eUADPfNyDOfiLYLFOy7B/oqf65x+fmIbNqENXpR/RCaQubfuQB0wHs2eXaiSfiqs31I7 qVGAJdN6vkV4Hj9Ty7ppnU4Rjf1y5AWu+D3DA=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

As long as we're being anal, we should be sure to use the actual types
from prod and cons to do the check.  Patch attached.

 -George

On Tue, Jun 29, 2010 at 4:34 PM, Jan Beulich <JBeulich@xxxxxxxxxx> wrote:
> It didn't consider the case of the incoming size not allowing for the
> 2*data_size range for t_buf->{prod,cons}
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
>
> --- 2010-06-15.orig/xen/common/trace.c  2010-06-28 11:58:37.000000000 +0200
> +++ 2010-06-15/xen/common/trace.c       2010-06-28 11:58:37.000000000 +0200
> @@ -77,11 +77,16 @@ static u32 tb_event_mask = TRC_ALL;
>
>  /**
>  * check_tbuf_size - check to make sure that the proposed size will fit
> - * in the currently sized struct t_info.
> + * in the currently sized struct t_info and allows prod and cons to
> + * reach double the value without overflow.
>  */
> -static inline int check_tbuf_size(int size)
> +static int check_tbuf_size(u32 pages)
>  {
> -    return (num_online_cpus() * size + T_INFO_FIRST_OFFSET) > (T_INFO_SIZE / 
> sizeof(uint32_t));
> +    u32 size = pages * PAGE_SIZE;
> +
> +    return (size / PAGE_SIZE != pages) || (size + size < size) ||
> +           (num_online_cpus() * pages + T_INFO_FIRST_OFFSET >
> +            T_INFO_SIZE / sizeof(uint32_t));
>  }
>
>  /**
>
>
>
>

Attachment: trace-check-size-v2.patch
Description: Text Data

_______________________________________________
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®.