[dmidecode] fix the dmi_chassis_type function and its caller.

Anton Arapov aarapov at fedoraproject.org
Mon Nov 14 14:05:04 UTC 2011


commit 2775494cb0a3ffbb2f87d2ce8ef9bdff7f7920e1
Author: Anton Arapov <anton at redhat.com>
Date:   Mon Nov 14 15:03:35 2011 +0100

    fix the dmi_chassis_type function and its caller.

 dmidecode-2.11-chassis_fix.patch |   42 ++++++++++++++++++++++++++++++++++++++
 dmidecode.spec                   |   13 +++++++++--
 2 files changed, 52 insertions(+), 3 deletions(-)
---
diff --git a/dmidecode-2.11-chassis_fix.patch b/dmidecode-2.11-chassis_fix.patch
new file mode 100644
index 0000000..f6a1063
--- /dev/null
+++ b/dmidecode-2.11-chassis_fix.patch
@@ -0,0 +1,42 @@
+diff -up dmidecode-2.11/AUTHORS.chassis_fix dmidecode-2.11/AUTHORS
+--- dmidecode-2.11/AUTHORS.chassis_fix	2010-11-24 10:29:09.000000000 +0100
++++ dmidecode-2.11/AUTHORS	2011-11-14 14:56:08.000000000 +0100
+@@ -81,3 +81,5 @@ Murlin Wenzel
+ Harald Mueller-Ney
+ Lars Mueller
+ Thomas Mingarelli
++Andrey Matveyev
++Stefan Tauner
+diff -up dmidecode-2.11/CHANGELOG.chassis_fix dmidecode-2.11/CHANGELOG
+--- dmidecode-2.11/CHANGELOG.chassis_fix	2011-11-14 14:56:39.804855909 +0100
++++ dmidecode-2.11/CHANGELOG	2011-11-14 14:56:15.000000000 +0100
+@@ -1,3 +1,8 @@
++2011-11-14  Anton Arapov  <anton at redhat.com>
++
++	* dmidecode.c: Make dmi_chassis_type aware of the lock bit.
++	  Patch from Stefan Tauner.
++
+ 2011-04-20  Jean Delvare  <khali at linux-fr.org>
+ 
+ 	Update to support SMBIOS specification version 2.7.1.
+diff -up dmidecode-2.11/dmidecode.c.chassis_fix dmidecode-2.11/dmidecode.c
+--- dmidecode-2.11/dmidecode.c.chassis_fix	2011-11-14 14:56:39.805855910 +0100
++++ dmidecode-2.11/dmidecode.c	2011-11-14 14:55:12.000000000 +0100
+@@ -532,6 +532,8 @@ static const char *dmi_chassis_type(u8 c
+ 		"Blade Enclosing" /* 0x1D */
+ 	};
+ 
++	code &= 0x7F; /* bits 6:0 are chassis type, 7th bit is the lock bit */
++
+ 	if (code >= 0x01 && code <= 0x1D)
+ 		return type[code - 0x01];
+ 	return out_of_spec;
+@@ -3237,7 +3239,7 @@ static void dmi_decode(const struct dmi_
+ 			printf("\tManufacturer: %s\n",
+ 				dmi_string(h, data[0x04]));
+ 			printf("\tType: %s\n",
+-				dmi_chassis_type(data[0x05] & 0x7F));
++				dmi_chassis_type(data[0x05]));
+ 			printf("\tLock: %s\n",
+ 				dmi_chassis_lock(data[0x05] >> 7));
+ 			printf("\tVersion: %s\n",
diff --git a/dmidecode.spec b/dmidecode.spec
index 4a220b6..901da14 100644
--- a/dmidecode.spec
+++ b/dmidecode.spec
@@ -1,7 +1,7 @@
 Summary:        Tool to analyse BIOS DMI data
 Name:           dmidecode
 Version:        2.11
-Release:        4%{?dist}
+Release:        5%{?dist}
 Epoch:          1
 Group:          System Environment/Base
 License:        GPLv2+
@@ -9,6 +9,7 @@ Source0:        %{name}-%{version}.tar.bz2
 URL:            http://www.nongnu.org/dmidecode/
 Patch0:         dmidecode-2.11-type16-fix.patch
 Patch1:         dmidecode-2.11-smbios-271.patch
+Patch2:         dmidecode-2.11-chassis_fix.patch
 Buildroot:      %{_tmppath}/%{name}-%{version}-root
 BuildRequires:  automake autoconf
 ExclusiveArch:  %{ix86} x86_64 ia64
@@ -28,6 +29,7 @@ I/O ports (e.g. serial, parallel, USB).
 %setup -q
 %patch0 -p1 -b .type16_fix
 %patch1 -p1 -b .smbios271
+%patch2 -p1 -b .chassis_fix
 
 %build
 make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS"
@@ -51,9 +53,14 @@ rm -rf ${buildroot}
 %{_mandir}/man8/*
 
 %changelog
+* Mon Nov 14 2011 Anton Arapov <anton at redhat.com> - 1:2.11-5
+- Fix the wrong call of the dmi_chassis_type function call. Thus fix
+  an issue on the systems with the chassis lock available, application
+  doesn't fall out with the out of spec error anymore.
+
 * Tue May 03 2011 Anton Arapov <anton at redhat.com> - 1:2.11-4
-- update to SMBIOS 2.7.1
-- fix the boundaries check in type16
+- Update to SMBIOS 2.7.1
+- Fix the boundaries check in type16
 
 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1:2.11-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild


More information about the scm-commits mailing list