Accepting request 298254 from home:a_faerber:branches:Virtualization
Update SeaBIOS SMBIOS patch OBS-URL: https://build.opensuse.org/request/show/298254 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=252
This commit is contained in:
parent
02a079660d
commit
5c691bbfcf
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package libcacard
|
# spec file for package libcacard
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
@ -3,7 +3,6 @@ Wed Apr 15 00:34:53 UTC 2015 - agraf@suse.com
|
|||||||
|
|
||||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
|
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
|
||||||
- Fix s390x stoc instructions
|
- Fix s390x stoc instructions
|
||||||
* Patches added:
|
|
||||||
0039-s390x-Fix-stoc-direction.patch
|
0039-s390x-Fix-stoc-direction.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package qemu-linux-user
|
# spec file for package qemu-linux-user
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 20 16:43:58 UTC 2015 - afaerber@suse.de
|
||||||
|
|
||||||
|
- Update seabios_avoid_smbios_signature_string.patch with version
|
||||||
|
applied upstream
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 15 00:34:50 UTC 2015 - agraf@suse.com
|
Wed Apr 15 00:34:50 UTC 2015 - agraf@suse.com
|
||||||
|
|
||||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
|
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
|
||||||
- Fix s390x stoc instructions
|
- Fix s390x stoc instructions
|
||||||
* Patches added:
|
|
||||||
0039-s390x-Fix-stoc-direction.patch
|
0039-s390x-Fix-stoc-direction.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package qemu-testsuite
|
# spec file for package qemu-testsuite
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 20 16:43:58 UTC 2015 - afaerber@suse.de
|
||||||
|
|
||||||
|
- Update seabios_avoid_smbios_signature_string.patch with version
|
||||||
|
applied upstream
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 15 00:34:50 UTC 2015 - agraf@suse.com
|
Wed Apr 15 00:34:50 UTC 2015 - agraf@suse.com
|
||||||
|
|
||||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
|
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
|
||||||
- Fix s390x stoc instructions
|
- Fix s390x stoc instructions
|
||||||
* Patches added:
|
|
||||||
0039-s390x-Fix-stoc-direction.patch
|
0039-s390x-Fix-stoc-direction.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package qemu
|
# spec file for package qemu
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
@ -1,34 +1,70 @@
|
|||||||
From 2e978dc652969f6a7089713d8f726dda23a98205 Mon Sep 17 00:00:00 2001
|
From 9d3c06336ec443b6763c92f929013afcfce70c4a Mon Sep 17 00:00:00 2001
|
||||||
From: Bruce Rogers <brogers@suse.com>
|
From: Kevin O'Connor <kevin@koconnor.net>
|
||||||
Date: Fri, 27 Mar 2015 18:03:36 -0600
|
Date: Thu, 9 Apr 2015 11:57:44 -0400
|
||||||
Subject: [PATCH] smbios: avoid having an arbitrary _SM_ string located in F
|
Subject: [PATCH] smbios: Use integer signature instead of string signature
|
||||||
segment
|
|
||||||
|
|
||||||
The way the SMBIOS table is located is to search the F segment for
|
Change the smbios structure to use a 4 byte u32 signature field
|
||||||
the byte sequence _SM_ located at the beginning of a paragragh.
|
instead of a 4 byte character string field. In practice, this allows
|
||||||
It was found that SeaBIOS has a "_SM_" string contained within
|
the compiler to place the signature in the initialize code segment and
|
||||||
the image which is not part of the SMBIOS table, and it was located
|
thus makes it less likely the signature would be found in the
|
||||||
ahead of the actual SMBIOS table, causing obvious problems.
|
f-segment. (If the smbios signature is found in the f-segment it can
|
||||||
|
confuse some table scans.)
|
||||||
|
|
||||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
Reviewed-by: Bruce Rogers <brogers@suse.com>
|
||||||
|
Tested-by: Bruce Rogers <brogers@suse.com>
|
||||||
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
||||||
|
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||||
---
|
---
|
||||||
src/fw/biostables.c | 3 ++-
|
src/fw/biostables.c | 2 +-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
src/fw/smbios.c | 2 +-
|
||||||
|
src/std/smbios.h | 4 +++-
|
||||||
|
3 files changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/fw/biostables.c b/src/fw/biostables.c
|
diff --git a/src/fw/biostables.c b/src/fw/biostables.c
|
||||||
index 50a891b..568f404 100644
|
index 50a891b..450aca2 100644
|
||||||
--- a/src/fw/biostables.c
|
--- a/src/fw/biostables.c
|
||||||
+++ b/src/fw/biostables.c
|
+++ b/src/fw/biostables.c
|
||||||
@@ -271,7 +271,8 @@ copy_smbios(void *pos)
|
@@ -271,7 +271,7 @@ copy_smbios(void *pos)
|
||||||
if (SMBiosAddr)
|
if (SMBiosAddr)
|
||||||
return;
|
return;
|
||||||
struct smbios_entry_point *p = pos;
|
struct smbios_entry_point *p = pos;
|
||||||
- if (memcmp(p->anchor_string, "_SM_", 4))
|
- if (memcmp(p->anchor_string, "_SM_", 4))
|
||||||
+ // avoid storing the _SM_ string - it's problematic!
|
+ if (p->signature != SMBIOS_SIGNATURE)
|
||||||
+ if (memcmp(p->anchor_string, "_SM", 3) || p->anchor_string[3] != '_' )
|
|
||||||
return;
|
return;
|
||||||
if (checksum(pos, 0x10) != 0)
|
if (checksum(pos, 0x10) != 0)
|
||||||
return;
|
return;
|
||||||
--
|
diff --git a/src/fw/smbios.c b/src/fw/smbios.c
|
||||||
1.9.0
|
index dba0541..f3b5ad9 100644
|
||||||
|
--- a/src/fw/smbios.c
|
||||||
|
+++ b/src/fw/smbios.c
|
||||||
|
@@ -37,7 +37,7 @@ smbios_entry_point_setup(u16 max_structure_size,
|
||||||
|
|
||||||
|
struct smbios_entry_point ep;
|
||||||
|
memset(&ep, 0, sizeof(ep));
|
||||||
|
- memcpy(ep.anchor_string, "_SM_", 4);
|
||||||
|
+ ep.signature = SMBIOS_SIGNATURE;
|
||||||
|
ep.length = 0x1f;
|
||||||
|
ep.smbios_major_version = 2;
|
||||||
|
ep.smbios_minor_version = 4;
|
||||||
|
diff --git a/src/std/smbios.h b/src/std/smbios.h
|
||||||
|
index 0513716..4ccf2ea 100644
|
||||||
|
--- a/src/std/smbios.h
|
||||||
|
+++ b/src/std/smbios.h
|
||||||
|
@@ -3,11 +3,13 @@
|
||||||
|
|
||||||
|
#include "types.h" // u32
|
||||||
|
|
||||||
|
+#define SMBIOS_SIGNATURE 0x5f4d535f // "_SM_"
|
||||||
|
+
|
||||||
|
/* SMBIOS entry point -- must be written to a 16-bit aligned address
|
||||||
|
between 0xf0000 and 0xfffff.
|
||||||
|
*/
|
||||||
|
struct smbios_entry_point {
|
||||||
|
- char anchor_string[4];
|
||||||
|
+ u32 signature;
|
||||||
|
u8 checksum;
|
||||||
|
u8 length;
|
||||||
|
u8 smbios_major_version;
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user