Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bca25bafbb390eeec376ac994954b99489d198ec
Commit:     bca25bafbb390eeec376ac994954b99489d198ec
Parent:     79da4721117fcf188b4b007b775738a530f574da
Author:     Parag Warudkar <[EMAIL PROTECTED]>
AuthorDate: Wed Jan 30 13:31:59 2008 +0100
Committer:  Ingo Molnar <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 13:31:59 2008 +0100

    x86: fix dmi_alloc() to not advance alloc index in case of
    
    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 <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 include/asm-x86/dmi.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/asm-x86/dmi.h b/include/asm-x86/dmi.h
index 8e2b0e6..5008c36 100644
--- a/include/asm-x86/dmi.h
+++ b/include/asm-x86/dmi.h
@@ -22,8 +22,9 @@ extern char dmi_alloc_data[DMI_MAX_DATA];
 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 git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to