From be66680e8320d612f1c96096a217e642e458f47b Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Fri, 24 Jul 2015 20:16:00 +0200 Subject: hw/acpi/ich9: clear smi_en on reset Otherwise on reboot firmware might think (due to APMC_EN remaining set from the previous boot) that SMI support is absent. Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Gerd Hoffmann Cc: Paolo Bonzini Cc: qemu-trivial@nongnu.org Signed-off-by: Laszlo Ersek Reviewed-by: Igor Mammedov Signed-off-by: Michael Tokarev --- hw/acpi/ich9.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index f04f6dc..8da5a2d 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -221,6 +221,7 @@ static void pm_reset(void *opaque) acpi_pm_tmr_reset(&pm->acpi_regs); acpi_gpe_reset(&pm->acpi_regs); + pm->smi_en = 0; if (!pm->smm_enabled) { /* Mark SMM as already inited to prevent SMM from running. KVM does not * support SMM mode. */ -- cgit v1.1 From f3c30aeaa7888aee96a1fa28f259fb8312d47ab2 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Fri, 24 Jul 2015 20:16:01 +0200 Subject: hw/acpi/ich9: clean up stale comment about KVM not supporting SMM Commit fba72476c6 ("ich9: add smm_enabled field and arguments") detached SMM availability from kvm_enabled(). However, the comment in pm_reset() was not updated; let's do it now. Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Gerd Hoffmann Cc: Paolo Bonzini Cc: qemu-trivial@nongnu.org Signed-off-by: Laszlo Ersek Reviewed-by: Igor Mammedov Signed-off-by: Michael Tokarev --- hw/acpi/ich9.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 8da5a2d..1c7fcfa 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -223,8 +223,7 @@ static void pm_reset(void *opaque) pm->smi_en = 0; if (!pm->smm_enabled) { - /* Mark SMM as already inited to prevent SMM from running. KVM does not - * support SMM mode. */ + /* Mark SMM as already inited to prevent SMM from running. */ pm->smi_en |= ICH9_PMIO_SMI_EN_APMC_EN; } pm->smi_en_wmask = ~0; -- cgit v1.1 From cc47a16bcbbc2d1f79511799ca3625c6522f5838 Mon Sep 17 00:00:00 2001 From: Kamalesh Babulal Date: Fri, 24 Jul 2015 13:48:13 +0530 Subject: device_tree: Fix a typo Fix spelling of 'allocting' -> 'allocating'. Signed-off-by: Kamalesh Babulal Signed-off-by: Michael Tokarev --- device_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device_tree.c b/device_tree.c index d2de580..a9f5f8e 100644 --- a/device_tree.c +++ b/device_tree.c @@ -241,7 +241,7 @@ uint32_t qemu_fdt_alloc_phandle(void *fdt) /* * We need to find out if the user gave us special instruction at - * which phandle id to start allocting phandles. + * which phandle id to start allocating phandles. */ if (!phandle) { phandle = machine_phandle_start(current_machine); -- cgit v1.1 From ab6036630865eff8bb12dd51dfa6921b4607fc81 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Sun, 19 Jul 2015 21:34:22 +0100 Subject: qemu-common.h: Document cutils.c string functions Add documentation comments for various utility string functions which we have implemented in util/cutils.c: pstrcpy() strpadcpy() pstrcat() strstart() stristart() qemu_strnlen() qemu_strsep() Signed-off-by: Peter Maydell Reviewed-by: Eric Blake Signed-off-by: Michael Tokarev --- include/qemu-common.h | 114 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/include/qemu-common.h b/include/qemu-common.h index 237d654..fb3da6c 100644 --- a/include/qemu-common.h +++ b/include/qemu-common.h @@ -148,13 +148,125 @@ static inline bool is_help_option(const char *s) return !strcmp(s, "?") || !strcmp(s, "help"); } -/* cutils.c */ +/* util/cutils.c */ +/** + * pstrcpy: + * @buf: buffer to copy string into + * @buf_size: size of @buf in bytes + * @str: string to copy + * + * Copy @str into @buf, including the trailing NUL, but do not + * write more than @buf_size bytes. The resulting buffer is + * always NUL terminated (even if the source string was too long). + * If @buf_size is zero or negative then no bytes are copied. + * + * This function is similar to strncpy(), but avoids two of that + * function's problems: + * * if @str fits in the buffer, pstrcpy() does not zero-fill the + * remaining space at the end of @buf + * * if @str is too long, pstrcpy() will copy the first @buf_size-1 + * bytes and then add a NUL + */ void pstrcpy(char *buf, int buf_size, const char *str); +/** + * strpadcpy: + * @buf: buffer to copy string into + * @buf_size: size of @buf in bytes + * @str: string to copy + * @pad: character to pad the remainder of @buf with + * + * Copy @str into @buf (but *not* its trailing NUL!), and then pad the + * rest of the buffer with the @pad character. If @str is too large + * for the buffer then it is truncated, so that @buf contains the + * first @buf_size characters of @str, with no terminator. + */ void strpadcpy(char *buf, int buf_size, const char *str, char pad); +/** + * pstrcat: + * @buf: buffer containing existing string + * @buf_size: size of @buf in bytes + * @s: string to concatenate to @buf + * + * Append a copy of @s to the string already in @buf, but do not + * allow the buffer to overflow. If the existing contents of @buf + * plus @str would total more than @buf_size bytes, then write + * as much of @str as will fit followed by a NUL terminator. + * + * @buf must already contain a NUL-terminated string, or the + * behaviour is undefined. + * + * Returns: @buf. + */ char *pstrcat(char *buf, int buf_size, const char *s); +/** + * strstart: + * @str: string to test + * @val: prefix string to look for + * @ptr: NULL, or pointer to be written to indicate start of + * the remainder of the string + * + * Test whether @str starts with the prefix @val. + * If it does (including the degenerate case where @str and @val + * are equal) then return true. If @ptr is not NULL then a + * pointer to the first character following the prefix is written + * to it. If @val is not a prefix of @str then return false (and + * @ptr is not written to). + * + * Returns: true if @str starts with prefix @val, false otherwise. + */ int strstart(const char *str, const char *val, const char **ptr); +/** + * stristart: + * @str: string to test + * @val: prefix string to look for + * @ptr: NULL, or pointer to be written to indicate start of + * the remainder of the string + * + * Test whether @str starts with the case-insensitive prefix @val. + * This function behaves identically to strstart(), except that the + * comparison is made after calling qemu_toupper() on each pair of + * characters. + * + * Returns: true if @str starts with case-insensitive prefix @val, + * false otherwise. + */ int stristart(const char *str, const char *val, const char **ptr); +/** + * qemu_strnlen: + * @s: string + * @max_len: maximum number of bytes in @s to scan + * + * Return the length of the string @s, like strlen(), but do not + * examine more than @max_len bytes of the memory pointed to by @s. + * If no NUL terminator is found within @max_len bytes, then return + * @max_len instead. + * + * This function has the same behaviour as the POSIX strnlen() + * function. + * + * Returns: length of @s in bytes, or @max_len, whichever is smaller. + */ int qemu_strnlen(const char *s, int max_len); +/** + * qemu_strsep: + * @input: pointer to string to parse + * @delim: string containing delimiter characters to search for + * + * Locate the first occurrence of any character in @delim within + * the string referenced by @input, and replace it with a NUL. + * The location of the next character after the delimiter character + * is stored into @input. + * If the end of the string was reached without finding a delimiter + * character, then NULL is stored into @input. + * If @input points to a NULL pointer on entry, return NULL. + * The return value is always the original value of *@input (and + * so now points to a NUL-terminated string corresponding to the + * part of the input up to the first delimiter). + * + * This function has the same behaviour as the BSD strsep() function. + * + * Returns: the pointer originally in @input. + */ char *qemu_strsep(char **input, const char *delim); time_t mktimegm(struct tm *tm); int qemu_fls(int i); -- cgit v1.1 From f6288b9c88bae7d76d8bfe17e672976d79079296 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Sat, 18 Jul 2015 16:54:32 +0200 Subject: make: Clean build messages We want to have uniform build messages, so fix some messages which did not follow the standard pattern. Signed-off-by: Stefan Weil Signed-off-by: Michael Tokarev --- Makefile | 2 +- tests/Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index c9be643..340d9c8 100644 --- a/Makefile +++ b/Makefile @@ -135,7 +135,7 @@ endif else \ mv $@.tmp $@; \ cp -p $@ $@.old; \ - fi, " GEN $@"); + fi, " GEN $@"); defconfig: rm -f config-all-devices.mak $(SUBDIR_DEVICES_MAK) diff --git a/tests/Makefile b/tests/Makefile index 8d26736..7494582 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -487,10 +487,10 @@ check-report-unit.xml: $(check-unit-y) # Reports and overall runs check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml - $(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, " GEN $@") + $(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, " GEN $@") check-report.html: check-report.xml - $(call quiet-command,gtester-report $< > $@, " GEN $@") + $(call quiet-command,gtester-report $< > $@, " GEN $@") # Other tests -- cgit v1.1 From 7155f2ca9d66f5598fd8d071e71d6758019a6e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Tue, 23 Jun 2015 18:41:27 +0200 Subject: vmstate: remove unused declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since 38e0735e, register_device_unmigratable() has been removed Signed-off-by: Marc-André Lureau Signed-off-by: Michael Tokarev --- include/migration/vmstate.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index f51ff69..2e5a97d 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -75,9 +75,6 @@ int register_savevm_live(DeviceState *dev, void *opaque); void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque); -void register_device_unmigratable(DeviceState *dev, const char *idstr, - void *opaque); - typedef struct VMStateInfo VMStateInfo; typedef struct VMStateDescription VMStateDescription; -- cgit v1.1 From 7e71e111e0544ec35af40c3dc29f21697c8f17bf Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 23 Jun 2015 14:30:20 +0200 Subject: gitignore: Ignore shader generated files As of d98bc0b65 there are two files that are automatically generated: ui/shader/texture-blit-frag.h and /ui/shader/texture-blit-vert.h. None of them is wanted to be tracked by git. Put them into the ignore file then. Signed-off-by: Michal Privoznik Signed-off-by: Michael Tokarev --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index aed0e1f..61bc492 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ /trace/generated-tcg-tracers.h /trace/generated-ust-provider.h /trace/generated-ust.c +/ui/shader/texture-blit-frag.h +/ui/shader/texture-blit-vert.h /libcacard/trace/generated-tracers.c *-timestamp /*-softmmu -- cgit v1.1 From 786f9ce20382704249883d7052f6869011d44281 Mon Sep 17 00:00:00 2001 From: Johannes Schlatow Date: Mon, 29 Jun 2015 17:45:41 +0200 Subject: Fix Cortex-A9 global timer The auto increment bit of the timer control register was wrongly defined. See Cortex-A9 MPcore Technical Reference Manual, Section 4.4.2. Signed-off-by: Johannes Schlatow Signed-off-by: Michael Tokarev --- include/hw/timer/a9gtimer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/timer/a9gtimer.h b/include/hw/timer/a9gtimer.h index b88c02a..98d8e0a 100644 --- a/include/hw/timer/a9gtimer.h +++ b/include/hw/timer/a9gtimer.h @@ -37,7 +37,7 @@ #define R_CONTROL_TIMER_ENABLE (1 << 0) #define R_CONTROL_COMP_ENABLE (1 << 1) #define R_CONTROL_IRQ_ENABLE (1 << 2) -#define R_CONTROL_AUTO_INCREMENT (1 << 2) +#define R_CONTROL_AUTO_INCREMENT (1 << 3) #define R_CONTROL_PRESCALER_SHIFT 8 #define R_CONTROL_PRESCALER_LEN 8 #define R_CONTROL_PRESCALER_MASK (((1 << R_CONTROL_PRESCALER_LEN) - 1) << \ -- cgit v1.1 From 801db5ecdac7575a1b0250243eea1767da553e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Fri, 3 Jul 2015 11:51:01 +0200 Subject: qapi: add missing @ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau Reviewed-by: Markus Armbruster Signed-off-by: Michael Tokarev --- qapi-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qapi-schema.json b/qapi-schema.json index a0a45f7..4342a08 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -15,7 +15,7 @@ { 'include': 'qapi/trace.json' } ## -# LostTickPolicy: +# @LostTickPolicy: # # Policy for handling lost ticks in timer devices. # -- cgit v1.1 From 226d007dbd75ec8d0f12d0f9e1ce66caf55d49e4 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Fri, 24 Jul 2015 18:52:31 +0200 Subject: gdbstub: Set current CPU on interruptions gdb expects that the thread ID for c and g-class operations is set to the CPU we provide when reporting VM stop conditions. If the stub is still tuned to a different CPU, the wrong information is delivered to the gdb frontend. Signed-off-by: Jan Kiszka Signed-off-by: Michael Tokarev --- gdbstub.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gdbstub.c b/gdbstub.c index 92b2f81..ffe7e6e 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1285,6 +1285,7 @@ static void gdb_vm_state_change(void *opaque, int running, RunState state) ret = GDB_SIGNAL_UNKNOWN; break; } + gdb_set_stop_cpu(cpu); snprintf(buf, sizeof(buf), "T%02xthread:%02x;", ret, cpu_index(cpu)); send_packet: -- cgit v1.1