Hello community, here is the log from the commit of package qemu for openSUSE:Factory checked in at 2018-03-24 16:04:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qemu (Old) and /work/SRC/openSUSE:Factory/.qemu.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qemu" Sat Mar 24 16:04:27 2018 rev:137 rq:587591 version:2.11.1 Changes: -------- --- /work/SRC/openSUSE:Factory/qemu/qemu-linux-user.changes 2018-02-24 16:37:53.932646747 +0100 +++ /work/SRC/openSUSE:Factory/.qemu.new/qemu-linux-user.changes 2018-03-24 16:04:29.415051374 +0100 @@ -1,0 +2,29 @@ +Wed Mar 14 18:41:50 UTC 2018 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.11 +* Patches dropped: + 0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch + +------------------------------------------------------------------- --- /work/SRC/openSUSE:Factory/qemu/qemu-testsuite.changes 2018-02-24 16:37:54.160638541 +0100 +++ /work/SRC/openSUSE:Factory/.qemu.new/qemu-testsuite.changes 2018-03-24 16:04:30.775002349 +0100 @@ -1,0 +2,47 @@ +Wed Mar 14 18:41:48 UTC 2018 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- 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 - [email protected] + +- 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. + +------------------------------------------------------------------- qemu.changes: same change Old: ---- 0076-i386-Compensate-for-KVM-SPEC_CTRL-f.patch New: ---- 0076-smbios-support-setting-OEM-strings-.patch 0077-smbios-Add-1-terminator-if-any-stri.patch 0078-Remove-problematic-evdev-86-key-fro.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qemu-linux-user.spec ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.214842295 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.214842295 +0100 @@ -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 @@ 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 @@ %patch0074 -p1 %patch0075 -p1 %patch0076 -p1 +%patch0077 -p1 +%patch0078 -p1 %build ./configure \ ++++++ qemu-testsuite.spec ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.242841286 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.246841141 +0100 @@ -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 @@ 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 @@ %patch0074 -p1 %patch0075 -p1 %patch0076 -p1 +%patch0077 -p1 +%patch0078 -p1 %if 0%{?suse_version} > 1320 %patch1000 -p1 ++++++ qemu.spec ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.266840421 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.270840276 +0100 @@ -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 @@ 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 @@ %patch0074 -p1 %patch0075 -p1 %patch0076 -p1 +%patch0077 -p1 +%patch0078 -p1 %if 0%{?suse_version} > 1320 %patch1000 -p1 ++++++ 0076-smbios-support-setting-OEM-strings-.patch ++++++ >From 3eb1915349b247cd88fd050c0caf37070b5e6977 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" <[email protected]> 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 <[email protected]> Reviewed-by: Michael S. Tsirkin <[email protected]> Signed-off-by: Michael S. Tsirkin <[email protected]> (cherry picked from commit 2d6dcbf93fb01b4a7f45a93d276d4d74b16392dd) [BR: FATE#323624] Signed-off-by: Bruce Rogers <[email protected]> --- 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; ++++++ 0077-smbios-Add-1-terminator-if-any-stri.patch ++++++ >From 2327abe59d36fda675560f955923a638fd1eed0d Mon Sep 17 00:00:00 2001 From: Lin Ma <[email protected]> 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 <[email protected]> --- 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 */ ++++++ 0078-Remove-problematic-evdev-86-key-fro.patch ++++++ >From 3c263c86795e5c2325ccdc4ac098a37c60eeb8c4 Mon Sep 17 00:00:00 2001 From: Adam Williamson <[email protected]> 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 <[email protected]> --- 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 ++++++ qemu-ifup ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.782821819 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.786821675 +0100 @@ -7,7 +7,7 @@ # 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 @@ 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 ++++++ supported.arm.txt ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.926816628 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.926816628 +0100 @@ -716,6 +716,8 @@ 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 ++++++ supported.ppc.txt ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.954815619 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.954815619 +0100 @@ -654,6 +654,8 @@ 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 ++++++ supported.s390.txt ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:35.986814466 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:35.990814321 +0100 @@ -679,6 +679,8 @@ nbd-server-add nbd-server-start nbd-server-stop + query-sev + query-sev-launch-measure query-tpm query-tpm-models query-tpm-types ++++++ supported.x86.txt ++++++ --- /var/tmp/diff_new_pack.Bl9QRo/_old 2018-03-24 16:04:36.026813024 +0100 +++ /var/tmp/diff_new_pack.Bl9QRo/_new 2018-03-24 16:04:36.026813024 +0100 @@ -774,6 +774,8 @@ 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
