qemu.git
2 years agomonitor: Replace monitor_init() with monitor_init_{hmp, qmp}()
Kevin Wolf [Thu, 13 Jun 2019 15:34:04 +0000 (17:34 +0200)] 
monitor: Replace monitor_init() with monitor_init_{hmp, qmp}()

Most callers know which monitor type they want to have. Instead of
calling monitor_init() with flags that can describe both types of
monitors, make monitor_init_{hmp,qmp}() public interfaces that take
specific bools instead of flags and call these functions directly.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20190613153405.24769-15-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Split Monitor.flags into separate bools
Kevin Wolf [Thu, 13 Jun 2019 15:34:03 +0000 (17:34 +0200)] 
monitor: Split Monitor.flags into separate bools

Monitor.flags contains three different flags: One to distinguish HMP
from QMP; one specific to HMP (MONITOR_USE_READLINE) that is ignored
with QMP; and another one specific to QMP (MONITOR_USE_PRETTY) that is
ignored with HMP.

Split the flags field into three bools and move them to the right
subclass. Flags are still in use for the monitor_init() interface.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20190613153405.24769-14-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Split out monitor/monitor.c
Kevin Wolf [Thu, 13 Jun 2019 15:34:02 +0000 (17:34 +0200)] 
monitor: Split out monitor/monitor.c

Move the monitor core infrastructure from monitor/misc.c to
monitor/monitor.c. This is code that can be shared for all targets, so
compile it only once.

What remains in monitor/misc.c after this patch is mostly monitor
command implementations (which could move to hmp-cmds.c or qmp-cmds.c
later) and code that requires a system emulator or is even
target-dependent (including HMP command completion code).

The amount of function and particularly extern variables in
monitor_int.h is probably a bit larger than it needs to be, but this way
no non-trivial code modifications are needed. The interfaces between all
monitor parts can be cleaned up later.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20190613153405.24769-13-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Superfluous #include dropped]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Split out monitor/hmp.c
Kevin Wolf [Thu, 13 Jun 2019 15:34:01 +0000 (17:34 +0200)] 
monitor: Split out monitor/hmp.c

Move HMP infrastructure from monitor/misc.c to monitor/hmp.c. This is
code that can be shared for all targets, so compile it only once.

The amount of function and particularly extern variables in
monitor_int.h is probably a bit larger than it needs to be, but this way
no non-trivial code modifications are needed. The interfaces between HMP
and the monitor core can be cleaned up later.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20190613153405.24769-12-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Comment reformatted to make checkpatch.pl happy, #include <dirent.h>
moved to fix Windows build, superfluous #include dropped]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Split out monitor/qmp.c
Kevin Wolf [Thu, 13 Jun 2019 15:34:00 +0000 (17:34 +0200)] 
monitor: Split out monitor/qmp.c

Move QMP infrastructure from monitor/misc.c to monitor/qmp.c. This is
code that can be shared for all targets, so compile it only once.

The amount of function and particularly extern variables in
monitor_int.h is probably a bit larger than it needs to be, but this way
no non-trivial code modifications are needed. The interfaces between QMP
and the monitor core can be cleaned up later.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190613153405.24769-11-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[monitor_is_qmp() tidied up to make checkpatch.pl happy,
superfluous #include dropped]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Create monitor-internal.h with common definitions
Kevin Wolf [Thu, 13 Jun 2019 15:33:59 +0000 (17:33 +0200)] 
monitor: Create monitor-internal.h with common definitions

Before we can split monitor/misc.c, we need to create a header file that
contains the common definitions that will be used by multiple source
files.

For a start, add the type definitions for Monitor, MonitorHMP and
MonitorQMP and their dependencies. We'll add functions as needed when
splitting monitor/misc.c.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190613153405.24769-10-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Header guard symbol tidied up, superfluous #include dropped, FIXME in
hmp_change() resolved]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Move {hmp, qmp}.c to monitor/{hmp, qmp}-cmds.c
Kevin Wolf [Thu, 13 Jun 2019 15:33:58 +0000 (17:33 +0200)] 
monitor: Move {hmp, qmp}.c to monitor/{hmp, qmp}-cmds.c

Now that we have a monitor/ subdirectory, let's move hmp.c and qmp.c
from the root directory there. As they contain implementations of
monitor commands, rename them to {hmp,qmp}-cmds.c, so that {hmp,qmp}.c
are free for the HMP and QMP infrastructure.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190613153405.24769-9-kwolf@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agoMove monitor.c to monitor/misc.c
Kevin Wolf [Thu, 13 Jun 2019 15:33:57 +0000 (17:33 +0200)] 
Move monitor.c to monitor/misc.c

Create a new monitor/ subdirectory and move monitor.c there. As the plan
is to move the monitor core into separate files, use the chance to
rename it to misc.c.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190613153405.24769-8-kwolf@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Rename HMP command type and tables
Kevin Wolf [Thu, 13 Jun 2019 15:33:56 +0000 (17:33 +0200)] 
monitor: Rename HMP command type and tables

This renames the type for HMP monitor commands and the tables holding
the commands to make clear that they are related to HMP and to allow
making them public later:

* mon_cmd_t -> HMPCommand (fixing use of a reserved name, too)
* mon_cmds -> hmp_cmds
* info_cmds -> hmp_info_cmds

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20190613153405.24769-7-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[sortcmdlist() cleaned up to make checkpatch.pl happy]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Remove Monitor.cmd_table indirection
Kevin Wolf [Thu, 13 Jun 2019 15:33:55 +0000 (17:33 +0200)] 
monitor: Remove Monitor.cmd_table indirection

Monitor.cmd_table is initialised to point to mon_cmds and never changed
afterwards. We can remove the indirection and just reference mon_cmds
directly instead.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20190613153405.24769-6-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Create MonitorHMP with readline state
Kevin Wolf [Thu, 13 Jun 2019 15:33:54 +0000 (17:33 +0200)] 
monitor: Create MonitorHMP with readline state

The ReadLineState in Monitor is only used for HMP monitors. Create
MonitorHMP and move it there.

Can't use container_of() in hmp_change().  Cast instead, and mark
FIXME.  Will be cleaned up shortly.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190613153405.24769-5-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Superfluous variable in monitor_data_destroy() eliminated, whitespace
tweaked in hmp_change(), commit message improved]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Make MonitorQMP a child class of Monitor
Kevin Wolf [Thu, 13 Jun 2019 15:33:53 +0000 (17:33 +0200)] 
monitor: Make MonitorQMP a child class of Monitor

Currently, struct Monitor mixes state that is only relevant for HMP,
state that is only relevant for QMP, and some actually shared state.
In particular, a MonitorQMP field is present in the state of any
monitor, even if it's not a QMP monitor and therefore doesn't use the
state.

As a first step towards a clean separation between QMP and HMP, let
MonitorQMP extend Monitor and create a MonitorQMP object only when the
monitor is actually a QMP monitor.

Some places accessed Monitor.qmp unconditionally, even for HMP monitors.
They can't keep doing this now, so during the conversion, they are
either changed to become conditional on monitor_is_qmp() or to assert()
that they always get a QMP monitor.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190613153405.24769-4-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Superfluous variable in monitor_data_destroy() eliminated]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Split monitor_init in HMP and QMP function
Kevin Wolf [Thu, 13 Jun 2019 15:33:52 +0000 (17:33 +0200)] 
monitor: Split monitor_init in HMP and QMP function

Instead of mixing HMP and QMP monitors in the same function, separate
the monitor creation function for both.

While in theory, one could pass both MONITOR_USE_CONTROL and
MONITOR_USE_READLINE before this patch and both flags would do
something, readline support is tightly coupled with HMP: QMP never feeds
its input to readline, and the tab completion function treats the input
as an HMP command. Therefore, this configuration is useless.

After this patch, the QMP path asserts that MONITOR_USE_READLINE is not
set. The HMP path can be used with or without MONITOR_USE_READLINE, like
before.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190613153405.24769-3-kwolf@redhat.com>
[Zero initialization of Monitor moved from monitor_data_init() to
callers]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Remove unused password prompting fields
Kevin Wolf [Thu, 13 Jun 2019 15:33:51 +0000 (17:33 +0200)] 
monitor: Remove unused password prompting fields

Commit 788cf9f8c removed the code for password prompting from the
monitor. Since then, the Monitor fields password_completion_cb and
password_opaque have been unused. Remove them.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190613153405.24769-2-kwolf@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agomonitor: Fix return type of monitor_fdset_dup_fd_find
Yury Kotov [Thu, 23 May 2019 09:44:33 +0000 (12:44 +0300)] 
monitor: Fix return type of monitor_fdset_dup_fd_find

monitor_fdset_dup_fd_find_remove() and monitor_fdset_dup_fd_find()
return mon_fdset->id which is int64_t. Downcasting from int64_t to int
leads to a bug with removing fd from fdset with id >= 2^32.
So, fix return types for these function.

Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190523094433.30297-1-yury-kotov@yandex-team.ru>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-docs-20190617' into staging
Peter Maydell [Mon, 17 Jun 2019 15:41:25 +0000 (16:41 +0100)] 
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-docs-20190617' into staging

docs infrastructure queue:
 * fix some minor syntax issues in docs/specs/index.rst
 * build and install the 'specs' manual, since it now has some content
 * delete the "QEMU compared to other emulators" section of the docs
 * Convert "translator internals" docs to RST, move to devel manual

# gpg: Signature made Mon 17 Jun 2019 15:56:07 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-docs-20190617:
  docs: Build and install specs manual
  docs/specs/index.rst: Fix minor syntax issues
  qemu-tech.texi: Remove "QEMU compared to other emulators" section
  Convert "translator internals" docs to RST, move to devel manual

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agodocs: Build and install specs manual
Peter Maydell [Mon, 17 Jun 2019 14:35:31 +0000 (15:35 +0100)] 
docs: Build and install specs manual

Now we have some rST format docs in the docs/specs/ manual, we should
actually build and install it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Message-id: 20190610152444.20859-3-peter.maydell@linaro.org

2 years agodocs/specs/index.rst: Fix minor syntax issues
Peter Maydell [Mon, 17 Jun 2019 14:35:31 +0000 (15:35 +0100)] 
docs/specs/index.rst: Fix minor syntax issues

The docs/specs/index.rst has a couple of minor issues which
we didn't notice because we weren't building the manual:
 * the ToC entry for the new PPC XIVE docs points to
   a nonexistent file
 * the initial comment needs to be marked by '..', not '.',
   or it will appear in the output
 * the title doesn't match the capitialization used by
   the existing interop or devel manuals, and uses
   'full-system emulation' rather than the 'system emulation'
   that the interop manual title uses

Fix these minor issues before we start trying to build the manual.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Acked-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Message-id: 20190610152444.20859-2-peter.maydell@linaro.org

2 years agoqemu-tech.texi: Remove "QEMU compared to other emulators" section
Peter Maydell [Mon, 17 Jun 2019 14:35:31 +0000 (15:35 +0100)] 
qemu-tech.texi: Remove "QEMU compared to other emulators" section

The "QEMU compared to other emulators" section of our documentation
hasn't been updated since 2015 (and parts of the text are even older).
We're clearly not very well placed to track the evolution of a
dozen other emulation projects, and an inaccurate or out of date
comparison doesn't serve anybody, so we're best off just removing
the whole documentation section.

If anybody cares strongly about maintaining a comparison page,
it's probably better to do that on the project's wiki where
we can update it more dynamically.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190607152827.18003-3-peter.maydell@linaro.org
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
2 years agoConvert "translator internals" docs to RST, move to devel manual
Peter Maydell [Mon, 17 Jun 2019 14:35:30 +0000 (15:35 +0100)] 
Convert "translator internals" docs to RST, move to devel manual

Our user-facing manual currently has a section "translator internals"
which has some high-level information about the design of the
TCG translator. This should really be in our new devel/ manual.
Convert it to RST format and move it there.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190607152827.18003-2-peter.maydell@linaro.org
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
2 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190617' into...
Peter Maydell [Mon, 17 Jun 2019 14:35:21 +0000 (15:35 +0100)] 
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190617' into staging

target-arm queue:
 * support large kernel images in bootloader (by avoiding
   putting the initrd over the top of them)
 * correctly disable FPU/DSP in the CPU for the mps2-an521, musca-a boards
 * arm_gicv3: Fix decoding of ID register range
 * arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1
 * some code cleanups following on from the VFP decodetree conversion
 * Only implement doubles if the FPU supports them
   (so we now correctly model Cortex-M4, -M33 as single precision only)

# gpg: Signature made Mon 17 Jun 2019 15:33:01 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20190617: (24 commits)
  target/arm: Only implement doubles if the FPU supports them
  target/arm: Fix typos in trans function prototypes
  target/arm: Remove unused cpu_F0s, cpu_F0d, cpu_F1s, cpu_F1d
  target/arm: Stop using deprecated functions in NEON_2RM_VCVT_F32_F16
  target/arm: stop using deprecated functions in NEON_2RM_VCVT_F16_F32
  target/arm: Stop using cpu_F0s in Neon VCVT fixed-point ops
  target/arm: Stop using cpu_F0s for Neon f32/s32 VCVT
  target/arm: Stop using cpu_F0s for NEON_2RM_VRECPE_F and NEON_2RM_VRSQRTE_F
  target/arm: Stop using cpu_F0s for NEON_2RM_VCVT[ANPM][US]
  target/arm: Stop using cpu_F0s for NEON_2RM_VRINT*
  target/arm: Stop using cpu_F0s for NEON_2RM_VNEG_F
  target/arm: Stop using cpu_F0s for NEON_2RM_VABS_F
  target/arm: Use vfp_expand_imm() for AArch32 VFP VMOV_imm
  target/arm: Move vfp_expand_imm() to translate.[ch]
  hw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1
  hw/intc/arm_gicv3: Fix decoding of ID register range
  hw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards
  hw/arm/armv7m: Forward "vfp" and "dsp" properties to CPU
  target/arm: Allow M-profile CPUs to disable the DSP extension via CPU property
  target/arm: Allow VFP and Neon to be disabled via a CPU property
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Only implement doubles if the FPU supports them
Peter Maydell [Fri, 14 Jun 2019 10:44:57 +0000 (11:44 +0100)] 
target/arm: Only implement doubles if the FPU supports them

