]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
another .32 patch
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 26 Jan 2010 00:47:48 +0000 (16:47 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 26 Jan 2010 00:47:48 +0000 (16:47 -0800)
queue-2.6.32/dmi-allow-omitting-ident-strings-in-dmi-tables.patch [new file with mode: 0644]
queue-2.6.32/series

diff --git a/queue-2.6.32/dmi-allow-omitting-ident-strings-in-dmi-tables.patch b/queue-2.6.32/dmi-allow-omitting-ident-strings-in-dmi-tables.patch
new file mode 100644 (file)
index 0000000..54cb442
--- /dev/null
@@ -0,0 +1,71 @@
+From 75757507e014fa074d25d2883c4ab604999584bd Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Fri, 4 Dec 2009 10:24:19 -0800
+Subject: DMI: allow omitting ident strings in DMI tables
+
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+
+commit 75757507e014fa074d25d2883c4ab604999584bd upstream.
+
+The purpose of dmi->ident is twofold - it may be used by DMI callback
+functions when composing log messages; it is also used to determine
+end of DMI table in dmi_check_system() and dmi_first_match(). However,
+in case when callbacks are not interested in using ident at all it just
+wastes memory. Let's make entries with empty first match slot serve as
+end-of-table markers instead.
+
+[needed for DMI table changes that need to be done by later patches - gkh]
+
+Acked-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/firmware/dmi_scan.c |   15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+--- a/drivers/firmware/dmi_scan.c
++++ b/drivers/firmware/dmi_scan.c
+@@ -429,7 +429,7 @@ static bool dmi_matches(const struct dmi
+       for (i = 0; i < ARRAY_SIZE(dmi->matches); i++) {
+               int s = dmi->matches[i].slot;
+               if (s == DMI_NONE)
+-                      continue;
++                      break;
+               if (dmi_ident[s]
+                   && strstr(dmi_ident[s], dmi->matches[i].substr))
+                       continue;
+@@ -440,6 +440,15 @@ static bool dmi_matches(const struct dmi
+ }
+ /**
++ *    dmi_is_end_of_table - check for end-of-table marker
++ *    @dmi: pointer to the dmi_system_id structure to check
++ */
++static bool dmi_is_end_of_table(const struct dmi_system_id *dmi)
++{
++      return dmi->matches[0].slot == DMI_NONE;
++}
++
++/**
+  *    dmi_check_system - check system DMI data
+  *    @list: array of dmi_system_id structures to match against
+  *            All non-null elements of the list must match
+@@ -457,7 +466,7 @@ int dmi_check_system(const struct dmi_sy
+       int count = 0;
+       const struct dmi_system_id *d;
+-      for (d = list; d->ident; d++)
++      for (d = list; !dmi_is_end_of_table(d); d++)
+               if (dmi_matches(d)) {
+                       count++;
+                       if (d->callback && d->callback(d))
+@@ -484,7 +493,7 @@ const struct dmi_system_id *dmi_first_ma
+ {
+       const struct dmi_system_id *d;
+-      for (d = list; d->ident; d++)
++      for (d = list; !dmi_is_end_of_table(d); d++)
+               if (dmi_matches(d))
+                       return d;
index 70436186db49edaa4ab93fc7efb2cbed4a19438c..74772eaf9f849cdd5c4c0f6cf8f7d989e872aa13 100644 (file)
@@ -57,6 +57,7 @@ qlge-don-t-fail-open-when-port-is-not-initialized.patch
 qlge-add-handler-for-dcbx-firmware-event.patch
 qlge-bonding-fix-for-mode-6.patch
 pci-aer-fix-aer-inject-result-in-kernel-oops.patch
+dmi-allow-omitting-ident-strings-in-dmi-tables.patch
 input-i8042-remove-identification-strings-from-dmi-tables.patch
 input-i8042-add-gigabyte-m1022m-to-the-noloop-list.patch
 input-i8042-add-dritek-quirk-for-acer-aspire-5610.patch