[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0712181937560.3616@mini.warudkars.net>
Date: Tue, 18 Dec 2007 19:45:18 -0500 (EST)
From: Parag Warudkar <parag.warudkar@...il.com>
To: linux-kernel@...r.kernel.org
cc: mingo@...e.hu, akpm@...ux-foundation.org,
torvalds@...ux-foundation.org, ak@...e.de
Subject: [PATCH] x86: Fix dmi_alloc() to not advance alloc index in case of
failure
dmi_alloc() for CONFIG_X86_64 is defined to allocate from a static array
and it maintains a allocation index which is advanced each time allocation
is attempted - it gets incremented even if an allocation fails thereby
depriving any future request that may be small enough to be satisfied from
the array.
Fix this by first testing if allocation is going to be possible and
incrementing alloc index only then.
Signed-off-by: Parag Warudkar <parag.warudkar@...il.com>
--- linux-2.6/include/asm-x86/dmi.h 2007-12-07 10:04:42.000000000 -0500
+++ linux-2.6-work/include/asm-x86/dmi.h 2007-12-18 18:08:42.000000000 -0500
@@ -22,8 +22,9 @@
static inline void *dmi_alloc(unsigned len)
{
int idx = dmi_alloc_index;
- if ((dmi_alloc_index += len) > DMI_MAX_DATA)
+ if ((dmi_alloc_index + len) > DMI_MAX_DATA)
return NULL;
+ dmi_alloc_index += len;
return dmi_alloc_data + idx;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists