From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: [PATCH] minios: fix gnttab allocation boundary Date: Tue, 17 Jun 2008 17:54:51 +0100 Message-ID: <20080617165451.GI5994@implementation.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org minios: fix gnttab allocation boundary The gnttab_sem is already fed during initialization's put_free_entry loop. Signed-off-by: Samuel Thibault diff -r 78f90b0f707f extras/mini-os/gnttab.c --- a/extras/mini-os/gnttab.c Tue Jun 17 14:45:18 2008 +0100 +++ b/extras/mini-os/gnttab.c Tue Jun 17 17:53:51 2008 +0100 @@ -35,7 +35,7 @@ #ifdef GNT_DEBUG static char inuse[NR_GRANT_ENTRIES]; #endif -static __DECLARE_SEMAPHORE_GENERIC(gnttab_sem, NR_GRANT_ENTRIES); +static __DECLARE_SEMAPHORE_GENERIC(gnttab_sem, 0); static void put_free_entry(grant_ref_t ref) @@ -60,6 +60,7 @@ down(&gnttab_sem); local_irq_save(flags); ref = gnttab_list[0]; + BUG_ON(ref < NR_RESERVED_ENTRIES || ref >= NR_GRANT_ENTRIES); gnttab_list[0] = gnttab_list[ref]; #ifdef GNT_DEBUG BUG_ON(inuse[ref]);