From mboxrd@z Thu Jan 1 00:00:00 1970 From: Corneliu ZUZU Subject: Re: [PATCH v3 2/2] xen/vm-events: Move parts of monitor_domctl code to common-side. Date: Mon, 15 Feb 2016 18:28:43 +0200 Message-ID: <56C1FCBB.5070004@bitdefender.com> References: <1455518118-414-1-git-send-email-czuzu@bitdefender.com> <1455518254-507-1-git-send-email-czuzu@bitdefender.com> <56C1C79002000078000D20B8@prv-mh.provo.novell.com> <56C1C135.9070707@bitdefender.com> <56C1D62C02000078000D21B3@prv-mh.provo.novell.com> <56C1D2B3.8050604@bitdefender.com> <56C1E9FC02000078000D225E@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <56C1E9FC02000078000D225E@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: Tamas K Lengyel , Keir Fraser , Ian Campbell , Razvan Cojocaru , Andrew Cooper , xen-devel@lists.xen.org, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org On 2/15/2016 4:08 PM, Jan Beulich wrote: > >> After changing 1 to 1U though, I don't understand why we should also >> range-check mop->event. >> I'm imagining when (mop->event > 31): >> * (1U << mop->event) = 0 or >= (0x1 + 0xFFFFFFFF) (?) > No, it's plain undefined. Weirdo C, didn't know that! I've just read http://www.danielvik.com/2010/05/c-language-quirks.html . That's crazy, I can't believe such 'quirks' exist and that I never knew of them. So then, would this do: /* sanity check - avoid '<<' operator undefined behavior */ if ( unlikely(mop->event > 31) ) return -EINVAL; if ( unlikely(!(arch_monitor_get_capabilities(d) & (1U << mop->event))) ) return -EOPNOTSUPP; ? Thanks, Corneliu.