Accepting request 587591 from Virtualization
A smattering of bug fixes. OBS-URL: https://build.opensuse.org/request/show/587591 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qemu?expand=0&rev=137
This commit is contained in:
commit
e51132434d
@ -1,37 +0,0 @@
|
||||
From 4e5e2c853977dc27ddab5937e55d181e7f1b5d2a Mon Sep 17 00:00:00 2001
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 22 Feb 2018 04:48:07 -0700
|
||||
Subject: [PATCH] i386: Compensate for KVM SPEC_CTRL feature availability bug
|
||||
|
||||
As we move away from the quick and dirty qemu solution for
|
||||
Spectre v2, it was found that KVM wasn't reporting the SPEC_CTRL
|
||||
feature when it in fact was present due to microcode update.
|
||||
This patch compensates for that bug by checking for the feature
|
||||
in QEMU code (like the quick and dirty solution did), instead of
|
||||
simply relying on KVM for that information.
|
||||
[BR: BSC#1082276]
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
target/i386/cpu.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||
index a7e27f3bbf..5c34175f3f 100644
|
||||
--- a/target/i386/cpu.c
|
||||
+++ b/target/i386/cpu.c
|
||||
@@ -2824,6 +2824,14 @@ static uint32_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||
r = kvm_arch_get_supported_cpuid(kvm_state, wi->cpuid_eax,
|
||||
wi->cpuid_ecx,
|
||||
wi->cpuid_reg);
|
||||
+ // BUG!!! We need to compensate for a KVM bug where it doesn't
|
||||
+ // correctly report support for IBRS (bsc#1082276)
|
||||
+ if (w == FEAT_7_0_EDX) {
|
||||
+ uint32_t edx;
|
||||
+ host_cpuid(7, 0, NULL, NULL, NULL, &edx);
|
||||
+#define CPUID_7_0_EDX_PRED_CMD (1U << 27)
|
||||
+ r |= edx & (CPUID_7_0_EDX_SPEC_CTRL | CPUID_7_0_EDX_PRED_CMD);
|
||||
+ }
|
||||
} else if (tcg_enabled()) {
|
||||
r = wi->tcg_features;
|
||||
} else {
|
215
0076-smbios-support-setting-OEM-strings-.patch
Normal file
215
0076-smbios-support-setting-OEM-strings-.patch
Normal file
@ -0,0 +1,215 @@
|
||||
From 3eb1915349b247cd88fd050c0caf37070b5e6977 Mon Sep 17 00:00:00 2001
|
||||
From: "Daniel P. Berrange" <berrange@redhat.com>
|
||||
Date: Sat, 28 Oct 2017 21:51:36 +0100
|
||||
Subject: [PATCH] smbios: support setting OEM strings table
|
||||
|
||||
The cloud-init program currently allows fetching of its data by repurposing of
|
||||
the 'system' type 'serial' field. This is a clear abuse of the serial field that
|
||||
would clash with other valid usage a virt management app might have for that
|
||||
field.
|
||||
|
||||
Fortunately the SMBIOS defines an "OEM Strings" table whose puporse is to allow
|
||||
exposing of arbitrary vendor specific strings to the operating system. This is
|
||||
perfect for use with cloud-init, or as a way to pass arguments to OS installers
|
||||
such as anaconda.
|
||||
|
||||
This patch makes it easier to support this with QEMU. e.g.
|
||||
|
||||
$QEMU -smbios type=11,value=Hello,value=World,value=Tricky,,value=test
|
||||
|
||||
Which results in the guest seeing dmidecode data
|
||||
|
||||
Handle 0x0E00, DMI type 11, 5 bytes
|
||||
OEM Strings
|
||||
String 1: Hello
|
||||
String 2: World
|
||||
String 3: Tricky,value=test
|
||||
|
||||
It is suggested that any app wanting to make use of this OEM strings capability
|
||||
for accepting data from the host mgmt layer should use its name as a string
|
||||
prefix. e.g. to expose OEM strings targetting both cloud init and anaconda in
|
||||
parallel the mgmt app could set
|
||||
|
||||
$QEMU -smbios type=11,value=cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/,\
|
||||
value=anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os
|
||||
|
||||
which would appear as
|
||||
|
||||
Handle 0x0E00, DMI type 11, 5 bytes
|
||||
OEM Strings
|
||||
String 1: cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/
|
||||
String 2: anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os
|
||||
|
||||
Use of such string prefixes means the app won't have to care which string slot
|
||||
its data appears in.
|
||||
|
||||
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
(cherry picked from commit 2d6dcbf93fb01b4a7f45a93d276d4d74b16392dd)
|
||||
[BR: FATE#323624]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
hw/smbios/smbios.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
hw/smbios/smbios_build.h | 12 ++++++++
|
||||
include/hw/smbios/smbios.h | 6 ++++
|
||||
3 files changed, 90 insertions(+)
|
||||
|
||||
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
|
||||
index 1a5437a07d..5d11f01874 100644
|
||||
--- a/hw/smbios/smbios.c
|
||||
+++ b/hw/smbios/smbios.c
|
||||
@@ -95,6 +95,11 @@ static struct {
|
||||
const char *sock_pfx, *manufacturer, *version, *serial, *asset, *part;
|
||||
} type4;
|
||||
|
||||
+static struct {
|
||||
+ size_t nvalues;
|
||||
+ const char **values;
|
||||
+} type11;
|
||||
+
|
||||
static struct {
|
||||
const char *loc_pfx, *bank, *manufacturer, *serial, *asset, *part;
|
||||
uint16_t speed;
|
||||
@@ -282,6 +287,14 @@ static const QemuOptDesc qemu_smbios_type4_opts[] = {
|
||||
{ /* end of list */ }
|
||||
};
|
||||
|
||||
+static const QemuOptDesc qemu_smbios_type11_opts[] = {
|
||||
+ {
|
||||
+ .name = "value",
|
||||
+ .type = QEMU_OPT_STRING,
|
||||
+ .help = "OEM string data",
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static const QemuOptDesc qemu_smbios_type17_opts[] = {
|
||||
{
|
||||
.name = "type",
|
||||
@@ -590,6 +603,27 @@ static void smbios_build_type_4_table(unsigned instance)
|
||||
smbios_type4_count++;
|
||||
}
|
||||
|
||||
+static void smbios_build_type_11_table(void)
|
||||
+{
|
||||
+ char count_str[128];
|
||||
+ size_t i;
|
||||
+
|
||||
+ if (type11.nvalues == 0) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ SMBIOS_BUILD_TABLE_PRE(11, 0xe00, true); /* required */
|
||||
+
|
||||
+ snprintf(count_str, sizeof(count_str), "%zu", type11.nvalues);
|
||||
+ t->count = type11.nvalues;
|
||||
+
|
||||
+ for (i = 0; i < type11.nvalues; i++) {
|
||||
+ SMBIOS_TABLE_SET_STR_LIST(11, type11.values[i]);
|
||||
+ }
|
||||
+
|
||||
+ SMBIOS_BUILD_TABLE_POST;
|
||||
+}
|
||||
+
|
||||
#define ONE_KB ((ram_addr_t)1 << 10)
|
||||
#define ONE_MB ((ram_addr_t)1 << 20)
|
||||
#define ONE_GB ((ram_addr_t)1 << 30)
|
||||
@@ -832,6 +866,8 @@ void smbios_get_tables(const struct smbios_phys_mem_area *mem_array,
|
||||
smbios_build_type_4_table(i);
|
||||
}
|
||||
|
||||
+ smbios_build_type_11_table();
|
||||
+
|
||||
#define MAX_DIMM_SZ (16ll * ONE_GB)
|
||||
#define GET_DIMM_SZ ((i < dimm_cnt - 1) ? MAX_DIMM_SZ \
|
||||
: ((ram_size - 1) % MAX_DIMM_SZ) + 1)
|
||||
@@ -882,6 +918,38 @@ static void save_opt(const char **dest, QemuOpts *opts, const char *name)
|
||||
}
|
||||
}
|
||||
|
||||
+
|
||||
+struct opt_list {
|
||||
+ const char *name;
|
||||
+ size_t *ndest;
|
||||
+ const char ***dest;
|
||||
+};
|
||||
+
|
||||
+static int save_opt_one(void *opaque,
|
||||
+ const char *name, const char *value,
|
||||
+ Error **errp)
|
||||
+{
|
||||
+ struct opt_list *opt = opaque;
|
||||
+
|
||||
+ if (!g_str_equal(name, opt->name)) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ *opt->dest = g_renew(const char *, *opt->dest, (*opt->ndest) + 1);
|
||||
+ (*opt->dest)[*opt->ndest] = value;
|
||||
+ (*opt->ndest)++;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void save_opt_list(size_t *ndest, const char ***dest,
|
||||
+ QemuOpts *opts, const char *name)
|
||||
+{
|
||||
+ struct opt_list opt = {
|
||||
+ name, ndest, dest,
|
||||
+ };
|
||||
+ qemu_opt_foreach(opts, save_opt_one, &opt, NULL);
|
||||
+}
|
||||
+
|
||||
void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
{
|
||||
const char *val;
|
||||
@@ -1035,6 +1103,10 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
save_opt(&type4.asset, opts, "asset");
|
||||
save_opt(&type4.part, opts, "part");
|
||||
return;
|
||||
+ case 11:
|
||||
+ qemu_opts_validate(opts, qemu_smbios_type11_opts, &error_fatal);
|
||||
+ save_opt_list(&type11.nvalues, &type11.values, opts, "value");
|
||||
+ return;
|
||||
case 17:
|
||||
qemu_opts_validate(opts, qemu_smbios_type17_opts, &error_fatal);
|
||||
save_opt(&type17.loc_pfx, opts, "loc_pfx");
|
||||
diff --git a/hw/smbios/smbios_build.h b/hw/smbios/smbios_build.h
|
||||
index 68b8b72e09..93b360d520 100644
|
||||
--- a/hw/smbios/smbios_build.h
|
||||
+++ b/hw/smbios/smbios_build.h
|
||||
@@ -63,6 +63,18 @@ extern unsigned smbios_table_cnt;
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
+#define SMBIOS_TABLE_SET_STR_LIST(tbl_type, value) \
|
||||
+ do { \
|
||||
+ int len = (value != NULL) ? strlen(value) + 1 : 0; \
|
||||
+ if (len > 1) { \
|
||||
+ smbios_tables = g_realloc(smbios_tables, \
|
||||
+ smbios_tables_len + len); \
|
||||
+ memcpy(smbios_tables + smbios_tables_len, value, len); \
|
||||
+ smbios_tables_len += len; \
|
||||
+ ++str_index; \
|
||||
+ } \
|
||||
+ } while (0)
|
||||
+
|
||||
#define SMBIOS_BUILD_TABLE_POST \
|
||||
do { \
|
||||
size_t term_cnt, t_size; \
|
||||
diff --git a/include/hw/smbios/smbios.h b/include/hw/smbios/smbios.h
|
||||
index 31e8d5f47e..a83adb93d7 100644
|
||||
--- a/include/hw/smbios/smbios.h
|
||||
+++ b/include/hw/smbios/smbios.h
|
||||
@@ -195,6 +195,12 @@ struct smbios_type_4 {
|
||||
uint16_t processor_family2;
|
||||
} QEMU_PACKED;
|
||||
|
||||
+/* SMBIOS type 11 - OEM strings */
|
||||
+struct smbios_type_11 {
|
||||
+ struct smbios_structure_header header;
|
||||
+ uint8_t count;
|
||||
+} QEMU_PACKED;
|
||||
+
|
||||
/* SMBIOS type 16 - Physical Memory Array (v2.7) */
|
||||
struct smbios_type_16 {
|
||||
struct smbios_structure_header header;
|
192
0077-smbios-Add-1-terminator-if-any-stri.patch
Normal file
192
0077-smbios-Add-1-terminator-if-any-stri.patch
Normal file
@ -0,0 +1,192 @@
|
||||
From 2327abe59d36fda675560f955923a638fd1eed0d Mon Sep 17 00:00:00 2001
|
||||
From: Lin Ma <lma@suse.com>
|
||||
Date: Wed, 14 Mar 2018 14:31:26 +0800
|
||||
Subject: [PATCH] smbios: Add 1 terminator if any string fields defined in
|
||||
given table.
|
||||
|
||||
If user specifies smbios table files through qemu command line, Then will
|
||||
get error messages while decoding those table content in guest.
|
||||
|
||||
Reproducer:
|
||||
1. dump a smbios table(say table 1) to a binary file from a pc.
|
||||
2. load the binary file through command line: 'qemu -smbios file=...'.
|
||||
3. perform 'dmidecode' or 'dmidecode -t 1' in guest.
|
||||
|
||||
It reports 'Invalid entry length...' because qemu doesn't add terminator(s)
|
||||
correctly for the table.
|
||||
|
||||
This patch fixed the issue by:
|
||||
|
||||
For smbios tables which have string fields provided, qemu should add 1 terminator.
|
||||
For smbios tables which dont have string fields provided, qemu should add 2.
|
||||
|
||||
[LM: BSC#994082]
|
||||
[LM: BSC#1084316]
|
||||
Signed-off-by: Lin Ma <lma@suse.com>
|
||||
---
|
||||
hw/smbios/smbios.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
include/hw/smbios/smbios.h | 44 +++++++++++++++++++++++
|
||||
2 files changed, 134 insertions(+)
|
||||
|
||||
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
|
||||
index 5d11f01874..d9f5f1ef70 100644
|
||||
--- a/hw/smbios/smbios.c
|
||||
+++ b/hw/smbios/smbios.c
|
||||
@@ -954,6 +954,9 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
{
|
||||
const char *val;
|
||||
|
||||
+ int i, terminator_count = 2, table_str_field_count = 0;
|
||||
+ int *tables_str_field_offset = NULL;
|
||||
+
|
||||
assert(!smbios_immutable);
|
||||
|
||||
val = qemu_opt_get(opts, "file");
|
||||
@@ -995,7 +998,94 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
smbios_type4_count++;
|
||||
}
|
||||
|
||||
+ switch (header->type) {
|
||||
+ case 0:
|
||||
+ tables_str_field_offset = g_malloc0(sizeof(int) * \
|
||||
+ TYPE_0_STR_FIELD_COUNT);
|
||||
+ tables_str_field_offset = (int []){\
|
||||
+ TYPE_0_STR_FIELD_OFFSET_VENDOR, \
|
||||
+ TYPE_0_STR_FIELD_OFFSET_BIOS_VERSION, \
|
||||
+ TYPE_0_STR_FIELD_OFFSET_BIOS_RELEASE_DATE};
|
||||
+ table_str_field_count = sizeof(tables_str_field_offset) / \
|
||||
+ sizeof(tables_str_field_offset[0]);
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ tables_str_field_offset = g_malloc0(sizeof(int) * \
|
||||
+ TYPE_1_STR_FIELD_COUNT);
|
||||
+ tables_str_field_offset = (int []){
|
||||
+ TYPE_1_STR_FIELD_OFFSET_MANUFACTURER, \
|
||||
+ TYPE_1_STR_FIELD_OFFSET_PRODUCT, \
|
||||
+ TYPE_1_STR_FIELD_OFFSET_VERSION, \
|
||||
+ TYPE_1_STR_FIELD_OFFSET_SERIAL, \
|
||||
+ TYPE_1_STR_FIELD_OFFSET_SKU, \
|
||||
+ TYPE_1_STR_FIELD_OFFSET_FAMILY};
|
||||
+ table_str_field_count = sizeof(tables_str_field_offset) / \
|
||||
+ sizeof(tables_str_field_offset[0]);
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ tables_str_field_offset = g_malloc0(sizeof(int) * \
|
||||
+ TYPE_2_STR_FIELD_COUNT);
|
||||
+ tables_str_field_offset = (int []){\
|
||||
+ TYPE_2_STR_FIELD_OFFSET_MANUFACTURER, \
|
||||
+ TYPE_2_STR_FIELD_OFFSET_PRODUCT, \
|
||||
+ TYPE_2_STR_FIELD_OFFSET_VERSION, \
|
||||
+ TYPE_2_STR_FIELD_OFFSET_SERIAL, \
|
||||
+ TYPE_2_STR_FIELD_OFFSET_ASSET, \
|
||||
+ TYPE_2_STR_FIELD_OFFSET_LOCATION};
|
||||
+ table_str_field_count = sizeof(tables_str_field_offset) / \
|
||||
+ sizeof(tables_str_field_offset[0]);
|
||||
+ break;
|
||||
+ case 3:
|
||||
+ tables_str_field_offset = g_malloc0(sizeof(int) * \
|
||||
+ TYPE_3_STR_FIELD_COUNT);
|
||||
+ tables_str_field_offset = (int []){\
|
||||
+ TYPE_3_STR_FIELD_OFFSET_MANUFACTURER, \
|
||||
+ TYPE_3_STR_FIELD_OFFSET_VERSION, \
|
||||
+ TYPE_3_STR_FIELD_OFFSET_SERIAL, \
|
||||
+ TYPE_3_STR_FIELD_OFFSET_ASSET, \
|
||||
+ TYPE_3_STR_FIELD_OFFSET_SKU};
|
||||
+ table_str_field_count = sizeof(tables_str_field_offset) / \
|
||||
+ sizeof(tables_str_field_offset[0]);
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ tables_str_field_offset = g_malloc0(sizeof(int) * \
|
||||
+ TYPE_4_STR_FIELD_COUNT);
|
||||
+ tables_str_field_offset = (int []){\
|
||||
+ TYPE_4_STR_FIELD_OFFSET_SOCKET, \
|
||||
+ TYPE_4_STR_FIELD_OFFSET_PROCESSOR_MANUFACTURER, \
|
||||
+ TYPE_4_STR_FIELD_OFFSET_PROCESSOR_VERSION, \
|
||||
+ TYPE_4_STR_FIELD_OFFSET_SERIAL, \
|
||||
+ TYPE_4_STR_FIELD_OFFSET_ASSET, \
|
||||
+ TYPE_4_STR_FIELD_OFFSET_PART};
|
||||
+ table_str_field_count = sizeof(tables_str_field_offset) / \
|
||||
+ sizeof(tables_str_field_offset[0]);
|
||||
+ break;
|
||||
+ case 17:
|
||||
+ tables_str_field_offset = g_malloc0(sizeof(int) * \
|
||||
+ TYPE_17_STR_FIELD_COUNT);
|
||||
+ tables_str_field_offset = (int []){\
|
||||
+ TYPE_17_STR_FIELD_OFFSET_DEVICE_LOCATOR, \
|
||||
+ TYPE_17_STR_FIELD_OFFSET_BANK_LOCATOR, \
|
||||
+ TYPE_17_STR_FIELD_OFFSET_MANUFACTURER, \
|
||||
+ TYPE_17_STR_FIELD_OFFSET_SERIAL, \
|
||||
+ TYPE_17_STR_FIELD_OFFSET_ASSET, \
|
||||
+ TYPE_17_STR_FIELD_OFFSET_PART};
|
||||
+ table_str_field_count = sizeof(tables_str_field_offset) / \
|
||||
+ sizeof(tables_str_field_offset[0]);
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < table_str_field_count; i++) {
|
||||
+ if (*(uint8_t *)(smbios_tables + tables_str_field_offset[i]) > 0) {
|
||||
+ terminator_count = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
smbios_tables_len += size;
|
||||
+ smbios_tables_len += terminator_count;
|
||||
if (size > smbios_table_max) {
|
||||
smbios_table_max = size;
|
||||
}
|
||||
diff --git a/include/hw/smbios/smbios.h b/include/hw/smbios/smbios.h
|
||||
index a83adb93d7..6613f68ad1 100644
|
||||
--- a/include/hw/smbios/smbios.h
|
||||
+++ b/include/hw/smbios/smbios.h
|
||||
@@ -273,4 +273,48 @@ void smbios_get_tables(const struct smbios_phys_mem_area *mem_array,
|
||||
const unsigned int mem_array_size,
|
||||
uint8_t **tables, size_t *tables_len,
|
||||
uint8_t **anchor, size_t *anchor_len);
|
||||
+
|
||||
+#define TYPE_0_STR_FIELD_OFFSET_VENDOR 0x4
|
||||
+#define TYPE_0_STR_FIELD_OFFSET_BIOS_VERSION 0x5
|
||||
+#define TYPE_0_STR_FIELD_OFFSET_BIOS_RELEASE_DATE 0x8
|
||||
+#define TYPE_0_STR_FIELD_COUNT 3
|
||||
+
|
||||
+#define TYPE_1_STR_FIELD_OFFSET_MANUFACTURER 0x4
|
||||
+#define TYPE_1_STR_FIELD_OFFSET_PRODUCT 0x5
|
||||
+#define TYPE_1_STR_FIELD_OFFSET_VERSION 0x6
|
||||
+#define TYPE_1_STR_FIELD_OFFSET_SERIAL 0x7
|
||||
+#define TYPE_1_STR_FIELD_OFFSET_SKU 0x19
|
||||
+#define TYPE_1_STR_FIELD_OFFSET_FAMILY 0x1a
|
||||
+#define TYPE_1_STR_FIELD_COUNT 6
|
||||
+
|
||||
+#define TYPE_2_STR_FIELD_OFFSET_MANUFACTURER 0x4
|
||||
+#define TYPE_2_STR_FIELD_OFFSET_PRODUCT 0x5
|
||||
+#define TYPE_2_STR_FIELD_OFFSET_VERSION 0x6
|
||||
+#define TYPE_2_STR_FIELD_OFFSET_SERIAL 0x7
|
||||
+#define TYPE_2_STR_FIELD_OFFSET_ASSET 0x8
|
||||
+#define TYPE_2_STR_FIELD_OFFSET_LOCATION 0xa
|
||||
+#define TYPE_2_STR_FIELD_COUNT 6
|
||||
+
|
||||
+#define TYPE_3_STR_FIELD_OFFSET_MANUFACTURER 0x4
|
||||
+#define TYPE_3_STR_FIELD_OFFSET_VERSION 0x6
|
||||
+#define TYPE_3_STR_FIELD_OFFSET_SERIAL 0x7
|
||||
+#define TYPE_3_STR_FIELD_OFFSET_ASSET 0x8
|
||||
+#define TYPE_3_STR_FIELD_OFFSET_SKU 0x14
|
||||
+#define TYPE_3_STR_FIELD_COUNT 5
|
||||
+
|
||||
+#define TYPE_4_STR_FIELD_OFFSET_SOCKET 0x4
|
||||
+#define TYPE_4_STR_FIELD_OFFSET_PROCESSOR_MANUFACTURER 0x7
|
||||
+#define TYPE_4_STR_FIELD_OFFSET_PROCESSOR_VERSION 0x10
|
||||
+#define TYPE_4_STR_FIELD_OFFSET_SERIAL 0x20
|
||||
+#define TYPE_4_STR_FIELD_OFFSET_ASSET 0x21
|
||||
+#define TYPE_4_STR_FIELD_OFFSET_PART 0x22
|
||||
+#define TYPE_4_STR_FIELD_COUNT 6
|
||||
+
|
||||
+#define TYPE_17_STR_FIELD_OFFSET_DEVICE_LOCATOR 0x10
|
||||
+#define TYPE_17_STR_FIELD_OFFSET_BANK_LOCATOR 0x11
|
||||
+#define TYPE_17_STR_FIELD_OFFSET_MANUFACTURER 0x17
|
||||
+#define TYPE_17_STR_FIELD_OFFSET_SERIAL 0x18
|
||||
+#define TYPE_17_STR_FIELD_OFFSET_ASSET 0x19
|
||||
+#define TYPE_17_STR_FIELD_OFFSET_PART 0x1a
|
||||
+#define TYPE_17_STR_FIELD_COUNT 6
|
||||
#endif /* QEMU_SMBIOS_H */
|
32
0078-Remove-problematic-evdev-86-key-fro.patch
Normal file
32
0078-Remove-problematic-evdev-86-key-fro.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 3c263c86795e5c2325ccdc4ac098a37c60eeb8c4 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Wed, 20 Dec 2017 15:43:07 -0800
|
||||
Subject: [PATCH] Remove problematic 'evdev 86' key from en-us keymap
|
||||
|
||||
This causes LP#1738283. Gerd will have to come up with a better
|
||||
fix, but just hacking out the problematic key definition should
|
||||
work for now.
|
||||
|
||||
[BR: We see this issue as well, eg via vnc]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
pc-bios/keymaps/en-us | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/keymaps/en-us b/pc-bios/keymaps/en-us
|
||||
index a70e03adc0..e518a9dc35 100644
|
||||
--- a/pc-bios/keymaps/en-us
|
||||
+++ b/pc-bios/keymaps/en-us
|
||||
@@ -343,12 +343,6 @@ KP_Decimal 0x53 numlock
|
||||
|
||||
# evdev 85 (0x55): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
|
||||
|
||||
-# evdev 86 (0x56), QKeyCode "less", number 0x56
|
||||
-less 0x56
|
||||
-greater 0x56 shift
|
||||
-bar 0x56 altgr
|
||||
-brokenbar 0x56 shift altgr
|
||||
-
|
||||
# evdev 87 (0x57), QKeyCode "f11", number 0x57
|
||||
F11 0x57
|
||||
|
@ -7,7 +7,7 @@ echo 'configuring qemu network with bridge for' $*
|
||||
# If bridge is not specified, try device with default route.
|
||||
bridge=$2
|
||||
if [ -z "$bridge" ]; then
|
||||
bridge=$(/sbin/ip route list | /usr/bin/awk '/^default / { print $5 }')
|
||||
bridge=$(/usr/sbin/ip route list | /usr/bin/awk '/^default / { print $5 }')
|
||||
fi
|
||||
|
||||
# Exit if $bridge is not a bridge. Exit with 0 status
|
||||
@ -19,5 +19,5 @@ then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
/sbin/ip link set $1 up
|
||||
/sbin/brctl addif $bridge $1 || true
|
||||
/usr/sbin/ip link set $1 up
|
||||
/usr/sbin/ip link set $1 master $bridge || true
|
||||
|
@ -1,3 +1,32 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 14 18:41:50 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
* Patches added:
|
||||
0078-Remove-problematic-evdev-86-key-fro.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 14 06:38:40 UTC 2018 - lma@suse.com
|
||||
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
* Patches added:
|
||||
0077-smbios-Add-1-terminator-if-any-stri.patch
|
||||
bsc#994082 and bsc#1084316
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 9 20:52:00 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
* Patches added:
|
||||
0076-smbios-support-setting-OEM-strings-.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 3 14:24:13 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
* Patches dropped:
|
||||
0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 22 12:01:25 UTC 2018 - brogers@suse.com
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
Name: qemu-linux-user
|
||||
Url: http://www.qemu.org/
|
||||
Summary: CPU emulator for user space
|
||||
License: BSD-3-Clause AND GPL-2.0 AND GPL-2.0+ AND LGPL-2.1+ AND MIT
|
||||
License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
|
||||
Group: System/Emulators/PC
|
||||
Version: 2.11.1
|
||||
Release: 0
|
||||
@ -101,7 +101,9 @@ Patch0072: 0072-tests-qmp-test-blacklist-query-sev-.patch
|
||||
Patch0073: 0073-sev-i386-add-migration-blocker.patch
|
||||
Patch0074: 0074-cpu-i386-populate-CPUID-0x8000_001F.patch
|
||||
Patch0075: 0075-migration-warn-about-inconsistent-s.patch
|
||||
Patch0076: 0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch
|
||||
Patch0076: 0076-smbios-support-setting-OEM-strings-.patch
|
||||
Patch0077: 0077-smbios-Add-1-terminator-if-any-stri.patch
|
||||
Patch0078: 0078-Remove-problematic-evdev-86-key-fro.patch
|
||||
# Please do not add QEMU patches manually here.
|
||||
# Run update_git.sh to regenerate this queue.
|
||||
Source400: update_git.sh
|
||||
@ -207,6 +209,8 @@ syscall layer occurs on the native hardware and operating system.
|
||||
%patch0074 -p1
|
||||
%patch0075 -p1
|
||||
%patch0076 -p1
|
||||
%patch0077 -p1
|
||||
%patch0078 -p1
|
||||
|
||||
%build
|
||||
./configure \
|
||||
|
@ -1,3 +1,50 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 14 18:41:48 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Fix issue with key codes in qemu v2.11
|
||||
0078-Remove-problematic-evdev-86-key-fro.patch
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 14 06:38:36 UTC 2018 - lma@suse.com
|
||||
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
* Patches added:
|
||||
0077-smbios-Add-1-terminator-if-any-stri.patch
|
||||
bsc#994082 and bsc#1084316
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 9 20:51:57 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Add support for setting OEM strings table (fate#323624)
|
||||
0076-smbios-support-setting-OEM-strings-.patch
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 3 14:24:10 UTC 2018 - brogers@suse.com
|
||||
|
||||
- SLE15 KVM (as targeted for RC1) now has the feature exposed.
|
||||
Drop the patch. (bsc#1082276)
|
||||
0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 2 16:31:15 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Change example qemu-ifup script to not depend on bridge-utils.
|
||||
Also update the paths used for ip binary.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 28 16:13:08 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Eliminate bogus use of CPUID_7_0_EDX_PRED_CMD which we've
|
||||
carried since the initial Spectre v2 patch was added. EDX bit
|
||||
27 of CPUID Leaf 07H, Sub-leaf 0 provides status on STIBP, and
|
||||
not the PRED_CMD MSR. Exposing the STIBP CPUID feature bit to the
|
||||
guest is wrong in general, since the VM doesn't directly control
|
||||
the scheduling of physical hyperthreads. This is left strictly to
|
||||
the L0 hypervisor.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 22 12:01:21 UTC 2018 - brogers@suse.com
|
||||
|
||||
|
@ -107,7 +107,7 @@
|
||||
Name: qemu-testsuite
|
||||
Url: http://www.qemu.org/
|
||||
Summary: Machine emulator and virtualizer
|
||||
License: BSD-3-Clause AND GPL-2.0 AND GPL-2.0+ AND LGPL-2.1+ AND MIT
|
||||
License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
|
||||
Group: System/Emulators/PC
|
||||
Version: 2.11.1
|
||||
Release: 0
|
||||
@ -205,7 +205,9 @@ Patch0072: 0072-tests-qmp-test-blacklist-query-sev-.patch
|
||||
Patch0073: 0073-sev-i386-add-migration-blocker.patch
|
||||
Patch0074: 0074-cpu-i386-populate-CPUID-0x8000_001F.patch
|
||||
Patch0075: 0075-migration-warn-about-inconsistent-s.patch
|
||||
Patch0076: 0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch
|
||||
Patch0076: 0076-smbios-support-setting-OEM-strings-.patch
|
||||
Patch0077: 0077-smbios-Add-1-terminator-if-any-stri.patch
|
||||
Patch0078: 0078-Remove-problematic-evdev-86-key-fro.patch
|
||||
# Please do not add QEMU patches manually here.
|
||||
# Run update_git.sh to regenerate this queue.
|
||||
|
||||
@ -881,6 +883,8 @@ This package provides a service file for starting and stopping KSM.
|
||||
%patch0074 -p1
|
||||
%patch0075 -p1
|
||||
%patch0076 -p1
|
||||
%patch0077 -p1
|
||||
%patch0078 -p1
|
||||
|
||||
%if 0%{?suse_version} > 1320
|
||||
%patch1000 -p1
|
||||
|
47
qemu.changes
47
qemu.changes
@ -1,3 +1,50 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 14 18:41:48 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Fix issue with key codes in qemu v2.11
|
||||
0078-Remove-problematic-evdev-86-key-fro.patch
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 14 06:38:36 UTC 2018 - lma@suse.com
|
||||
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
* Patches added:
|
||||
0077-smbios-Add-1-terminator-if-any-stri.patch
|
||||
bsc#994082 and bsc#1084316
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 9 20:51:57 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Add support for setting OEM strings table (fate#323624)
|
||||
0076-smbios-support-setting-OEM-strings-.patch
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 3 14:24:10 UTC 2018 - brogers@suse.com
|
||||
|
||||
- SLE15 KVM (as targeted for RC1) now has the feature exposed.
|
||||
Drop the patch. (bsc#1082276)
|
||||
0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch
|
||||
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 2 16:31:15 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Change example qemu-ifup script to not depend on bridge-utils.
|
||||
Also update the paths used for ip binary.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 28 16:13:08 UTC 2018 - brogers@suse.com
|
||||
|
||||
- Eliminate bogus use of CPUID_7_0_EDX_PRED_CMD which we've
|
||||
carried since the initial Spectre v2 patch was added. EDX bit
|
||||
27 of CPUID Leaf 07H, Sub-leaf 0 provides status on STIBP, and
|
||||
not the PRED_CMD MSR. Exposing the STIBP CPUID feature bit to the
|
||||
guest is wrong in general, since the VM doesn't directly control
|
||||
the scheduling of physical hyperthreads. This is left strictly to
|
||||
the L0 hypervisor.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 22 12:01:21 UTC 2018 - brogers@suse.com
|
||||
|
||||
|
@ -107,7 +107,7 @@
|
||||
Name: qemu
|
||||
Url: http://www.qemu.org/
|
||||
Summary: Machine emulator and virtualizer
|
||||
License: BSD-3-Clause AND GPL-2.0 AND GPL-2.0+ AND LGPL-2.1+ AND MIT
|
||||
License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
|
||||
Group: System/Emulators/PC
|
||||
Version: 2.11.1
|
||||
Release: 0
|
||||
@ -205,7 +205,9 @@ Patch0072: 0072-tests-qmp-test-blacklist-query-sev-.patch
|
||||
Patch0073: 0073-sev-i386-add-migration-blocker.patch
|
||||
Patch0074: 0074-cpu-i386-populate-CPUID-0x8000_001F.patch
|
||||
Patch0075: 0075-migration-warn-about-inconsistent-s.patch
|
||||
Patch0076: 0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch
|
||||
Patch0076: 0076-smbios-support-setting-OEM-strings-.patch
|
||||
Patch0077: 0077-smbios-Add-1-terminator-if-any-stri.patch
|
||||
Patch0078: 0078-Remove-problematic-evdev-86-key-fro.patch
|
||||
# Please do not add QEMU patches manually here.
|
||||
# Run update_git.sh to regenerate this queue.
|
||||
|
||||
@ -881,6 +883,8 @@ This package provides a service file for starting and stopping KSM.
|
||||
%patch0074 -p1
|
||||
%patch0075 -p1
|
||||
%patch0076 -p1
|
||||
%patch0077 -p1
|
||||
%patch0078 -p1
|
||||
|
||||
%if 0%{?suse_version} > 1320
|
||||
%patch1000 -p1
|
||||
|
@ -716,6 +716,8 @@ QEMU Command-Line and Monitor Syntax and Support
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-sev
|
||||
query-sev-launch-measure
|
||||
x-blockdev-change
|
||||
x-blockdev-insert-medium
|
||||
x-blockdev-remove-medium
|
||||
|
@ -654,6 +654,8 @@ QEMU Command-Line and Monitor Syntax and Support
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-sev
|
||||
query-sev-launch-measure
|
||||
x-blockdev-change
|
||||
x-blockdev-insert-medium
|
||||
x-blockdev-remove-medium
|
||||
|
@ -679,6 +679,8 @@ QEMU Command-Line and Monitor Syntax and Support
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-sev
|
||||
query-sev-launch-measure
|
||||
query-tpm
|
||||
query-tpm-models
|
||||
query-tpm-types
|
||||
|
@ -774,6 +774,8 @@ QEMU Command-Line and Monitor Syntax and Support
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-sev
|
||||
query-sev-launch-measure
|
||||
x-blockdev-change
|
||||
x-blockdev-insert-medium
|
||||
x-blockdev-remove-medium
|
||||
|
Loading…
Reference in New Issue
Block a user