tree 7e3976e7e2a76b857d3087821366dad89691ceeb
parent ebad6a4230bdb5927495e28bc7837f515bf667a7
author Robert Love <[EMAIL PROTECTED]> Wed, 07 Sep 2005 05:18:30 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Thu, 08 Sep 2005 06:57:44 -0700

[PATCH] fix: dmi_check_system

Background:

        1) dmi_check_system() returns the count of the number of
           matches.  Zero thus means no matches.
        2) A match callback can return nonzero to stop the match
           checking.

Bug: The count is incremented after we check for the nonzero return value,
so it does not reflect the actual count.  We could say this is intended,
for some dumb reason, except that it means that a match on the first check
returns zero--no matches--if the callback returns nonzero.

Attached patch implements the count before calling the callback and thus
before potentially short-circuiting.

Signed-off-by: Robert Love <[EMAIL PROTECTED]>
Cc: Andrey Panin <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 arch/i386/kernel/dmi_scan.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c
--- a/arch/i386/kernel/dmi_scan.c
+++ b/arch/i386/kernel/dmi_scan.c
@@ -248,9 +248,9 @@ int dmi_check_system(struct dmi_system_i
                        /* No match */
                        goto fail;
                }
+               count++;
                if (d->callback && d->callback(d))
                        break;
-               count++;
 fail:          d++;
        }
 
-
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