From 030c31dd18ad7dc1c71d6502c577762e467cdb92 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 18 Jun 2008 09:38:11 +0100 Subject: minios: fix gnttab allocation boundary The gnttab_sem is already fed during initialization's put_free_entry loop. Signed-off-by: Samuel Thibault --- extras/mini-os/gnttab.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'extras/mini-os/gnttab.c') diff --git a/extras/mini-os/gnttab.c b/extras/mini-os/gnttab.c index d94c28b815..18fd87e29c 100644 --- a/extras/mini-os/gnttab.c +++ b/extras/mini-os/gnttab.c @@ -35,7 +35,7 @@ static grant_ref_t gnttab_list[NR_GRANT_ENTRIES]; #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 @@ get_free_entry(void) 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]); -- cgit v1.2.3