The architecture permits FPUs which have only single-precision
support, not double-precision; Cortex-M4 and Cortex-M33 are
both like that. Add the necessary checks on the MVFR0 FPDP
field so that we UNDEF any double-precision instructions on
CPUs like this.

Note that even if FPDP==0 the insns like VMOV-to/from-gpreg,
VLDM/VSTM, VLDR/VSTR which take double precision registers
still exist.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190614104457.24703-3-peter.maydell@linaro.org

2 years agotarget/arm: Fix typos in trans function prototypes
Peter Maydell [Fri, 14 Jun 2019 10:44:56 +0000 (11:44 +0100)] 
target/arm: Fix typos in trans function prototypes

In several places cut and paste errors meant we were using the wrong
type for the 'arg' struct in trans_ functions called by the
decodetree decoder, because we were using the _sp version of the
struct in the _dp function.  These were harmless, because the two
structs were identical and so decodetree made them typedefs of the
same underlying structure (and we'd have had a compile error if they
were not harmless), but we should clean them up anyway.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190614104457.24703-2-peter.maydell@linaro.org

2 years agotarget/arm: Remove unused cpu_F0s, cpu_F0d, cpu_F1s, cpu_F1d
Peter Maydell [Thu, 13 Jun 2019 16:39:17 +0000 (17:39 +0100)] 
target/arm: Remove unused cpu_F0s, cpu_F0d, cpu_F1s, cpu_F1d

Remove the now unused TCG globals cpu_F0s, cpu_F0d, cpu_F1s, cpu_F1d.

cpu_M0 is still used by the iwmmxt code, and cpu_V0 and
cpu_V1 are used by both iwmmxt and Neon.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-13-peter.maydell@linaro.org

2 years agotarget/arm: Stop using deprecated functions in NEON_2RM_VCVT_F32_F16
Peter Maydell [Thu, 13 Jun 2019 16:39:16 +0000 (17:39 +0100)] 
target/arm: Stop using deprecated functions in NEON_2RM_VCVT_F32_F16

Remove some old constructns from NEON_2RM_VCVT_F16_F32 code:
 * don't use CPU_F0s
 * don't use tcg_gen_st_f32

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-12-peter.maydell@linaro.org

2 years agotarget/arm: stop using deprecated functions in NEON_2RM_VCVT_F16_F32
Peter Maydell [Thu, 13 Jun 2019 16:39:15 +0000 (17:39 +0100)] 
target/arm: stop using deprecated functions in NEON_2RM_VCVT_F16_F32

Remove some old constructs from NEON_2RM_VCVT_F16_F32 code:
 * don't use cpu_F0s
 * don't use tcg_gen_ld_f32

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-11-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s in Neon VCVT fixed-point ops
Peter Maydell [Thu, 13 Jun 2019 16:39:14 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s in Neon VCVT fixed-point ops

Stop using cpu_F0s in the Neon VCVT fixed-point operations.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-10-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s for Neon f32/s32 VCVT
Peter Maydell [Thu, 13 Jun 2019 16:39:13 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s for Neon f32/s32 VCVT

Stop using cpu_F0s for the Neon f32/s32 VCVT operations.
Since this is the last user of cpu_F0s in the Neon 2rm-op
loop, we can remove the handling code for it too.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-9-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s for NEON_2RM_VRECPE_F and NEON_2RM_VRSQRTE_F
Peter Maydell [Thu, 13 Jun 2019 16:39:12 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s for NEON_2RM_VRECPE_F and NEON_2RM_VRSQRTE_F

Stop using cpu_F0s for NEON_2RM_VRECPE_F and NEON_2RM_VRSQRTE_F.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-8-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s for NEON_2RM_VCVT[ANPM][US]
Peter Maydell [Thu, 13 Jun 2019 16:39:11 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s for NEON_2RM_VCVT[ANPM][US]

Stop using cpu_F0s for the NEON_2RM_VCVT[ANPM][US] ops.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-7-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s for NEON_2RM_VRINT*
Peter Maydell [Thu, 13 Jun 2019 16:39:10 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s for NEON_2RM_VRINT*

Switch NEON_2RM_VRINT* away from using cpu_F0s.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-6-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s for NEON_2RM_VNEG_F
Peter Maydell [Thu, 13 Jun 2019 16:39:09 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s for NEON_2RM_VNEG_F

Switch NEON_2RM_VABS_F away from using cpu_F0s.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-5-peter.maydell@linaro.org

2 years agotarget/arm: Stop using cpu_F0s for NEON_2RM_VABS_F
Peter Maydell [Thu, 13 Jun 2019 16:39:08 +0000 (17:39 +0100)] 
target/arm: Stop using cpu_F0s for NEON_2RM_VABS_F

Where Neon instructions are floating point operations, we
mostly use the old VFP utility functions like gen_vfp_abs()
which work on the TCG globals cpu_F0s and cpu_F1s. The
Neon for-each-element loop conditionally loads the inputs
into either a plain old TCG temporary for most operations
or into cpu_F0s for float operations, and similarly stores
back either cpu_F0s or the temporary.

Switch NEON_2RM_VABS_F away from using cpu_F0s, and
update neon_2rm_is_float_op() accordingly.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-4-peter.maydell@linaro.org

2 years agotarget/arm: Use vfp_expand_imm() for AArch32 VFP VMOV_imm
Peter Maydell [Thu, 13 Jun 2019 16:39:07 +0000 (17:39 +0100)] 
target/arm: Use vfp_expand_imm() for AArch32 VFP VMOV_imm

The AArch32 VMOV (immediate) instruction uses the same VFP encoded
immediate format we already handle in vfp_expand_imm().  Use that
function rather than hand-decoding it.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-3-peter.maydell@linaro.org

2 years agotarget/arm: Move vfp_expand_imm() to translate.[ch]
Peter Maydell [Thu, 13 Jun 2019 16:39:06 +0000 (17:39 +0100)] 
target/arm: Move vfp_expand_imm() to translate.[ch]

We want to use vfp_expand_imm() in the AArch32 VFP decode;
move it from the a64-only header/source file to the
AArch32 one (which is always compiled even for AArch64).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190613163917.28589-2-peter.maydell@linaro.org

2 years agohw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1
Peter Maydell [Fri, 24 May 2019 12:42:48 +0000 (13:42 +0100)] 
hw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1

The GICv3 specification says that the GICD_TYPER.SecurityExtn bit
is RAZ if GICD_CTLR.DS is 1. We were incorrectly making it RAZ
if the security extension is unsupported. "Security extension
unsupported" always implies GICD_CTLR.DS == 1, but the guest can
also set DS on a GIC which does support the security extension.
Fix the condition to correctly check the GICD_CTLR.DS bit.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20190524124248.28394-3-peter.maydell@linaro.org

2 years agohw/intc/arm_gicv3: Fix decoding of ID register range
Peter Maydell [Fri, 24 May 2019 12:42:47 +0000 (13:42 +0100)] 
hw/intc/arm_gicv3: Fix decoding of ID register range

The GIC ID registers cover an area 0x30 bytes in size
(12 registers, 4 bytes each). We were incorrectly decoding
only the first 0x20 bytes.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20190524124248.28394-2-peter.maydell@linaro.org

2 years agohw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards
Peter Maydell [Fri, 17 May 2019 17:40:46 +0000 (18:40 +0100)] 
hw/arm: Correctly disable FPU/DSP for some ARMSSE-based boards

The SSE-200 hardware has configurable integration settings which
determine whether its two CPUs have the FPU and DSP:
 * CPU0_FPU (default 0)
 * CPU0_DSP (default 0)
 * CPU1_FPU (default 1)
 * CPU1_DSP (default 1)

Similarly, the IoTKit has settings for its single CPU:
 * CPU0_FPU (default 1)
 * CPU0_DSP (default 1)

Of our four boards that use either the IoTKit or the SSE-200:
 * mps2-an505, mps2-an521 and musca-a use the default settings
 * musca-b1 enables FPU and DSP on both CPUs

Currently QEMU models all these boards using CPUs with
both FPU and DSP enabled. This means that we are incorrect
for mps2-an521 and musca-a, which should not have FPU or DSP
on CPU0.

Create QOM properties on the ARMSSE devices corresponding to the
default h/w integration settings, and make the Musca-B1 board
enable FPU and DSP on both CPUs. This fixes the mps2-an521
and musca-a behaviour, and leaves the musca-b1 and mps2-an505
behaviour unchanged.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20190517174046.11146-5-peter.maydell@linaro.org

2 years agohw/arm/armv7m: Forward "vfp" and "dsp" properties to CPU
Peter Maydell [Fri, 17 May 2019 17:40:45 +0000 (18:40 +0100)] 
hw/arm/armv7m: Forward "vfp" and "dsp" properties to CPU

Create "vfp" and "dsp" properties on the armv7m container object
which will be forwarded to its CPU object, so that SoCs can
configure whether the CPU has these features.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20190517174046.11146-4-peter.maydell@linaro.org

2 years agotarget/arm: Allow M-profile CPUs to disable the DSP extension via CPU property
Peter Maydell [Fri, 17 May 2019 17:40:44 +0000 (18:40 +0100)] 
target/arm: Allow M-profile CPUs to disable the DSP extension via CPU property

Allow the DSP extension to be disabled via a CPU property for
M-profile CPUs. (A and R-profile CPUs don't have this extension
as a defined separate optional architecture extension, so
they don't need the property.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20190517174046.11146-3-peter.maydell@linaro.org

2 years agotarget/arm: Allow VFP and Neon to be disabled via a CPU property
Peter Maydell [Fri, 17 May 2019 17:40:43 +0000 (18:40 +0100)] 
target/arm: Allow VFP and Neon to be disabled via a CPU property

Allow VFP and neon to be disabled via a CPU property. As with
the "pmu" property, we only allow these features to be removed
from CPUs which have it by default, not added to CPUs which
don't have it.

The primary motivation here is to be able to optionally
create Cortex-M33 CPUs with no FPU, but we provide switches
for both VFP and Neon because the two interact:
 * AArch64 can't have one without the other
 * Some ID register fields only change if both are disabled

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20190517174046.11146-2-peter.maydell@linaro.org

2 years agohw/arm/boot: Honour image size field in AArch64 Image format kernels
Peter Maydell [Thu, 16 May 2019 14:47:33 +0000 (15:47 +0100)] 
hw/arm/boot: Honour image size field in AArch64 Image format kernels

Since Linux v3.17, the kernel's Image header includes a field image_size,
which gives the total size of the kernel including unpopulated data
sections such as the BSS). If this is present, then return it from
load_aarch64_image() as the true size of the kernel rather than
just using the size of the Image file itself. This allows the code
which calculates where to put the initrd to avoid putting it in
the kernel's BSS area.

This means that we should be able to reliably load kernel images
which are larger than 128MB without accidentally putting the
initrd or dtb in locations that clash with the kernel itself.

Fixes: https://bugs.launchpad.net/qemu/+bug/1823998
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Message-id: 20190516144733.32399-5-peter.maydell@linaro.org

2 years agohw/arm/boot: Avoid placing the initrd on top of the kernel
Peter Maydell [Thu, 16 May 2019 14:47:32 +0000 (15:47 +0100)] 
hw/arm/boot: Avoid placing the initrd on top of the kernel

We currently put the initrd at the smaller of:
 * 128MB into RAM
 * halfway into the RAM
(with the dtb following it).

However for large kernels this might mean that the kernel
overlaps the initrd. For some kinds of kernel (self-decompressing
32-bit kernels, and ELF images with a BSS section at the end)
we don't know the exact size, but even there we have a
minimum size. Put the initrd at least further into RAM than
that. For image formats that can give us an exact kernel size, this
will mean that we definitely avoid overlaying kernel and initrd.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Message-id: 20190516144733.32399-4-peter.maydell@linaro.org

2 years agohw/arm/boot: Diagnose layouts that put initrd or DTB off the end of RAM
Peter Maydell [Thu, 16 May 2019 14:47:31 +0000 (15:47 +0100)] 
hw/arm/boot: Diagnose layouts that put initrd or DTB off the end of RAM

We calculate the locations in memory where we want to put the
initrd and the DTB based on the size of the kernel, since they
come after it. Add some explicit checks that these aren't off the
end of RAM entirely.

(At the moment the way we calculate the initrd_start means that
it can't ever be off the end of RAM, but that will change with
the next commit.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Message-id: 20190516144733.32399-3-peter.maydell@linaro.org

2 years agohw/arm/boot: Don't assume RAM starts at address zero
Peter Maydell [Thu, 16 May 2019 14:47:30 +0000 (15:47 +0100)] 
hw/arm/boot: Don't assume RAM starts at address zero

In the Arm kernel/initrd loading code, in some places we make the
incorrect assumption that info->ram_size can be treated as the
address of the end of RAM, as for instance when we calculate the
available space for the initrd using "info->ram_size - info->initrd_start".
This is wrong, because many Arm boards (including "virt") specify
a non-zero info->loader_start to indicate that their RAM area
starts at a non-zero physical address.

Correct the places which make this incorrect assumption.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Message-id: 20190516144733.32399-2-peter.maydell@linaro.org

2 years agoMerge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
Peter Maydell [Mon, 17 Jun 2019 10:55:14 +0000 (11:55 +0100)] 
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

virtio, acpi: fixes, cleanups

A bunch of minor fixes all over the place.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Sun 16 Jun 2019 21:46:31 BST
# gpg:                using RSA key 281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full]
# gpg:                 aka "Michael S. Tsirkin <mst@redhat.com>" [full]
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* remotes/mst/tags/for_upstream:
  tests/rebuild-expected-aml.sh: blow out difflist
  q35: update DSDT
  q35: fix mmconfig and PCI0._CRS
  hw/acpi: extract acpi_add_rom_blob()
  vhost: fix vhost_log size overflow during migration
  docs/vhost-user.json: some firmware.json copy leftovers
  vhost-user-gpu: initialize msghdr & iov at declaration
  vhost-user-input: check ioctl(EVIOCGNAME) return value
  vhost-user: improve error report
  vhost-user: check unix_listen() return value
  vhost-user-gpu: do not send scanout update if no GPU socket

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agoMerge remote-tracking branch 'remotes/lersek/tags/edk2-pull-2019-06-14' into staging
Peter Maydell [Mon, 17 Jun 2019 10:07:11 +0000 (11:07 +0100)] 
Merge remote-tracking branch 'remotes/lersek/tags/edk2-pull-2019-06-14' into staging

edk2-stable201905 was released on 2019-06-06:

  https://github.com/tianocore/edk2/releases/tag/edk2-stable201905

Advance QEMU's edk2 submodule to edk2-stable201905, and rebuild the
firmware binaries. This should be the edk2 release that goes into QEMU
4.1.

Launchpad: https://bugs.launchpad.net/qemu/+bug/1831477

# gpg: Signature made Fri 14 Jun 2019 21:09:29 BST
# gpg:                using RSA key D39DA71E0D496CFA
# gpg: Good signature from "Laszlo Ersek <lersek@redhat.com>" [marginal]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: F5D9 660F 1BA5 F310 A95A  C5E0 466A EAE0 6125 3988
#      Subkey fingerprint: B3A5 5D3F 88A8 90ED 2E63  3E8D D39D A71E 0D49 6CFA

* remotes/lersek/tags/edk2-pull-2019-06-14:
  pc-bios: update the README file with edk2-stable201905 information
  pc-bios: refresh edk2 build artifacts for edk2-stable201905
  roms/Makefile.edk2: update input file list for "pc-bios/edk2-licenses.txt"
  roms/Makefile.edk2: remove edk2-stable201903 network feature test macros
  roms/edk2: update submodule from edk2-stable201903 to edk2-stable201905
  roms/Makefile.edk2: define edk2-stable201905 network feature test macros

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotests/rebuild-expected-aml.sh: blow out difflist
Michael S. Tsirkin [Sun, 16 Jun 2019 20:43:03 +0000 (16:43 -0400)] 
tests/rebuild-expected-aml.sh: blow out difflist

As expected files have been updated, make sure we
do not forget to remove them from the allowed
diff list.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agoq35: update DSDT
Michael S. Tsirkin [Sun, 16 Jun 2019 20:33:14 +0000 (16:33 -0400)] 
q35: update DSDT

update expected files and drop them from allowed diff list.

Fixes: 4a4418369d6 ("q35: fix mmconfig and PCI0._CRS")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agoq35: fix mmconfig and PCI0._CRS
Gerd Hoffmann [Fri, 7 Jun 2019 07:34:29 +0000 (09:34 +0200)] 
q35: fix mmconfig and PCI0._CRS

This patch changes the handling of the mmconfig area.  Thanks to the
pci(e) expander devices we already have the logic to exclude address
ranges from PCI0._CRS.  We can simply add the mmconfig address range
to the list get it excluded as well.

With that in place we can go with a fixed pci hole which covers the
whole area from the end of (low) ram to the ioapic.

This will make the whole logic alot less fragile.  No matter where the
firmware places the mmconfig xbar, things should work correctly.  The
guest also gets a bit more PCI address space (seabios boot):

    # cat /proc/iomem
    [ ... ]
    7ffdd000-7fffffff : reserved
    80000000-afffffff : PCI Bus 0000:00            <<-- this is new
    b0000000-bfffffff : PCI MMCONFIG 0000 [bus 00-ff]
      b0000000-bfffffff : reserved
    c0000000-febfffff : PCI Bus 0000:00
      f8000000-fbffffff : 0000:00:01.0
    [ ... ]

So this is a guest visible change.

Cc: László Érsek <lersek@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20190607073429.3436-1-kraxel@redhat.com>

2 years agohw/acpi: extract acpi_add_rom_blob()
Wei Yang [Mon, 10 Jun 2019 01:18:30 +0000 (09:18 +0800)] 
hw/acpi: extract acpi_add_rom_blob()

arm and i386 has almost the same function acpi_add_rom_blob(), except
giving different FWCfgCallback function.

This patch moves acpi_add_rom_blob() to utils.c by passing
FWCfgCallback to it.

Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
v7:
  * rebase on top of current master because of conflict
v6:
  * change author from Igor to Michael
v5:
  * remove unnecessary header glib/gprintf.h
  * rearrange include header to make it more suitable
v4:
  * extract -> moves
  * adjust comment in source to make checkpatch happy
v3:
  * put acpi_add_rom_blob() to hw/acpi/utils.c
v2:
  * remove unused header in original source file
Message-Id: <20190610011830.28398-1-richardw.yang@linux.intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agovhost: fix vhost_log size overflow during migration
Li Hangjing [Mon, 3 Jun 2019 06:15:24 +0000 (14:15 +0800)] 
vhost: fix vhost_log size overflow during migration

When a guest which doesn't support multiqueue is migrated with a multi queues
vhost-user-blk deivce, a crash will occur like:

0 qemu_memfd_alloc (name=<value optimized out>, size=562949953421312, seals=<value optimized out>, fd=0x7f87171fe8b4, errp=0x7f87171fe8a8) at util/memfd.c:153
1 0x00007f883559d7cf in vhost_log_alloc (size=70368744177664, share=true) at hw/virtio/vhost.c:186
2 0x00007f88355a0758 in vhost_log_get (listener=0x7f8838bd7940, enable=1) at qemu-2-12/hw/virtio/vhost.c:211
3 vhost_dev_log_resize (listener=0x7f8838bd7940, enable=1) at hw/virtio/vhost.c:263
4 vhost_migration_log (listener=0x7f8838bd7940, enable=1) at hw/virtio/vhost.c:787
5 0x00007f88355463d6 in memory_global_dirty_log_start () at memory.c:2503
6 0x00007f8835550577 in ram_init_bitmaps (f=0x7f88384ce600, opaque=0x7f8836024098) at migration/ram.c:2173
7 ram_init_all (f=0x7f88384ce600, opaque=0x7f8836024098) at migration/ram.c:2192
8 ram_save_setup (f=0x7f88384ce600, opaque=0x7f8836024098) at migration/ram.c:2219
9 0x00007f88357a419d in qemu_savevm_state_setup (f=0x7f88384ce600) at migration/savevm.c:1002
10 0x00007f883579fc3e in migration_thread (opaque=0x7f8837530400) at migration/migration.c:2382
11 0x00007f8832447893 in start_thread () from /lib64/libpthread.so.0
12 0x00007f8832178bfd in clone () from /lib64/libc.so.6

This is because vhost_get_log_size() returns a overflowed vhost-log size.
In this function, it uses the uninitialized variable vqs->used_phys and
vqs->used_size to get the vhost-log size.

Signed-off-by: Li Hangjing <lihangjing@baidu.com>
Reviewed-by: Xie Yongji <xieyongji@baidu.com>
Reviewed-by: Chai Wen <chaiwen@baidu.com>
Message-Id: <20190603061524.24076-1-lihangjing@baidu.com>
Cc: qemu-stable@nongnu.org
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agodocs/vhost-user.json: some firmware.json copy leftovers
Marc-André Lureau [Wed, 5 Jun 2019 13:12:21 +0000 (15:12 +0200)] 
docs/vhost-user.json: some firmware.json copy leftovers

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20190605131221.29432-1-marcandre.lureau@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agovhost-user-gpu: initialize msghdr & iov at declaration
Marc-André Lureau [Wed, 5 Jun 2019 14:58:29 +0000 (16:58 +0200)] 
vhost-user-gpu: initialize msghdr & iov at declaration

This should fix uninitialized fields found by coverity CID 1401762.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20190605145829.7674-6-marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
2 years agovhost-user-input: check ioctl(EVIOCGNAME) return value
Marc-André Lureau [Wed, 5 Jun 2019 14:58:28 +0000 (16:58 +0200)] 
vhost-user-input: check ioctl(EVIOCGNAME) return value

This should fix coverity CID 1401704.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20190605145829.7674-5-marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
2 years agovhost-user: improve error report
Marc-André Lureau [Wed, 5 Jun 2019 14:58:27 +0000 (16:58 +0200)] 
vhost-user: improve error report

g_printerr() needs a trailing \n

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20190605145829.7674-4-marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agovhost-user: check unix_listen() return value
Marc-André Lureau [Wed, 5 Jun 2019 14:58:26 +0000 (16:58 +0200)] 
vhost-user: check unix_listen() return value

This check shouldn't be necessary, since &error_fatal is given as
argument and will exit() on failure. However, this change should
silence coverity CID 1401761 & 1401705.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20190605145829.7674-3-marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agovhost-user-gpu: do not send scanout update if no GPU socket
Marc-André Lureau [Wed, 5 Jun 2019 14:58:25 +0000 (16:58 +0200)] 
vhost-user-gpu: do not send scanout update if no GPU socket

Should fix coverity CID 1401760.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20190605145829.7674-2-marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2 years agopc-bios: update the README file with edk2-stable201905 information
Laszlo Ersek [Thu, 6 Jun 2019 10:49:02 +0000 (12:49 +0200)] 
pc-bios: update the README file with edk2-stable201905 information

Refresh the "pc-bios/README" file with edk2, OpenSSL, and Berkeley
SoftFloat release info, matching the edk2-stable201905 firmware images
added in the previous patch.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugs.launchpad.net/qemu/+bug/1831477
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2 years agopc-bios: refresh edk2 build artifacts for edk2-stable201905
Laszlo Ersek [Thu, 6 Jun 2019 12:12:40 +0000 (14:12 +0200)] 
pc-bios: refresh edk2 build artifacts for edk2-stable201905

Rebuild the pc-bios/edk2-*.fd.bz2 binaries, and regenerate
pc-bios/edk2-licenses.txt, based on the edk2-stable201905 release.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugs.launchpad.net/qemu/+bug/1831477
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2 years agoroms/Makefile.edk2: update input file list for "pc-bios/edk2-licenses.txt"
Laszlo Ersek [Thu, 6 Jun 2019 11:01:43 +0000 (13:01 +0200)] 
roms/Makefile.edk2: update input file list for "pc-bios/edk2-licenses.txt"

(1) For TianoCore Bugzilla

      https://bugzilla.tianocore.org/show_bug.cgi?id=1373

    the majority of the edk2 tree was relicensed under the
    BSD-2-Clause-Patent license:

      https://spdx.org/licenses/BSD-2-Clause-Patent.html>

    Edk2 commit f53de8aecb12 ("edk2: Add License-History.txt", 2019-04-09)
    added a new file called "License-History.txt", describing license and
    contributor agreement changes over time.

(2) For advacing edk2's OpenSSL git submodule to the 1.1.1b release, a
    more up-to-date ArmSoftFloatLib instance became necessary, on 32-bit
    ARM. Therefore, the embedded (and by now, obsolete) Berkeley SoftFloat
    library was replaced with a git submodule of the same, checked out at
    the latest release ("3e", plus a typo fix on top -- commit
    b64af41c3276). This was implemented for TianoCore Bugzilla

      https://bugzilla.tianocore.org/show_bug.cgi?id=1845

    in edk2 commit range b6cfa686e42d..371e7001e8d5.

Include the edk2 project's "License-History.txt" file, and the Berkeley
SoftFloat library's "COPYING.txt", in our generated
"pc-bios/edk2-licenses.txt" text file.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugs.launchpad.net/qemu/+bug/1831477
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2 years agoroms/Makefile.edk2: remove edk2-stable201903 network feature test macros
Laszlo Ersek [Thu, 6 Jun 2019 11:50:56 +0000 (13:50 +0200)] 
roms/Makefile.edk2: remove edk2-stable201903 network feature test macros

At tag "edk2-stable201905", the build flags HTTP_BOOT_ENABLE and
TLS_ENABLE have become useless. Their roles have been taken by
NETWORK_HTTP_BOOT_ENABLE and NETWORK_TLS_ENABLE, respectively. Remove the
old build flags.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugs.launchpad.net/qemu/+bug/1831477
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2 years agoroms/edk2: update submodule from edk2-stable201903 to edk2-stable201905
Laszlo Ersek [Thu, 6 Jun 2019 11:32:56 +0000 (13:32 +0200)] 
roms/edk2: update submodule from edk2-stable201903 to edk2-stable201905

Update the edk2 submodule from release edk2-stable201903 to
edk2-stable201905. The release notes can be read at

  https://github.com/tianocore/edk2/releases/tag/edk2-stable201905

Below is a list of commits in the new release:

    1 c9e1e28b6195 Maintainers.txt: clarify Reviewer requirements and responsibilities
    2 a24a37dba42c StdLib: Update resolv.conf to use Google's DNS servers
    3 690d60c0ada5 MdeModulePkg/SdMmcPciHcDxe: Add V3 64b DMA Support
    4 326598e9b759 StandaloneMmPkg/Library: Install Variable Arch Protocol
    5 56edfb174ad6 StandaloneMmPkg: drop redundant definition of gEfiMmConfigurationProtocolGuid
    6 8edde27a3835 StandaloneMmPkg: switch to NULL DebugLib resolution
    7 4b771927c801 StandaloneMmPkg/StandaloneMmCoreEntryPoint: drop explicit SerialPortLib call
    8 d65e0e4881b7 StandaloneMmPkg/Core: permit encapsulated firmware volumes
    9 84249babd703 StandaloneMmPkg/Core: dispatch all drivers at init time
   10 094c0bc7d7a5 StandaloneMmPkg/Core: drop support for dispatching FVs into MM
   11 b2877855c7ec StandaloneMmPkg/Core: remove legacy boot support
   12 4d275961d8d6 StandaloneMmPkg: drop unused PCD PcdStandaloneMmEnable
   13 d6253d2f9a33 StandaloneMmPkg: remove redundant StandaloneMmDriverEntryPoint driver
   14 fb94f83131f0 BaseTools: Enable compiler cache support in edk2 build
   15 c8eada5ca07b SecurityPkg: Remove duplicated BSD license
   16 5835c054f4ce Vlv2TbltDevicePkg: Remove duplicated BSD license
   17 b2a0a4ffd4d6 ShellPkg/UefiShellAcpiViewCommandLib: Change the note in uni
   18 d868846a4ecc BaseTool/Build: Add --disable-include-path-check.
   19 dbe05cb1c038 BaseTools: Fixed the issue of BaseTools Make cleanall failed.
   20 b0189eac00a5 BaseTools: Explicitly close files after readlines
   21 c49f298d28cb EmbeddedPkg/MmcDxe: Enable 4-bit mode even if SD_HIGH_SPEED is not supported
   22 34b162d078aa UefiCpuPkg/CpuCommonFeaturesLib: Aesni.c uses BIT0 and BIT1 reversedly
   23 d0abf8bb3e09 MdePkg/MdePkg.uni: Add the prompt and help information
   24 6ef95e4da714 SecurityPkg/SecurityPkg.uni: Add the prompt and help information
   25 792396bec919 UefiCpuPkg/UefiCpuPkg.uni: Add the prompt and help information
   26 43b1be74a8f6 ShellPkg: Correct a parameter's name
   27 2ac896a67b8e MdePkg/PciSegmentLibSegmentInfo: Change parameters type
   28 7681a891cec6 BaseTools: Add missing license and copyright info
   29 432a2ba1a0d7 DynamicTablesPkg: correct LibraryClass dependencies for Arm/DBG2
   30 fbdfef35cb82 DynamicTablesPkg: add package .dsc file
   31 a4712bea79a7 Vlv2TbltDevicePkg: ECP Cleanup.
   32 46002a4a379b Vlv2TbltDevicePkg: Fix build failure issue after ECP cleanup
   33 2cb2b6d6fa9c Vlv2TbltDevicePkg: Fix 32bit BIOS build failure issue
   34 4f93ff22b983 DynamicTablesPkg: Fix protocol section
   35 98a4a7a99bf5 DynamicTablesPkg: Rename enum used for ID Mapping
   36 e12bdeb1c2ad DynamicTablesPkg: Add OEM Info
   37 1018bd4c79a6 DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI
   38 24534823b281 DynamicTablesPkg: Remove GIC Distributor Id field
   39 c606f47291e4 DynamicTablesPkg: Minor updates and fix typos
   40 6c27a4d337d0 MdeModulePkg/UefiBootManangerLib: Fix exception issue
   41 bb2c9ccb3388 MdeModulePkg/PiSmmCore: Control S3 related functionality through flag.
   42 f4c5200926df SecurityPkg/OpalPassword: Fix incorrect line ending issue.
   43 210bd16aff81 Document: Remove obsolete user manuals
   44 f293841f9335 BaseTools: Remove EDKI related logic from Trim tool
   45 2f2c51acfb70 BaseTools: Remove the logic SourceOverridePath
   46 b669adebd01d Fix links in Maintainers.txt and remove slow outdated sourceforge git mirror
   47 cf85ba23d58c OvmfPkg: retire "create-release.py"
   48 4da419e2deb9 IntelSiliconPkg/IntelSiliconPkg.dsc: Add a driver to build
   49 fa888c7ee9ba PcAtChipsetPkg/PcatChipsetPkg.dsc: Add a driver to build
   50 4a1f6b85c184 MdeModulePkg: add LockBoxNullLib for !IA32/X64 in .dsc
   51 a004d17d01a9 BaseTool: Fixed an issue of Structure PCD
   52 fdebdc961bfd Nt32Pkg/Nt32Pkg.dsc: Remove EdkCompatibilityPkg information
   53 5bca07268aca Maintainers.txt: Remove EdkCompatibilityPkg information
   54 c455bc8c8d78 EdkCompatibilityPkg: Remove EdkCompatibilityPkg
   55 e259ad9b6452 OvmfPkg: Drop the ISA Floppy device support
   56 a5cc178aeb1a OvmfPkg: Add an Super IO bus driver
   57 a06810229618 OvmfPkg: Add a build flag to select ISA driver stack
   58 f67786e38171 BaseTools/TianoCompress: Improve performance of boundary validation
   59 55756c88aec9 BaseTools/C/Common: Improve performance of boundary validation
   60 8028f0303218 MdePkg/BaseUefiDecompressLib: Improve performance of boundary validation
   61 58742d79457e BaseTools:Trim will trig exception when input asl UTF8 format file
   62 1c27ec423635 BaseTools:Coding problems caused by special characters
   63 b02873340b2d Vlv2TbltDevicePkg: Remove PACKAGES_PATH
   64 a89fd3a359b8 MdeModulePkg/CapsuleRuntimeDxe: Add cache flush for IA32 and X64
   65 9338e2301785 MdeModulePkg/ResetSystemRuntimeDxe: Remove DoS3 in warm reset
   66 b87a9a76ebc3 MdePkg/DebugLib.h: Add new APIs for DebugLib
   67 b04bdd154add MdePkg/BaseDebugLibNull: Add new APIs for DebugLib
   68 f13202874c9c MdePkg/BaseDebugLibSerialPort: Add new APIs
   69 ec81dba51f0b MdePkg/UefidebugLibConOut: Add new APIs
   70 8055c3d5ee3f MdePkg/UefiDebugLibStdErr: Add new APIs
   71 b22b4f5aeed9 MdePkg/DxeRuntimeDebugLibSerialPort: Add new APIs
   72 27d86bc12b1d MdePkg/UefiDebuglibDebugPortProtocol: Add new APIs
   73 92c0bbd18b8b ArmPkg/SemiHostingDebugLib: Add new APIs
   74 2fe5f2f52918 OvmfPkg/PlatformDebugLibIoPort: Add new APIs
   75 446be24d0bd2 IntelFsp2Pkg/BaseFspDebugLibSerialPort: Add new APIs
   76 0bb4eff6a0bb IntelFspPkg/BaseFspDebugLibSerialPort: Add new APIs
   77 9fb1f7efc90a IntelFramworkModulePkg/PeiDxeDebugLibReportStatusCode: Add new APIs
   78 bd68cddc6b5f MdeModulePkg/PeiDxeDebugLibReportStatusCode: Add new APIs
   79 52e22c60eab7 MdeModulePkg: Add definitions for EDKII DEBUG PPI
   80 2bc82244638a MdeModulePkg: Add a PEIM to install Debug PPI
   81 66f50a4b0d49 MdeModulePkg/PeiDebugLibDebugPpi: Add PEI debug lib
   82 a8ac75b8eeb8 MdeModulePkg: Add PEIM and lib to dsc file
   83 475a4317c037 UefiCpuPkg/SmmCpuFeaturesLib: Remove .S files for IA32 and X64 arch
   84 b2d13be506fb UefiCpuPkg/BaseUefiCpuLib: Remove .S files for IA32 and X64 arch
   85 df6c5f01e182 UefiCpuPkg/CpuExceptionHandlerLib:Remove.S files for IA32 and X64 arch
   86 4eea7627ef0d MdePkg/BaseCpuLib: Remove .S files for IA32 and X64 arch
   87 1ee58b7103f3 MdePkg/BaseLib: Remove .S files for IA32 and X64 arch
   88 f578386cc49d MdePkg/BaseMemoryLibMmx: Remove .S files for IA32 and X64 arch
   89 fbce3e064cdd MdePkg/BaseMemoryLibOptDxe: Remove .S files for IA32 and X64 arch
   90 ef008cd706b8 MdePkg/BaseMemoryLibOptPei: Remove .S files for IA32 and X64 arch
   91 42b7b15d2798 MdePkg/BaseMemoryLibRepStr: Remove .S files for IA32 and X64 arch
   92 94cf7d235a48 MdePkg/BaseMemoryLibSse2: Remove .S files for IA32 and X64 arch
   93 fcc61ca4b122 CryptoPkg/IntrinsicLib: Remove .S files for IA32 arch
   94 c7d22535f7dc SourceLevelDebugPkg/DebugAgentCommon: Remove .S files
   95 fb5c9ed8439b SourceLevelDebugPkg/PeCoffExtraActionLibDebug: Remove .S files
   96 57b6844503e7 CorebootModulePkg/SecCore: Remove .S files for IA32 arch
   97 7ed72121b753 SourceLevelDebugPkg/DebugAgent: Remove AsmFuncs.S in INF
   98 e4ff6349bf9e UefiCpuPkg/MpInitLib: Fix MemTest86 failure.
   99 37f9fea5b88d UefiCpuPkg\CpuSmm: Save & restore CR2 on-demand paging in SMM
  100 79be3d27517c UefiCpuPkg/RegisterCpuFeaturesLib: Remove useless functions.
  101 6214ffb41079 UefiCpuPkg/RegisterCpuFeaturesLib: Optimize PCD PcdCpuFeaturesUserConfiguration.
  102 001c2c80333f UefiCpuPkg/RegisterCpuFeaturesLib: Simplify PcdCpuFeaturesSupport.
  103 f664032e063b UefiCpuPkg/RegisterCpuFeaturesLib: Correct comments.
  104 516e33972f0a UefiCpuPkg/Cpuid.h: Remove duplicated struct definition for leaf 1FH
  105 079141ebe7f1 UefiCpuPkg/Cpuid: Dump leaf 1FH information correctly
  106 7f33d4f22836 UefiCpuPkg/LocalApicLib: Add GetProcessorLocation2ByApicId() API
  107 f8113e25001e UefiCpuPkg/Cpuid.h: Update CPUID.7H.ECX structure for 5-level paging
  108 f53de8aecb12 edk2: Add License-History.txt
  109 304bff7223a8 edk2: Change License.txt from 2-Clause BSD to BSD+Patent
  110 9ca2b9b9abef edk2: Replace BSD License with BSD+Patent License
  111 2e351cbe8e19 BaseTools: Replace BSD License with BSD+Patent License
  112 4059386c7080 ArmPkg: Replace BSD License with BSD+Patent License
  113 f4dfad05dda2 ArmPlatformPkg: Replace BSD License with BSD+Patent License
  114 9792fb0e65ff ArmVirtPkg: Replace BSD License with BSD+Patent License
  115 a1594be9c788 BeagleBoardPkg: Replace BSD License with BSD+Patent License
  116 f3342b7a69bd CorebootModulePkg: Replace BSD License with BSD+Patent License
  117 d2e8b7e1462f CorebootPayloadPkg: Replace BSD License with BSD+Patent License
  118 2009f6b4c5cb CryptoPkg: Replace BSD License with BSD+Patent License
  119 9cd9bdc620b4 DynamicTablesPkg: Replace BSD License with BSD+Patent License
  120 878b807a435e EmbeddedPkg: Replace BSD License with BSD+Patent License
  121 e3ba31da1cd1 EmulatorPkg: Replace BSD License with BSD+Patent License
  122 eb6cb4ce755f FatPkg: Replace BSD License with BSD+Patent License
  123 bcef758cbac5 FmpDevicePkg: Replace BSD License with BSD+Patent License
  124 c0a00b143853 IntelFrameworkModulePkg: Replace BSD License with BSD+Patent License
  125 22a69a5efe1d IntelFrameworkPkg: Replace BSD License with BSD+Patent License
  126 9672cd30563b IntelFsp2Pkg: Replace BSD License with BSD+Patent License
  127 512e23a3339d IntelFsp2WrapperPkg: Replace BSD License with BSD+Patent License
  128 16a16ea6e39a IntelFspPkg: Replace BSD License with BSD+Patent License
  129 194863604898 IntelFspWrapperPkg: Replace BSD License with BSD+Patent License
  130 8f7a05e13966 IntelSiliconPkg: Replace BSD License with BSD+Patent License
  131 9d510e61fcee MdeModulePkg: Replace BSD License with BSD+Patent License
  132 9344f0921518 MdePkg: Replace BSD License with BSD+Patent License
  133 ecf98fbcf858 NetworkPkg: Replace BSD License with BSD+Patent License
  134 9d2eedba985b Nt32Pkg: Replace BSD License with BSD+Patent License
  135 538311f7d3f6 Omap35xxPkg: Replace BSD License with BSD+Patent License
  136 96ae5934cfc3 OptionRomPkg: Replace BSD License with BSD+Patent License
  137 b26f0cf9ee09 OvmfPkg: Replace BSD License with BSD+Patent License
  138 e1d302e55472 PcAtChipsetPkg: Replace BSD License with BSD+Patent License
  139 0eb3de2edc2a QuarkPlatformPkg: Replace BSD License with BSD+Patent License
  140 c9f231d08bdb QuarkSocPkg: Replace BSD License with BSD+Patent License
  141 289b714b7700 SecurityPkg: Replace BSD License with BSD+Patent License
  142 616bb7577171 ShellBinPkg: Replace BSD License with BSD+Patent License
  143 56ba37463a5f ShellPkg: Replace BSD License with BSD+Patent License
  144 fbf06957b9fd SignedCapsulePkg: Replace BSD License with BSD+Patent License
  145 85f7e11021b3 SourceLevelDebugPkg: Replace BSD License with BSD+Patent License
  146 86094561f674 StandaloneMmPkg: Replace BSD License with BSD+Patent License
  147 0acd869796de UefiCpuPkg: Replace BSD License with BSD+Patent License
  148 7ede80607b3f Vlv2DeviceRefCodePkg: Replace BSD License with BSD+Patent License
  149 9dc8036ddf6f Vlv2TbltDevicePkg: Replace BSD License with BSD+Patent License
  150 bcb966958adc AppPkg: Replace BSD License with BSD+Patent License
  151 0a2530ea7f53 StdLib: Replace BSD License with BSD+Patent License
  152 be41238497e9 StdLibPrivateInternalFiles: Replace BSD License with BSD+Patent License
  153 75fae505b735 OvmfPkg: Change License.txt from 2-Clause BSD to BSD+Patent
  154 3806e1fd1397 edk2: Remove Contributions.txt and update Readme.md
  155 a281361014de BaseTools/PatchCheck: Generate error if Contributed-under found
  156 ae2fb9ead47b CorebootPayloadPkg/FbGop: Locate correct framebuffer device
  157 b1e27d175abb BaseTools: Fixed issue in MultiThread Genfds function
  158 2914e8153dd3 BaseTools: Fix corner-cases of --hash feature
  159 1b8caf0d87ea BaseTools: Fix corner-cases of --hash feature
  160 f2b5e04acad2 BaseTools: Fix corner-cases of --hash feature
  161 db4d47fd3ae9 BaseTools: Fix corner-cases of --hash feature
  162 746c5b6238f1 ArmVirtPkg: Update UefiDecompressLib instance
  163 4ffc5aa1d14f BeagleBoardPkg: Update UefiDecompressLib instance
  164 0108a91c5526 EmulatorPkg: Update UefiDecompressLib instance
  165 58e8a1d8044f MdeModulePkg: Move BaseUefiTianoCustomDecompressLib to
  166 9c0f90ffe163 Nt32Pkg: Update to use UefiDecompressLib in MdeModulePkg
  167 8c3677c33f59 Quark: Update to use UefiDecompressLib in MdeModulePkg
  168 f9f757fd098a Vlv2TbltDevicePkg: Update to use UefiDecompressLib in MdeModulePkg
  169 ddb8cedce7e0 IntelFrameworkModulePkg: Fix comments and improve E820 debug output
  170 9a86fd33e941 OvmfPkg: Copy 8259InterruptControllerDxe driver from PcAtChipsetPkg
  171 10fa47e53829 OvmfPkg: Copy Legacy8259 protocol definitions from IntelFrameworkPkg
  172 460ffed242af OvmfPkg/OvmfPkg.dec: Add 8259-related PCDs in OVMF DEC file
  173 c01852433f37 OvmfPkg/8259InterruptControllerDxe: Update to make it build for OVMF
  174 682888a6d236 OvmfPkg/AcpiPlatformDxe: Consume the 8259 PCD defined in OvmfPkg
  175 1a3ffdff82e6 OvmfPkg: Copy 8254TimerDxe driver from PcAtChipsetPkg
  176 e3c787af8c04 OvmfPkg/8254TimerDxe: Update to make it build for OVMF
  177 6d70ade90cab OvmfPkg: Update DSC/FDF files to consume 8259/8254 drivers in OvmfPkg
  178 e0fd9ece26c9 ShellPkg: Clarify the description of acpiview option '-s'
  179 cff96d43730c OvmfPkg/License.txt: remove XenPvBlkDxe from the MIT licensed dir list
  180 07a0f27b0e00 OvmfPkg/License.txt: refresh the MIT license text and include the SPDX ID
  181 6f21d772aa6b OvmfPkg/IndustryStandard/Xen: replace MIT license text with SPDX ID
  182 34131e1b5c09 OvmfPkg/XenBusDxe: replace MIT license text with SPDX ID
  183 174232fa9a90 MdePkg/BaseLib: Remove LongJump.c and SetJump.c
  184 f72f81777b39 MdeModulePkg: introduce PE/COFF image emulator protocol
  185 57df17fe26cd MdeModulePkg/DxeCore: invoke the emulator protocol for foreign images
  186 615a72400bca MdeModulePkg/PciBusDxe: dispatch option ROMs for foreign architectures
  187 26d60374b87d MdeModulePkg/UefiBootManagerLib: allow foreign Driver#### images
  188 095fcfc606bd MdeModulePkg/EbcDxe: implement the PE/COFF emulator protocol
  189 431390dc1f7d MdePkg/UefiBaseType.h: treat EBC as a non-native machine type
  190 2e21e8c4b896 MdeModulePkg/DxeCore: remove explicit EBC handling
  191 87fcc6e8634e CorebootPayloadPkg: Remove the dependency of ShellBinPkg
  192 04af8bf262f1 UefiPayloadPkg: Enhance UEFI payload for coreboot and Slim Bootloader
  193 eb33b3994d06 EmulatorPkg/Unix: Rename GdbRun to GdbRun.sh
  194 68d47eea422d IntelFsp2WrapperPkg: Perform post FSP-S process.
  195 85b01932765d MdeModulePkg/CapsulePei: Change debug MACRO
  196 42d8be0eaac5 MdeModulePkg/CapsulePei: Update the debug code to print 64bit data
  197 05217d210e8d BaseTools:Enable the /MP option of MSVC compiler
  198 87bfb9bcb744 BaseTools:Coding problems cause can not encode FMP Auth Header
  199 0eccea3fbe2f BaseTools: Hash false success with back to back builds
  200 cfb29d2bda57 BaseTools:update ConvertFceToStructurePcd.py with the char order PCD name.
  201 d43056888790 MdeModulePkg/UefiBootManagerLib: fix crash on uninitialized ExitData
  202 2980988575c9 Vlv2TbltDevicePkg: Remove ResetSystem declaration
  203 07accfe398a2 Vlv2TbltDevicePkg: Retire 8254 timer and 8259 module
  204 e2a673b85336 CryptoPkg/BaseCryptLib.h: Add new API to get organization name
  205 912e1e1ee27e CryptoPkg/BaseCryptLib: Add new API to get organization name
  206 1796a39493b2 CryptoPkg/BaseCryptLib.h: Add new API VerifyEKUsInPkcs7Signature
  207 23c3178c4d45 CryptoPkg/BaseCryptLib: Add new API VerifyEKUsInPkcs7Signature
  208 aed90beee510 CryptoPkg/BaseCryptLib.h: Add PKCS1v2 (RSAES-OAEP) support.
  209 933f1990f583 CryptoPkg/BaseCryptLib: Add PKCS1v2 (RSAES-OAEP) support.
  210 52d229238b2d OvmfPkg/QemuVideoDxe: avoid arithmetic on null pointer
  211 dc5bbf10741c OvmfPkg/AcpiPlatformDxe: suppress invalid "deref of undef pointer" warning
  212 e30991740d18 OvmfPkg/AcpiPlatformDxe: catch theoretical nullptr deref in Xen code
  213 c2f643479eb3 OvmfPkg/BasePciCapLib: suppress invalid "nullptr deref" warning
  214 b29e6365c37f NetworkPkg/UefiPxeBcDxe:Add two PCD to control PXE.
  215 1dc1da58306f MdeModulePkg: Change the SMM debug lib instance
  216 c0b2816d69a2 SignedCapsulePkg: Change the SMM debug lib instance
  217 2b5778c68b63 MdePkg/UefiDebugLibDebugPortProtocol: Make it runtime safe
  218 452702d0bc51 MdePkg/UefidebugLibConOut: Make it runtime safe
  219 e72920ec617b MdePkg/UefiDebugLibStdErr: Make it runtime safe
  220 0b836855fb4d BaseTools: Sometime write file not immediate to disk
  221 452b5ad61ddd BaseTools: Enhance Bin Cache database to support save the cache
  222 35c2af00d8c3 BaseTools:fixed the incorrect autogen makefile which cause build failure.
  223 56008eb7f68c BaseTools: Hash false success.. minor change in hash invalidation
  224 00e3e4801467 IntelFsp2WrapperPkg/FspsWrapperPeim: Fix coding style.
  225 40ffb6dc635d Change package maintainer and reviewer of CryptoPkg.
  226 2c0d39ac4704 MdeModulePkg/DxeCapsuleLibFmp: clone ESRT for runtime access
  227 ab7e02a4f86a MdeModulePkg/HiiDatabaseDxe: Release lock on all error return path
  228 81a8a52a6bb2 ShellBinPkg: Remove ShellBinPkg
  229 e7ee4e0da153 MdePkg/BaseIoLibIntrinsic: Remove IoLibIcc.c
  230 5b7255e3d909 MdePkg/BaseLib: Remove support of INTEL tool chain
  231 36082dffd48d BaseTools: Remove ICC tool chain in tools_def.template
  232 04c7a5febd82 MdeModulePkg/AhciPei: Limit max transfer blocknum for 48-bit address
  233 b2b8e872fd1b MdeModulePkg/AhciPei: Add PEI BlockIO support
  234 1a734ed85fda CryptoPkg: add issetugid declaration to fix openssl build on FreeBSD
  235 d976f09d99b7 MdePkg/PiFirmwareFile: express IS_SECTION2 in terms of SECTION_SIZE
  236 fc76bbd94df7 MdePkg/PiFirmwareFile: fix undefined behavior in SECTION_SIZE
  237 d3b3ee09a675 BaseTools/PiFirmwareFile: fix undefined behavior in SECTION_SIZE
  238 1fd227dd2607 MdePkg/PiFirmwareFile: fix undefined behavior in FFS_FILE_SIZE
  239 b9d4847ec258 OvmfPkg/Sec: fix out-of-bounds reads
  240 20029ca22baa EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib
  241 dfaa565559ba MdeModulePkg/DxeCore: Please static checker for false report
  242 c9b3fe1586eb BaseTools: Support customized compiling command
  243 00d2aef80c9a MdeModulePkg/BMMUiLib: Set Handle to NULL after uninstall protocol
  244 5a4f3a3453e7 MdeModulePkg/FileExplorer: Set Handle to NULL after uninstall protocol
  245 60a86abf95aa MdeModulePkg/HiiDB: Minimize memory allocation times after ReadyToBoot
  246 ec4e1af5b94f BaseTools/tools_def.template: Remove tools chain with ASL tool
  247 228a9c2999bd MdePkg/UefiSpec.h: Change comments of EFI_RESET_SYSTEM
  248 efaed0ab678a MdePkg/PiPeiCis.h: Change comments of EFI_PEI_RESET2_SYSTEM
  249 1abe0959f0ea MdePkg/PeiServicesLib.h: Change comments of PeiServicesResetSystem2
  250 d821151e814f MdePkg/PeiServicesLib.c: Change comments of PeiServicesResetSystem2
  251 930fcd9f3acf SecurityPkg/Tcg2Dxe: Change comments of ShutdownTpmOnReset
  252 173cd4723444 MdeModulePkg/ResetSystemLib.h: Change comments of ResetSystem
  253 2662528d9695 MdeModulePkg/DxeResetSystemLib.c: Change comments of ResetSystem
  254 1cff74bb0f2e MdeModulePkg/BaseResetSystemLibNull.c: Change comments of ResetSystem
  255 32f555385fc8 MdeModulePkg/RuntimeResetSystemLib.c: Change comments
  256 99d7570a7a7f MdeModulePkg/PeiResetSystemlib.c: Change comments of ResetSystem
  257 f69cb1082831 MdeModulePkg/ResetSystemRuntimeDxe: Change comments
  258 3bb9b1fad3c6 MdeModulePkg/ResetSystemPei: Change comments of ResetSystem2
  259 eac49c837b32 MdeModulePkg/PeiMain: Change comments of PeiResetSystem2
  260 c676cf740256 MdeModulePkg/NvmExpressHci.c: Change comments
  261 7701cd048712 BeagleBoardPkg/ResetSystemLib: Add new API ResetSystem
  262 446bb6516e94 CorebootPayloadPkg/ResetSystemLib: Add new API ResetSystem
  263 96ed5b28f9ab Nt32Pkg/ResetSystemLib: Add new API ResetSystem
  264 84c0b80de716 OvmfPkg/ResetSystemLib: Add new API ResetSystem
  265 b700a8271912 PcAtChipsetPkg/ResetSystemLib: Add new API ResetSystem
  266 c35bbeebbed2 QuarkSocPkg/ResetSystemLib: Add new API ResetSystem
  267 b5fddfaf477a Vlv2TbltdevicePkg/ResetSystemLib: Add new API ResetSystem
  268 bda4d5be7c97 ArmPkg/ArmSmcPsciResetSystemLib: Add a new API ResetSystem
  269 d943e5ad3b2b ArmVirtPkg/ArmVirtPsciResetSystemLib: Add a new API ResetSystem
  270 06aaf2f82cd1 MdeModulePkg/ResetUtilityLib: Add a new API ResetSystemWithSubtype
  271 0851d7a53a1d MdeModulePkg/ResetUtilityLib: Add a new API ResetSystemWithSubtype
  272 a8a8b408b7de OvmfPkg/PlatformBootManagerLib: Remove dependency on Mps.h
  273 f4c874c45dbc ShellPkg/UefiShellDebug1CommandsLib
  274 5a1ca93a1fa1 ShellPkg/UefiHandleParsingLib: Remove some unused Guids
  275 4e1daa60f537 MdePkg: Removed IPF related code
  276 c17e4a2f5371 MdePkg/UefiDebugLibConOut: make global variable static
  277 7eef381378b7 MdePkg/UefiDebugLibDebugPortProtocol: make global variable static
  278 ffe48f4b6c65 MdePkg/UefiDebugLibStdErr: make global variable static
  279 ea305ce3f8b5 IntelFrameworkModulePkg: make global variable static
  280 2410ac023016 MdeModulePkg/FirmwarePerformanceDxe: make global variable static
  281 9ed8c3a8068a IntelFsp2WrapperPkg/FspWrapperNotifyDxe: make global variable static
  282 4e4b23040786 IntelFrameworkModulePkg: make global variable static
  283 af51cb48a22d MdeModulePkg/StatusCodeHandlerRuntimeDxe: make global variable static
  284 d55d9d066436 NetworkPkg: Remove IpSec driver and application
  285 679906d9bd41 NetworkPkg: Add missing string token in NetworkPkg.uni
  286 8a472b1915fb MdeModulePkg: BaseSerialPortLib16550: Add Mmio32 support
  287 038f929c921c CryptoPkg/BaseCryptLib: Remove the blank line in the comments
  288 e2d3a25f1a31 EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
  289 964f432b9b0a edk2: Remove AppPkg, StdLib, StdLibPrivateInternalFiles
  290 5c5d8d0b2086 edk2: Update ReadMe.md and Maintainer.txt for edk2-libc repo
  291 137cbff041fc QuarkPlatformPkg/AcpiTables: Resolve iASL warnings
  292 b11636239f84 OvmfPkg: introduce EnrollDefaultKeys application
  293 3defea06b2b7 OvmfPkg/EnrollDefaultKeys: update @file comment blocks
  294 05d7f3c3fce5 OvmfPkg/EnrollDefaultKeys: refresh INF file
  295 034dec6ca19d ArmVirtPkg: build EnrollDefaultKeys.efi
  296 85d96998a470 OvmfPkg/EnrollDefaultKeys: clean up minor whitespace wart
  297 32d1440aaddd OvmfPkg/EnrollDefaultKeys: clean up global variable name prefixes
  298 e0d612356e84 OvmfPkg/EnrollDefaultKeys: clean up acronym capitalization in identifiers
  299 a2491a6c82e4 OvmfPkg/EnrollDefaultKeys: remove unneeded EFIAPI call. conv. specifiers
  300 1c9418fcafe3 OvmfPkg/EnrollDefaultKeys: extract typedefs to a header file
  301 a79b115adeab OvmfPkg/EnrollDefaultKeys: split out certificate and signature constants
  302 7eeaa7585a98 OvmfPkg/EnrollDefaultKeys: extract MICROSOFT_VENDOR_GUID
  303 86bf2672a35a OvmfPkg/EnrollDefaultKeys: describe functions with leading comment blocks
  304 c9727ff1df0d OvmfPkg/EnrollDefaultKeys: document the steps of the entry point function
  305 392404167fb1 OvmfPkg: introduce OVMF_PK_KEK1_APP_PREFIX_GUID
  306 be9470b3c91f OvmfPkg/EnrollDefaultKeys: enroll PK/KEK1 from the Type 11 SMBIOS table
  307 9fb2ce2f465d OvmfPkg/EnrollDefaultKeys: remove Red Hat's hard-coded PK/KEK1
  308 27e4d6ae25a0 OvmfPkg/XenSupport: remove usage of prefetchable PCI host bridge aperture
  309 d63610df60f7 OvmfPkg/XenSupport: use a correct PCI host bridge aperture for BAR64
  310 0c40c9c925ca OvmfPkg/XenSupport: turn off address decoding before BAR sizing
  311 a41b12574ee1 MdePkg: Add PcdSpeculationBarrierType
  312 aec74656893a MdePkg/BaseLib: Use PcdSpeculationBarrierType
  313 24f4547c5c12 QuarkPlatformPkg: Set PcdSpeculationBarrierType to CPUID
  314 6dd88437b1d9 UefiCpuPkg/MpInitLibUp: Add uniprocessor MpInitLib
  315 ba1362d882e9 UefiCpuPkg/CpuMpPei: Add missing CpuLib class
  316 c793d24b0103 QuarkPlatformPkg: Use uniprocessor MpInitLibUp
  317 0edaa8c16204 QuarkSocPkg/SmmAccessDxe: Set region to UC on SMRAM close
  318 80d28ddeb2ce QuarkPlatformPkg/PlatformInit: Resolve ResetSystemLib name collision
  319 0d6de095a5ae BaseTools: split long line into multiple short lines.
  320 c4c8c340ef01 BaseTools: Add GCC flags to Basetool build.
  321 273190e18975 BaseTools:Fixed an issue where the order of GuidS changed in guid.xref
  322 727d7ebaa9f3 OvmfPkg/EnrollDefaultKeys: suppress incorrect compiler warning
  323 d02741225887 Vlv2TbltDevicePkg: Remove NetworkPkg/IpSecDxe module
  324 fbb0ec7ea4c0 BaseTools: support arm64 as a platform name in addition to aarch64
  325 f5245a1db144 SecurityPkg/OpalPassword: Add warning message for Secure Erase
  326 8b4b2fb9a183 BaseTools:corrected error message for the DatumType error
  327 0cb3f77153b7 BaseTools:ECC report errors on account of analyze special characters
  328 26e2b295ec7a BaseTools:Remove unused BaseTools\Source\Python\UPT\Dll
  329 df7c81b5b219 BaseTools:The code used to test python module is moved to edksetup
  330 a642e2b42ed5 MdeModulePkg/DumpDynPcd: Add application to dump dynamic PCD settings
  331 da815cf390cc NetworkPkg DSC: Add the required ARM library to pass ARM build
  332 1e948802e755 NetworkPkg: Add DSC/FDF include segment files to NetworkPkg.
  333 23ea5bfea2a2 NetworkPkg: Add package level include DSC file
  334 792f0d4f12ad EmulatorPkg: Support a second GOP window
  335 1b72fd5121b5 BaseTools/VfrCompile: Remove framework VFR support
  336 8dc1f4ec0f54 FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage
  337 9feffce9c6b5 IntelFrameworkModulePkg: Remove PcdFrameworkCompatibilitySupport usage
  338 728c7ffac317 MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
  339 2e217e402215 MdeModulePkg/CdExpress: Remove PcdFrameworkCompatibilitySupport usage
  340 059cf575eb6c MdeModulePkg/Setup: Remove PcdFrameworkCompatibilitySupport usage
  341 1df91bb772a1 QuarkPlatformPkg: Remove PcdFrameworkCompatibilitySupport usage
  342 868f139b086a SignedCapsulePkg: Remove PcdFrameworkCompatibilitySupport usage
  343 3e2ec1891f98 UefiCpuPkg: Remove PcdFrameworkCompatibilitySupport usage
  344 2c835dee82a4 Vlv2TbltDevicePkg: Remove PcdFrameworkCompatibilitySupport usage
  345 4acc5750f055 MdeModulePkg: Remove PcdFrameworkCompatibilitySupport
  346 e0972cfc7df1 SecurityPkg/SecurityPkg.dec: Change BlockSID default policy
  347 539a6c931884 SecurityPkg/OpalPassword: Change send BlockSID policy
  348 46e696088a0a SecurityPkg/OpalPassword: Fix "Enable Feature" Menu disappear issue
  349 7d83e9e84793 BaseTools:Delete FrameworkDatabase from BaseTools/Conf
  350 c648e9058717 BaseTools: Fix the issue that build report missing Module Size
  351 51e9be0cc3d1 Vlv2TbltDevicePkg:Delete FrameworkDatabase from Vlv2TbltDevicePkg
  352 49693202ec9c Revert "BaseTools:code of test python module is moved to edksetup"
  353 20af3a7a3ec4 FatPkg/FatPei: Remove BootInRecoveryMode PPI DEPEX.
  354 0a506fc7ab8b MdeModulePkg: Remove BootInRecoveryMode PPI
  355 30a888b5a0a0 IntelSiliconPkg/IntelVTdDxe: Do global invalidation before boot
  356 8522ce2c9f88 Maintainers.txt: Update the name of 'Hao Wu' to 'Hao A Wu'
  357 ad9df9377028 EmulatorPkg: Change the cpu frequency to a non-zero value
  358 0e92957eaa50 EmulatorPkg: Make the shell be the first boot option
  359 68cafc7bf057 EmulatorPkg: Save the modified order after rebooting
  360 21d5bf86b223 EmulatorPkg: Remove framework pkgs dependency from EmulatorPkg
  361 3eac7496bef1 Vlv2TbltDevicePkg/PlatformFlashAccessLib: Add error return
  362 f635a42e14f4 Vlv2TbltDevicePkg/AcpiPlatform: Change Size type to UINTN
  363 24990e84d323 Vlv2TbltDevicePkg/AcpiPlatform: Add variable protocols to depex
  364 e5a0cf912531 Vlv2TbltDevicePkg/PpmPolicy: Fix call to MP Services Protocol
  365 f4aa56e7cc38 Vlv2TbltDevicePkg/SmBiosMiscDxe: Fix GCC build issue
  366 927926f45485 Vlv2TbltDevicePkg: Find UEFI Shell using gUefiShellFileGuid
  367 5cf0cb1582af Vlv2TbltDevicePkg: Build full UEFI Shell from sources
  368 86be1a2eaa8a Vlv2TbltDevicePkg: Use CpuDxe from UefiCpuPkg
  369 76386f4292c3 Vlv2TbltDevicePkg: Add PchInitSmm module
  370 a4390a28b8ac Vlv2TbltDevicePkg: Always enable QuietBoot to produce BGRT
  371 ef81f9f12af4 Vlv2TbltDevicePkg/Stitch/Gcc: Update default setting binary
  372 9d87197edadc Vlv2TbltDevicePkg: Remove directory assumptions from build scripts
  373 447597f123c0 Vlv2TbltDevicePkg/Capsule: Do not clear UEFI varstore
  374 f2197f0d0c3d Vlv2TbltDevicePkg/Capsule: Remove path to openssl tools
  375 1bb262ea0440 Vlv2TbltDevicePkg/Capsule: Add Linux/LVFS generation scripts
  376 62fdb9bbc505 Vlv2TbltDevicePkg: Update Readme.md
  377 cd5147734cbe OvmfPkg/QemuVideoDxe: Remove dependency on OptionRomPkg
  378 70023bab7efe MdeModulePkg: BaseSerialPortLib16550: Add missing Pcd to UNI
  379 afe8c4110c07 BaseTools: Correct the value assignment for StructurePcd
  380 6b74ccf0f8b5 BaseTools:Enables FFS to support the GUID value format
  381 ae3c247dbc94 BaseTools: Check the fread function and avoid dead loop
  382 f684c3f5eef4 Coreboot*Pkg: Retire CorebootPayloadPkg and CorebootModulePkg
  383 e2aaec4b080c UefiCpuPkg: Remove double \r
  384 4ff689d98277 BaseTools/VfrCompile: clean Framework Vfr support
  385 c4521157bf57 ArmPkg/CompilerIntrinsicsLib: Remove unused sources and clean up .inf
  386 482704df27cc ArmPkg/CompilerIntrinsicsLib: Add memcmp, memmove intrinsics for MSFT
  387 d039044be43d ArmPkg/CompilerIntrinsicsLib: Add lasr ARM assembly source for GCC
  388 96ef5a8e30a8 ArmPkg/CompilerIntrinsicsLib: Add uread, uwrite GCC assembly sources
  389 5347c48016f2 edk2: Remove packages moved to edk2-platforms
  390 83f997e58dca edk2: Update Maintainers.txt for packages moved to edk2-platforms
  391 cf574f0a1838 UefiCpuPkg PiSmmCpuDxeSmm: Only support IN/OUT IO save state read (CVE-2018-12182)
  392 4000f249ba5c SecurityPkg: Remove double \r
  393 e90ea9470a88 SecurityPkg/AuthSeriableLib: Always delete variable in certdb
  394 f0b8166505d2 EmbeddedPkg DSC: Use ReportStatusCodeLib (DXE) in MdeModulePkg
  395 32f345eba719 EmbeddedPkg/PrePiLib: Drop dependency on IntelFramework[Module]Pkg
  396 a11d371ef660 OvmfPkg: Remove duplicated library classes in dxe drivers section in DSC
  397 a40f30398ab0 MdePkg: Add ACPI 6.3 header file
  398 3f0055c8de8a MdePkg: Merge TianoCustomDecompress algorithm into
  399 805313dbac3a Nt32Pkg: Update UefiDecompressLib instance path
  400 bf502ae44919 MdeModulePkg/Library: Remove BaseUefiTianoCustomDecompressLib
  401 89d7c543cf71 OvmfPkg/EnrollDefaultKeys: import the non-default key into db
  402 631195044ff0 OvmfPkg: Update DSC/FDF to use NetworkPkg's include fragment file.
  403 bc01f4971d63 Nt32Pkg: Update DSC/FDF to use NetworkPkg's include fragment file.
  404 157a3b1aa50f ArmVirtPkg: Update DSC/FDF to use NetworkPkg's include fragment file.
  405 3b7a897cd8e3 EmulatorPkg: Update DSC/FDF to use NetworkPkg's include fragment file.
  406 60e95bf5094f OvmfPkg/PlatformPei: assign PciSize on both i440fx/q35 branches explicitly
  407 9a2e8d7c65ef OvmfPkg/PlatformPei: hoist PciBase assignment above the i440fx/q35 branching
  408 75136b29541b OvmfPkg/PlatformPei: reorder the 32-bit PCI window vs. the PCIEXBAR on q35
  409 39b9a5ffe661 OvmfPkg/PlatformPei: fix MTRR for low-RAM sizes that have many bits clear
  410 4d5d7812786d UefiCpuPkg: Remove double \r
  411 7afa0cea8f2c Nt32Pkg: Remove it
  412 147e6e70f2be Maintainers.txt: Remove Nt32Pkg reference after Nt32Pkg is removed
  413 c2eab535c679 CryptoPkg/BaseCryptLib: remove unused code for IPF
  414 fb5573b83007 Maintainers.txt: Add 'Zhichao Gao' for ShellPkg review
  415 8da8daafc905 ShellPkg: acpiview: Add GT Frame Number validation to GTDT parser
  416 1887b995a359 ShellPkg/UefiShellAcpiViewCommandLib: Fix PPTT cache attributes validation
  417 41ac2076a7c6 UefiCpuPkg CpuCommonFeaturesLib: Remove CPU generation check
  418 59f20e8d7100 ShellPkg: Update DSC to use NetworkPkg's include fragment file
  419 48f43c2c56ee EmbeddedPkg: Update DSC to use NetworkPkg's include fragment file
  420 7b84de939489 ShellPkg: Display VENDOR_ID in ASCII when parsing PPTT
  421 911efe279ec3 ShellPkg: Add NetworkPkg/NetworkPkg.dec as the package dependency
  422 110d4729b58e EmulatorPkg: Add NetworkPkg/NetworkPkg.dec as the package dependency
  423 cc99ea9422be Maintainers.txt: remove UTF-8 BOM wrongly added in commit 147e6e70
  424 66b845ae06f1 BaseTools: Fix private includes for FILE_GUID override
  425 a7ef158b0752 BaseTools: Library hashing fix and optimization for --hash feature
  426 c1387446edbb BaseTools:Update mailing list address in BaseTools error messages
  427 9ca1f1446a5a BaseTools: Remove './SecMain' from 'run' target
  428 3604174718e2 IntelFrameworkModulePkg/DebugLib: Fix string copy issue
  429 4718129bf94e BaseTools: Update Conf/target.template with the default EmulatorPkg.dsc
  430 01e074bfbcf0 MdeModulePkg: Update MdeModulePkg.dsc to remove Network related modules
  431 e812a812c1a0 BaseTools: Remove './SecMain' from 'run' target
  432 c0fd7f734e2d BaseTools:Change the path of the file that Binary Cache
  433 4542f8b8135f NetworkPkg: Move Network library and drivers from MdeModulePkg to NetworkPkg
  434 07135c122058 NetworkPkg: Move Network library header file from MdeModulePkg to NetworkPkg
  435 ec56fa278428 MdeModulePkg: Remove network library header file from package DEC file
  436 005a5f2dea5c UefiPayloadPkg: Update Package DSC files to refer to NetworkLibs.dsc.inc
  437 da82eb1c93b4 ArmPkg: Update Package DSC to remove unused NetLib
  438 21d9dc21f818 SignedCapsulePkg: Update Package DSC to remove unused network libs
  439 5a9e23ceb991 Maintainers.txt: update mailing list information
  440 4abfc66db088 Maintainers.txt: update UEFI payload information
  441 591b8cb7f3d0 IntelFsp2Pkg/SplitFspBin.py: Support rebasing 1.x binary.
  442 9d73c5608d22 IntelFsp2Pkg/SplitFspBin.py: Revert FSP 1.x support.
  443 e2afc8ab59c3 MdeModulePkg/AhciPei: Fix device cannot be found in non-S3 path
  444 3a0b998bf3b5 BaseTools:Extend the binary cache to support library cache
  445 b6cfa686e42d BaseTools:Update binary cache restore time to current time
  446 85af0b8116f3 ArmPkg: import Berkeley Softfloat library as git submodule
  447 3cc57695df5a ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library
  448 99243102b467 ArmPkg/ArmSoftFloatLib: remove source files that are no longer used
  449 8594c2073cdb ArmPkg/ArmLib ARM: set .fpu to let Clang 7 assemble ArmV7Support.S
  450 371e7001e8d5 ArmPkg/ArmSoftFloatLib GCC4x: fix build failure
  451 6fcc3d68eb02 CryptoPkg/OpensslLib: Modify process_files.pl for upgrading OpenSSL
  452 7eee0488944f CryptoPkg/OpensslLib: Exclude unnecessary files in process_files.pl
  453 96dbfad9b00b CryptoPkg/IntrinsicLib: Fix possible unresolved external symbol issue
  454 5db2fbff23ae CryptoPkg/OpensslLib: Prepare for upgrading OpenSSL
  455 9c3c5c91ce6d CryptoPkg/OpensslLib: Fix cross-build problem for AARCH64
  456 c51f8bae7cab CryptoPkg: Fix possible build problem with Clang
  457 b73967891824 CryptoPkg/OpensslLib: Add functions for upgrading OpenSSL1_1_1b
  458 456dd8b99f00 CryptoPkg: Upgrade OpenSSL to 1.1.1b
  459 acfb90911840 CryptoPkg/BaseCryptLib: Make HMAC_CTX size backward compatible
  460 f03859ea6c8f CryptoPkg CLANG35: add -std=c99 to dodge OpenSSL C atomics issue
  461 305cd4f783fe Revert "OvmfPkg/PlatformPei: fix MTRR for low-RAM sizes that have many bits clear"
  462 eb4d62b0779c Revert "OvmfPkg/PlatformPei: reorder the 32-bit PCI window vs. the PCIEXBAR on q35"
  463 753d3d6f43b2 Revert "OvmfPkg/PlatformPei: hoist PciBase assignment above the i440fx/q35 branching"
  464 d45349841113 Revert "OvmfPkg/PlatformPei: assign PciSize on both i440fx/q35 branches explicitly"
  465 b07de0974b65 OvmfPkg: raise the PCIEXBAR base to 2816 MB on Q35
  466 49edde15230a OvmfPkg/PlatformPei: set 32-bit UC area at PciBase / PciExBarBase (pc/q35)
  467 466c66341a99 CryptoPkg: Fix build problem with XCODE
  468 4ff8b6b1d8b7 FmpDevicePkg: Add TimerLib to DSC file
  469 7cea4d71a8a8 EmulatorPkg: don't display the cpu current speed
  470 a1539c46958f UefiPayloadPkg: Remove legacy PIC 8259 driver
  471 be689ecc93e5 Revert "EmulatorPkg: don't display the cpu current speed"
  472 cbfdc1b2df65 Maintainers.txt: Remove Network maintainers for MdeModulePkg/Universal/Network
  473 0a1b13fd4d22 CryptoPkg/OpensslLib: fix VS2017 build failure
  474 b8993a34ae00 edk2: Update additional licenses in Readme.md
  475 98d8f194e5a6 CryptoPkg/IntrinsicLib: Fix CLANG38 IA32 build problem
  476 b66c4c4ff918 Revert "UefiPayloadPkg: Remove legacy PIC 8259 driver"
  477 20d2e5a125e3 CryptoPkg/OpensslLib: fix build break caused by missing library

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugs.launchpad.net/qemu/+bug/1831477
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2 years agoroms/Makefile.edk2: define edk2-stable201905 network feature test macros
Laszlo Ersek [Thu, 6 Jun 2019 09:59:09 +0000 (11:59 +0200)] 
roms/Makefile.edk2: define edk2-stable201905 network feature test macros

Due to edk2 commits 631195044ff0 ("OvmfPkg: Update DSC/FDF to use
NetworkPkg's include fragment file.", 2019-05-16) and 157a3b1aa50f
("ArmVirtPkg: Update DSC/FDF to use NetworkPkg's include fragment file.",
2019-05-16), we'll have to pefix the HTTP_BOOT_ENABLE and TLS_ENABLE build
flags with "NETWORK_", for building edk2 at tag "edk2-stable201905".

Right now the new flags are no-ops, so we can insert them separately,
before advancing our edk2 submodule reference. We will remove the old
flags afterwards.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugs.launchpad.net/qemu/+bug/1831477
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2 years agoMerge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-06-14' into staging
Peter Maydell [Fri, 14 Jun 2019 13:46:13 +0000 (14:46 +0100)] 
Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-06-14' into staging

Block patches:
- Allow blockdev-backup from nodes that are not in qemu's main AIO
  context to newly added nodes
- Add salvaging mode to qemu-img convert
- Minor fixes to tests, documentation, and for less Valgrind annoyance

# gpg: Signature made Fri 14 Jun 2019 14:38:11 BST
# gpg:                using RSA key 91BEB60A30DB3E8857D11829F407DB0061D5CF40
# gpg:                issuer "mreitz@redhat.com"
# gpg: Good signature from "Max Reitz <mreitz@redhat.com>" [full]
# Primary key fingerprint: 91BE B60A 30DB 3E88 57D1  1829 F407 DB00 61D5 CF40

* remotes/maxreitz/tags/pull-block-2019-06-14:
  iotests: Test qemu-img convert -C --salvage
  iotests: Test qemu-img convert --salvage
  blkdebug: Inject errors on .bdrv_co_block_status()
  blkdebug: Add "none" event
  blkdebug: Add @iotype error option
  qemu-img: Add salvaging mode to convert
  qemu-img: Move quiet into ImgConvertState
  blockdev: Overlays are not snapshots
  qapi/block-core: Overlays are not snapshots
  qemu-img: Fix options leakage in img_rebase()
  iotests: restrict 254 to support only qcow2
  hw/block/fdc: floppy command FIFO memory initialization
  iotests: Fix intermittent failure in 219
  iotests: Filter 175's allocation information
  event_match: always match on None value
  iotests: add iotest 256 for testing blockdev-backup across iothread contexts
  iotests.py: rewrite run_job to be pickier
  QEMUMachine: add events_wait method
  iotests.py: do not use infinite waits
  blockdev-backup: don't check aio_context too early

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agoiotests: Test qemu-img convert -C --salvage
Max Reitz [Tue, 7 May 2019 20:35:08 +0000 (22:35 +0200)] 
iotests: Test qemu-img convert -C --salvage

We do not support this combination (yet), so this should yield an error
message.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Tested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-8-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests: Test qemu-img convert --salvage
Max Reitz [Tue, 7 May 2019 20:35:07 +0000 (22:35 +0200)] 
iotests: Test qemu-img convert --salvage

This test converts a simple image to another, but blkdebug injects
block_status and read faults at some offsets.  The resulting image
should be the same as the input image, except that sectors that could
not be read have to be 0.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190507203508.18026-7-mreitz@redhat.com
Tested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
[mreitz: Dropped superfluous printf from _filter_offsets, as suggested
         by Vladimir; disable test for VDI and IMGOPTSSYNTAX]
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoblkdebug: Inject errors on .bdrv_co_block_status()
Max Reitz [Tue, 7 May 2019 20:35:06 +0000 (22:35 +0200)] 
blkdebug: Inject errors on .bdrv_co_block_status()

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-6-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoblkdebug: Add "none" event
Max Reitz [Tue, 7 May 2019 20:35:05 +0000 (22:35 +0200)] 
blkdebug: Add "none" event

Together with @iotypes and @sector, this can be used to trap e.g. the
first read or write access to a certain sector without having to know
what happens internally in the block layer, i.e. which "real" events
happen right before such an access.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-5-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoblkdebug: Add @iotype error option
Max Reitz [Tue, 7 May 2019 20:35:04 +0000 (22:35 +0200)] 
blkdebug: Add @iotype error option

This new error option allows users of blkdebug to inject errors only on
certain kinds of I/O operations.  Users usually want to make a very
specific operation fail, not just any; but right now they simply hope
that the event that triggers the error injection is followed up with
that very operation.  That may not be true, however, because the block
layer is changing (including blkdebug, which may increase the number of
types of I/O operations on which to inject errors).

The new option's default has been chosen to keep backwards
compatibility.

Note that similar to the internal representation, we could choose to
expose this option as a list of I/O types.  But there is no practical
use for this, because as described above, users usually know exactly
which kind of operation they want to make fail, so there is no need to
specify multiple I/O types at once.  In addition, exposing this option
as a list would require non-trivial changes to qemu_opts_absorb_qdict().

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-4-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoqemu-img: Add salvaging mode to convert
Max Reitz [Tue, 7 May 2019 20:35:03 +0000 (22:35 +0200)] 
qemu-img: Add salvaging mode to convert

This adds a salvaging mode (--salvage) to qemu-img convert which ignores
read errors and treats the respective areas as containing only zeroes.
This can be used for instance to at least partially recover the data
from terminally corrupted qcow2 images.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-3-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoqemu-img: Move quiet into ImgConvertState
Max Reitz [Tue, 7 May 2019 20:35:02 +0000 (22:35 +0200)] 
qemu-img: Move quiet into ImgConvertState

Move img_convert()'s quiet flag into the ImgConvertState so it is
accessible by nested functions.  -q dictates that it suppresses anything
but errors, so if those functions want to emit warnings, they need to
query this flag first.  (There currently are no such warnings, but there
will be as of the next patch.)

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190507203508.18026-2-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoblockdev: Overlays are not snapshots
Max Reitz [Mon, 3 Jun 2019 20:22:36 +0000 (22:22 +0200)] 
blockdev: Overlays are not snapshots

There are error messages which refer to an overlay node as the snapshot.
That is wrong, those are two different things.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20190603202236.1342-3-mreitz@redhat.com
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoqapi/block-core: Overlays are not snapshots
Max Reitz [Mon, 3 Jun 2019 20:22:35 +0000 (22:22 +0200)] 
qapi/block-core: Overlays are not snapshots

A snapshot is something that reflects the state of something at a
certain point in time.  It does not change.

The file our snapshot commands create (or the node they install) is not
a snapshot, as it does change over time.  It is an overlay.  We cannot
do anything about the parameter names, but we can at least adjust the
descriptions to reflect that fact.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20190603202236.1342-2-mreitz@redhat.com
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoqemu-img: Fix options leakage in img_rebase()
Max Reitz [Tue, 28 May 2019 19:53:38 +0000 (21:53 +0200)] 
qemu-img: Fix options leakage in img_rebase()

img_rebase() can leak a QDict in two occasions.  Fix it.

Coverity: CID 1401416
Fixes: d16699b64671466b42079c45b89127aeea1ca565
Fixes: 330c72957196e0ae382abcaa97ebf4eb9bc8574f
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190528195338.12376-1-mreitz@redhat.com
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests: restrict 254 to support only qcow2
Vladimir Sementsov-Ogievskiy [Wed, 5 Jun 2019 15:54:05 +0000 (18:54 +0300)] 
iotests: restrict 254 to support only qcow2

Test fails at least for qcow, because of different cluster sizes in
base and top (and therefore different granularities of bitmaps we are
trying to merge).

The test aim is to check block-dirty-bitmap-merge between different
nodes functionality, no needs to check all formats. So, let's just drop
support for anything except qcow2.

Reported-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190605155405.104384-1-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agohw/block/fdc: floppy command FIFO memory initialization
Andrey Shinkevich [Wed, 29 May 2019 18:20:27 +0000 (21:20 +0300)] 
hw/block/fdc: floppy command FIFO memory initialization

The uninitialized memory allocated for the command FIFO of the
floppy controller during the VM hardware initialization incurs
many unwanted reports by Valgrind when VM state is being saved.
That verbosity hardens a search for the real memory issues when
the iotests run. Particularly, the patch eliminates 20 unnecessary
reports of the Valgrind tool in the iotest #169.

Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Message-id: 1559154027-282547-1-git-send-email-andrey.shinkevich@virtuozzo.com
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests: Fix intermittent failure in 219
Max Reitz [Thu, 16 May 2019 16:11:14 +0000 (18:11 +0200)] 
iotests: Fix intermittent failure in 219

In 219, we wait for the job to make progress before we emit its status.
This makes the output reliable.  We do not wait for any more progress if
the job's current-progress already matches its total-progress.

Unfortunately, there is a bug: Right after the job has been started,
it's possible that total-progress is still 0.  In that case, we may skip
the first progress-making step and keep ending up 64 kB short.

To fix that bug, we can simply wait for total-progress to reach 4 MB
(the image size) after starting the job.

Reported-by: Karen Mezick <kmezick@redhat.com>
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1686651
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190516161114.27596-1-mreitz@redhat.com
Reviewed-by: John Snow <jsnow@redhat.com>
[mreitz: Adjusted commit message as per John's proposal]
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests: Filter 175's allocation information
Max Reitz [Thu, 16 May 2019 14:43:19 +0000 (16:43 +0200)] 
iotests: Filter 175's allocation information

It is possible for an empty file to take up blocks on a filesystem, for
example:

$ qemu-img create -f raw test.img 1G
Formatting 'test.img', fmt=raw size=1073741824
$ mkfs.ext4 -I 128 -q test.img
$ mkdir test-mount
$ sudo mount -o loop test.img test-mount
$ sudo touch test-mount/test-file
$ stat -c 'blocks=%b' test-mount/test-file
blocks=8

These extra blocks (one cluster) are apparently used for metadata,
because they are always there, on top of blocks used for data:

$ sudo dd if=/dev/zero of=test-mount/test-file bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00135339 s, 775 MB/s
$ stat -c 'blocks=%b' test-mount/test-file
blocks=2056

Make iotest 175 take this into account.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Nir Soffer <nsoffer@redhat.com>
Message-id: 20190516144319.12570-1-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoevent_match: always match on None value
John Snow [Tue, 28 May 2019 18:38:57 +0000 (14:38 -0400)] 
event_match: always match on None value

Before, event_match didn't always recurse if the event value was not a
dictionary, and would instead check for equality immediately.

By delaying equality checking to post-recursion, we can allow leaf
values like "5" to match "None" and take advantage of the generic
None-returns-True clause.

This makes the matching a little more obviously consistent at the
expense of being able to check for explicit None values, which is
probably not that important given what this function is used for.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20190528183857.26167-1-jsnow@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests: add iotest 256 for testing blockdev-backup across iothread contexts
John Snow [Thu, 23 May 2019 17:06:43 +0000 (13:06 -0400)] 
iotests: add iotest 256 for testing blockdev-backup across iothread contexts

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20190523170643.20794-6-jsnow@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
[mreitz: Moved from 250 to 256]
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests.py: rewrite run_job to be pickier
John Snow [Thu, 23 May 2019 17:06:42 +0000 (13:06 -0400)] 
iotests.py: rewrite run_job to be pickier

Don't pull events out of the queue that don't belong to us;
be choosier so that we can use this method to drive jobs that
were launched by transactions that may have more jobs.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20190523170643.20794-5-jsnow@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoQEMUMachine: add events_wait method
John Snow [Thu, 23 May 2019 17:06:41 +0000 (13:06 -0400)] 
QEMUMachine: add events_wait method

Instead of event_wait which looks for a single event, add an events_wait
which can look for any number of events simultaneously. However, it
will still only return one at a time, whichever happens first.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20190523170643.20794-4-jsnow@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoiotests.py: do not use infinite waits
John Snow [Thu, 23 May 2019 17:06:40 +0000 (13:06 -0400)] 
iotests.py: do not use infinite waits

Cap waits to 60 seconds so that iotests can fail gracefully if something
goes wrong.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20190523170643.20794-3-jsnow@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoblockdev-backup: don't check aio_context too early
John Snow [Thu, 23 May 2019 17:06:39 +0000 (13:06 -0400)] 
blockdev-backup: don't check aio_context too early

in blockdev_backup_prepare, we check to make sure that the target is
associated with a compatible aio context. However, do_blockdev_backup is
called later and has some logic to move the target to a compatible
aio_context. The transaction version will fail certain commands
needlessly early as a result.

Allow blockdev_backup_prepare to simply call do_blockdev_backup, which
will ultimately decide if the contexts are compatible or not.

Note: the transaction version has always disallowed this operation since
its initial commit bd8baecd (2014), whereas the version of
qmp_blockdev_backup at the time, from commit c29c1dd312f, tried to
enforce the aio_context switch instead. It's not clear, and I can't see
from the mailing list archives at the time, why the two functions take a
different approach. It wasn't until later in efd7556708b (2016) that the
standalone version tried to determine if it could set the context or
not.

Reported-by: aihua liang <aliang@redhat.com>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1683498
Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20190523170643.20794-2-jsnow@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2 years agoMerge remote-tracking branch 'remotes/awilliam/tags/vfio-updates-20190613.0' into...
Peter Maydell [Fri, 14 Jun 2019 08:33:55 +0000 (09:33 +0100)] 
Merge remote-tracking branch 'remotes/awilliam/tags/vfio-updates-20190613.0' into staging

VFIO updates 2019-06-13

 - Hide resizable BAR capability to prevent false guest resizing
   (Alex Williamson)

 - Allow relocation to fix bogus MSI-X hardware (Alex Williamson)

 - Condense IRQ setup into a common helper (Eric Auger)

# gpg: Signature made Thu 13 Jun 2019 18:24:43 BST
# gpg:                using RSA key 239B9B6E3BB08B22
# gpg: Good signature from "Alex Williamson <alex.williamson@redhat.com>" [full]
# gpg:                 aka "Alex Williamson <alex@shazbot.org>" [full]
# gpg:                 aka "Alex Williamson <alwillia@redhat.com>" [full]
# gpg:                 aka "Alex Williamson <alex.l.williamson@gmail.com>" [full]
# Primary key fingerprint: 42F6 C04E 540B D1A9 9E7B  8A90 239B 9B6E 3BB0 8B22

* remotes/awilliam/tags/vfio-updates-20190613.0:
  vfio/common: Introduce vfio_set_irq_signaling helper
  vfio/pci: Allow MSI-X relocation to fixup bogus PBA
  vfio/pci: Hide Resizable BAR capability

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agoMerge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-06-13' into staging
Peter Maydell [Thu, 13 Jun 2019 17:17:32 +0000 (18:17 +0100)] 
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-06-13' into staging

nbd patches for 2019-06-13

- add 'qemu-nbd --pid-file'
- NBD-related iotest improvements
- NBD code refactoring in preparation for reconnect

# gpg: Signature made Thu 13 Jun 2019 16:37:58 BST
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
# gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
# gpg:                 aka "[jpeg image of size 6874]" [full]
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-nbd-2019-06-13:
  block/nbd: merge NBDClientSession struct back to BDRVNBDState
  block/nbd: merge nbd-client.* to nbd.c
  block/nbd-client: drop stale logout
  nbd/server: Nicer spelling of max BLOCK_STATUS reply length
  iotests: Let 233 run concurrently
  iotests: Use qemu-nbd's --pid-file
  qemu-nbd: Do not close stderr
  iotests.py: Add qemu_nbd_early_pipe()
  qemu-nbd: Add --pid-file option

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agovfio/common: Introduce vfio_set_irq_signaling helper
Eric Auger [Thu, 13 Jun 2019 15:57:37 +0000 (09:57 -0600)] 
vfio/common: Introduce vfio_set_irq_signaling helper

The code used to assign an interrupt index/subindex to an
eventfd is duplicated many times. Let's introduce an helper that
allows to set/unset the signaling for an ACTION_TRIGGER,
ACTION_MASK or ACTION_UNMASK action.

In the error message, we now use errno in case of any
VFIO_DEVICE_SET_IRQS ioctl failure.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2 years agovfio/pci: Allow MSI-X relocation to fixup bogus PBA
Alex Williamson [Thu, 13 Jun 2019 15:57:36 +0000 (09:57 -0600)] 
vfio/pci: Allow MSI-X relocation to fixup bogus PBA

The MSI-X relocation code can sometimes be used to work around bogus
MSI-X capabilities, but this test for whether the PBA is outside of
the specified BAR causes the device to error before we can apply a
relocation.  Let it proceed if we intend to relocate MSI-X anyway.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2 years agovfio/pci: Hide Resizable BAR capability
Alex Williamson [Thu, 13 Jun 2019 15:57:36 +0000 (09:57 -0600)] 
vfio/pci: Hide Resizable BAR capability

The resizable BAR capability is currently exposed read-only from the
kernel and we don't yet implement a protocol for virtualizing it to
the VM.  Exposing it to the guest read-only introduces poor behavior
as the guest has no reason to test that a control register write is
accepted by the hardware.  This can lead to cases where the guest OS
assumes the BAR has been resized, but it hasn't.  This has been
observed when assigning AMD Vega GPUs.

Note, this does not preclude future enablement of resizable BARs, but
it's currently incorrect to expose this capability as read-only, so
better to not expose it at all.

Reported-by: James Courtier-Dutton <james.dutton@gmail.com>
Tested-by: James Courtier-Dutton <james.dutton@gmail.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2 years agoblock/nbd: merge NBDClientSession struct back to BDRVNBDState
Vladimir Sementsov-Ogievskiy [Tue, 11 Jun 2019 10:27:20 +0000 (13:27 +0300)] 
block/nbd: merge NBDClientSession struct back to BDRVNBDState

No reason to keep it separate, it differs from others block driver
behavior and therefore confuses. Instead of generic
  'state = (State*)bs->opaque' we have to use special helper.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20190611102720.86114-4-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
2 years agoblock/nbd: merge nbd-client.* to nbd.c
Vladimir Sementsov-Ogievskiy [Tue, 11 Jun 2019 10:27:19 +0000 (13:27 +0300)] 
block/nbd: merge nbd-client.* to nbd.c

No reason for keeping driver handlers realization separate from driver
structure. We can get rid of extra header file.

While being here, fix comments style, restore forgotten comments for
NBD_FOREACH_REPLY_CHUNK and nbd_reply_chunk_iter_receive, remove extra
includes.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20190611102720.86114-3-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
2 years agoblock/nbd-client: drop stale logout
Vladimir Sementsov-Ogievskiy [Tue, 11 Jun 2019 10:27:18 +0000 (13:27 +0300)] 
block/nbd-client: drop stale logout

Drop one on failure path (we have errp) and turn two others into trace
points.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20190611102720.86114-2-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
2 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190613-1' into...
Peter Maydell [Thu, 13 Jun 2019 14:16:39 +0000 (15:16 +0100)] 
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190613-1' into staging

target-arm queue:
 * convert aarch32 VFP decoder to decodetree
   (includes tightening up decode in a few places)
 * fix minor bugs in VFP short-vector handling
 * hw/core/bus.c: Only the main system bus can have no parent
 * smmuv3: Fix decoding of ID register range
 * Implement NSACR gating of floating point
 * Use tcg_gen_gvec_bitsel

# gpg: Signature made Thu 13 Jun 2019 15:15:39 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20190613-1: (47 commits)
  target/arm: Fix short-vector increment behaviour
  target/arm: Convert float-to-integer VCVT insns to decodetree
  target/arm: Convert VCVT fp/fixed-point conversion insns to decodetree
  target/arm: Convert VJCVT to decodetree
  target/arm: Convert integer-to-float insns to decodetree
  target/arm: Convert double-single precision conversion insns to decodetree
  target/arm: Convert VFP round insns to decodetree
  target/arm: Convert the VCVT-to-f16 insns to decodetree
  target/arm: Convert the VCVT-from-f16 insns to decodetree
  target/arm: Convert VFP comparison insns to decodetree
  target/arm: Convert VMOV (register) to decodetree
  target/arm: Convert VSQRT to decodetree
  target/arm: Convert VNEG to decodetree
  target/arm: Convert VABS to decodetree
  target/arm: Convert VMOV (imm) to decodetree
  target/arm: Convert VFP fused multiply-add insns to decodetree
  target/arm: Convert VDIV to decodetree
  target/arm: Convert VSUB to decodetree
  target/arm: Convert VADD to decodetree
  target/arm: Convert VNMUL to decodetree
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 years agotarget/arm: Fix short-vector increment behaviour
Peter Maydell [Tue, 11 Jun 2019 15:39:53 +0000 (16:39 +0100)] 
target/arm: Fix short-vector increment behaviour

For VFP short vectors, the VFP registers are divided into a
series of banks: for single-precision these are s0-s7, s8-s15,
s16-s23 and s24-s31; for double-precision they are d0-d3,
d4-d7, ... d28-d31. Some banks are "scalar" meaning that
use of a register within them triggers a pure-scalar or
mixed vector-scalar operation rather than a full vector
operation. The scalar banks are s0-s7, d0-d3 and d16-d19.
When using a bank as part of a vector operation, we
iterate through it, increasing the register number by
the specified stride each time, and wrapping around to
the beginning of the bank.

Unfortunately our calculation of the "increment" part of this
was incorrect:
 vd = ((vd + delta_d) & (bank_mask - 1)) | (vd & bank_mask)
will only do the intended thing if bank_mask has exactly
one set high bit. For instance for doubles (bank_mask = 0xc),
if we start with vd = 6 and delta_d = 2 then vd is updated
to 12 rather than the intended 4.

This only causes problems in the unlikely case that the
starting register is not the first in its bank: if the
register number doesn't have to wrap around then the
expression happens to give the right answer.

Fix this bug by abstracting out the "check whether register
is in a scalar bank" and "advance register within bank"
operations to utility functions which use the right
bit masking operations.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2 years agotarget/arm: Convert float-to-integer VCVT insns to decodetree
Peter Maydell [Tue, 11 Jun 2019 15:39:53 +0000 (16:39 +0100)] 
target/arm: Convert float-to-integer VCVT insns to decodetree

Convert the float-to-integer VCVT instructions to decodetree.
Since these are the last unconverted instructions, we can
delete the old decoder structure entirely now.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2 years agotarget/arm: Convert VCVT fp/fixed-point conversion insns to decodetree
Peter Maydell [Tue, 11 Jun 2019 15:39:53 +0000 (16:39 +0100)] 
target/arm: Convert VCVT fp/fixed-point conversion insns to decodetree

Convert the VCVT (between floating-point and fixed-point) instructions
to decodetree.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2 years agotarget/arm: Convert VJCVT to decodetree
Peter Maydell [Tue, 11 Jun 2019 15:39:52 +0000 (16:39 +0100)] 
target/arm: Convert VJCVT to decodetree

Convert the VJCVT instruction to decodetree.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2 years agotarget/arm: Convert integer-to-float insns to decodetree
Peter Maydell [Tue, 11 Jun 2019 15:39:52 +0000 (16:39 +0100)] 
target/arm: Convert integer-to-float insns to decodetree

Convert the VCVT integer-to-float instructions to decodetree.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2 years agotarget/arm: Convert double-single precision conversion insns to decodetree
Peter Maydell [Tue, 11 Jun 2019 15:39:52 +0000 (16:39 +0100)] 
target/arm: Convert double-single precision conversion insns to decodetree

Convert the VCVT double/single precision conversion insns to decodetree.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>