summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-05-20s390x/virtio-ccw: wire up irq routing and irqfdsCornelia Huck11-18/+329
Make use of the new s390 adapter irq routing support to enable real in-kernel irqfds for virtio-ccw with adapter interrupts. Note that s390 doesn't provide the common KVM_CAP_IRQCHIP capability, but rather needs KVM_CAP_S390_IRQCHIP to be enabled. This is to ensure backward compatibility. Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2014-05-20s390x/virtio-ccw: reference-counted indicatorsCornelia Huck2-20/+73
Make code using the same indicators point to a single allocated structure that is freed when the last user goes away. This will be used by the irqfd code to unmap addresses after the last user is gone. Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2014-05-20s390x: add I/O adapter registrationCornelia Huck7-0/+106
Register an I/O adapter interrupt source for when virtio-ccw devices start using adapter interrupts. Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2014-05-20s390x: split flic into kvm and non-kvm partsCornelia Huck5-299/+399
Introduce a common parent class for both cases, where kvm and non-kvm can hook up callbacks. This will be used by follow-on patches for adapter registration and mapping. We now always have a flic, regardless of whether we use kvm; the non-kvm implementation just doesn't do anything. Reviewed-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2014-05-20kvm: Fix enable_cap helpers on older gccAlexander Graf1-2/+2
Commit 40f1ee27aa1 introduced handy helpers for enable_cap calls on vcpu and vm level. Unfortunately some older gcc versions (4.7.1, 4.6) seem to choke on signedness detection in inline created variables: target-ppc/kvm.c: In function 'kvmppc_booke_watchdog_enable': target-ppc/kvm.c:1302:21: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] target-ppc/kvm.c: In function 'kvmppc_set_papr': target-ppc/kvm.c:1504:21: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] However - thanks to Thomas Huth for the suggestion - we can just cast the offending potentially 0 value to a signed type, making the comparison signed. Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2014-05-19Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into stagingPeter Maydell27-445/+752
* remotes/qmp-unstable/queue/qmp: qapi: skip redundant includes monitor: Add netdev_del id argument completion. monitor: Add netdev_add type argument completion. monitor: Add set_link arguments completion. monitor: Add chardev-add backend argument completion. monitor: Add chardev-remove command completion. monitor: Convert sendkey to use command_completion. qapi: Show qapi-commands.py invocation in qapi-code-gen.txt qapi: Replace uncommon use of the error API by the common one tests: Don't call visit_end_struct() after visit_start_struct() fails hw: Don't call visit_end_struct() after visit_start_struct() fails hmp: Call visit_end_struct() after visit_start_struct() succeeds qapi: Un-inline visit of implicit struct qapi-visit.py: Clean up a sloppy use of field prefix qapi: Clean up shadowing of parameters and locals in inner scopes qapi-visit.py: Clean up confusing push_indent() / pop_indent() use qapi: Replace start_optional()/end_optional() by optional() qapi: Remove unused Visitor callbacks start_handle(), end_handle() qapi: Normalize marshalling's visitor initialization and cleanup qapi: Update qapi-code-gen.txt example to match current code Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-19Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-8' into stagingPeter Maydell8-282/+553
Input code update: - add keycode mapping helpers to core. - start switching devices to new input api. - misc bugfixes. # gpg: Signature made Fri 16 May 2014 07:43:45 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-input-8: input: sparc32 kbd: claim en-us layout input: sparc32 kbd: fix some key mappings input: remove sparc keymap hack input: switch sparc32 kbd to new input api input: switch ps/2 mouse to new input api input: switch ps/2 kbd to new input api input: use KeyValue directly in sendkey monitor command input: add qemu_input_handler_deactivate input: key mapping helpers ps2: set ps/2 output buffer size as the same as kernel Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-19Merge remote-tracking branch 'remotes/bonzini/scsi-next' into stagingPeter Maydell7-132/+313
* remotes/bonzini/scsi-next: [PATCH] block/iscsi: bump year in copyright notice block/iscsi: allow cluster_size of 4K and greater block/iscsi: clarify the meaning of ISCSI_CHECKALLOC_THRES block/iscsi: speed up read for unallocated sectors block/iscsi: allow fall back to WRITE SAME without UNMAP MAINTAINERS: mark megasas as maintained megasas: Add MSI support megasas: Enable MSI-X support megasas: Implement LD_LIST_QUERY scsi: Improve error messages more scsi-disk: Improve error messager if can't get version number Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-16qapi: skip redundant includesBenoît Canet8-5/+23
The purpose of this change is to help create a json file containing common definitions; each bit of generated C code must be emitted only one time. A second history global to all QAPISchema instances has been added to detect when a file is included more than one time and skip these includes. It does not act as a stack and the changes made to it by the __init__ function are propagated back to the caller so it's really a global state. Signed-off-by: Benoit Canet <benoit@irqsave.net> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-16input: sparc32 kbd: claim en-us layoutGerd Hoffmann1-1/+1
Reported-by: Olivier Danet <odanet@caramail.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: sparc32 kbd: fix some key mappingsGerd Hoffmann1-14/+16
Reported-by: Olivier Danet <odanet@caramail.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: remove sparc keymap hackGerd Hoffmann1-19/+0
With sparc keyboard going directly from QKeyValue to sparc keycodes this should not be needed any more. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: switch sparc32 kbd to new input apiGerd Hoffmann2-61/+172
Nasty 0xe0 logic is gone. We map through QKeyCode now, giving us a nice, readable mapping table. Quick smoke test in OpenFirmware looks ok. Careful check from arch maintainers would be very nice, especially on the capslock and numlock logic. I'm not fully sure whenever I got it translated correctly and also what it is supposed to do in the first place ... Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: switch ps/2 mouse to new input apiGerd Hoffmann1-15/+52
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: switch ps/2 kbd to new input apiGerd Hoffmann1-1/+24
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: use KeyValue directly in sendkey monitor commandGerd Hoffmann1-24/+23
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: add qemu_input_handler_deactivateGerd Hoffmann2-0/+8
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16input: key mapping helpersGerd Hoffmann4-175/+223
Add helper functions to translate KeyValue (qapi key representation) into other representations: traditional qemu key numbers, qapi key codes (Q_KEY_CODE_*) and scancode sequences. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-16ps2: set ps/2 output buffer size as the same as kernelGonglei1-6/+68
According to the PS/2 Mouse/Keyboard Protocol, the keyboard outupt buffer size is 16 bytes. And the PS2_QUEUE_SIZE 256 was introduced in Qemu from the very beginning. When I started a redhat5.6 32bit guest, meanwhile tapped the keyboard as quickly as possible, the screen would show me "i8042.c: No controller found". As a result, I couldn't use the keyboard in the VNC client. Previous discussion about the issue in maillist: http://thread.gmane.org/gmane.comp.emulators.qemu/43294/focus=47180 This patch has been tested on redhat5.6 32-bit/suse11sp3 64-bit guests. More easy meathod to reproduce: 1.boot a guest with libvirt. 2.connect to VNC client. 3.as you see the BIOS, bootloader, Linux booting, run the follow simply shell script: for((i=0;i<10000000;i++)) do virsh send-key redhat5.6 KEY_A; done Actual results: dmesg show "i8042.c: No controller found." And the keyboard is out of work. Signed-off-by: Gonglei <arei.gonglei@huawei.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2014-05-15monitor: Add netdev_del id argument completion.Hani Benhabiles3-0/+28
Signed-off-by: Hani Benhabiles <hani@linux.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15monitor: Add netdev_add type argument completion.Hani Benhabiles3-1/+18
Also update the command's documentation. Signed-off-by: Hani Benhabiles <hani@linux.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15monitor: Add set_link arguments completion.Hani Benhabiles4-1/+37
Make it possible to query all net clients without specifying an ID when calling qemu_find_net_clients_except(). This also adds the add_completion_option() function which is to be used for other commands completions as well. Signed-off-by: Hani Benhabiles <hani@linux.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15monitor: Add chardev-add backend argument completion.Hani Benhabiles3-0/+25
Signed-off-by: Hani Benhabiles <hani@linux.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15monitor: Add chardev-remove command completion.Hani Benhabiles3-0/+25
Signed-off-by: Hani Benhabiles <hani@linux.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15monitor: Convert sendkey to use command_completion.Hani Benhabiles3-9/+25
Signed-off-by: Hani Benhabiles <hani@linux.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Show qapi-commands.py invocation in qapi-code-gen.txtMarkus Armbruster1-14/+13
While there, pare down the shell prompts. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Replace uncommon use of the error API by the common oneMarkus Armbruster10-286/+354
We commonly use the error API like this: err = NULL; foo(..., &err); if (err) { goto out; } bar(..., &err); Every error source is checked separately. The second function is only called when the first one succeeds. Both functions are free to pass their argument to error_set(). Because error_set() asserts no error has been set, this effectively means they must not be called with an error set. The qapi-generated code uses the error API differently: // *errp was initialized to NULL somewhere up the call chain frob(..., errp); gnat(..., errp); Errors accumulate in *errp: first error wins, subsequent errors get dropped. To make this work, the second function does nothing when called with an error set. Requires non-null errp, or else the second function can't see the first one fail. This usage has also bled into visitor tests, and two device model object property getters rtc_get_date() and balloon_stats_get_all(). With the "accumulate" technique, you need fewer error checks in callers, and buy that with an error check in every callee. Can be nice. However, mixing the two techniques is confusing. You can't use the "accumulate" technique with functions designed for the "check separately" technique. You can use the "check separately" technique with functions designed for the "accumulate" technique, but then error_set() can't catch you setting an error more than once. Standardize on the "check separately" technique for now, because it's overwhelmingly prevalent. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15tests: Don't call visit_end_struct() after visit_start_struct() failsMarkus Armbruster3-15/+39
When visit_start_struct() fails, visit_end_struct() must not be called. Three out of four visit_type_TestStruct() call it anyway. As far as I can tell, visit_start_struct() doesn't actually fail there. Fix them anyway. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15hw: Don't call visit_end_struct() after visit_start_struct() failsMarkus Armbruster2-14/+34
When visit_start_struct() fails, visit_end_struct() must not be called. rtc_get_date() and balloon_stats_all() call it anyway. As far as I can tell, they're only used with the string output visitor, which doesn't care. Fix them anyway. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15hmp: Call visit_end_struct() after visit_start_struct() succeedsMarkus Armbruster1-8/+8
When visit_start_struct() succeeds, visit_end_struct() must be called. hmp_object_add() doesn't when a member visit fails. As far as I can tell, the opts visitor copes okay with the misuse. Fix it anyway. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Un-inline visit of implicit structMarkus Armbruster1-14/+34
In preparation of error handling changes. Bonus: generates less duplicated code. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi-visit.py: Clean up a sloppy use of field prefixMarkus Armbruster1-1/+1
generate_visit_struct_fields() generates the base type's struct member name both with and without the field prefix. Harmless, because the field prefix is always empty there: only unboxed complex members have a prefix, and those can't have a base type. Clean it up anyway. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Clean up shadowing of parameters and locals in inner scopesMarkus Armbruster1-3/+17
By un-inlining the visit of nested complex types. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi-visit.py: Clean up confusing push_indent() / pop_indent() useMarkus Armbruster1-18/+14
Changing implicit indentation in the middle of generating a block makes following the code being generated unnecessarily hard. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Replace start_optional()/end_optional() by optional()Markus Armbruster8-31/+19
Semantics of end_optional() differ subtly from the other end_FOO() callbacks: when start_FOO() succeeds, the matching end_FOO() gets called regardless of what happens in between. end_optional() gets called only when everything in between succeeds as well. Entirely undocumented, like all of the visitor API. The only user of Visitor Callback end_optional() never did anything, and was removed in commit 9f9ab46. I'm about to clean up error handling in the generated visitor code, and end_optional() is in my way. No users mean no test cases, and making non-trivial cleanup transformations without test cases doesn't strike me as a good idea. Drop end_optional(), and rename start_optional() to optional(). We can always go back to a pair of callbacks when we have an actual need. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Remove unused Visitor callbacks start_handle(), end_handle()Markus Armbruster2-18/+0
These have never been called or implemented by anything, and their intended use is undocumented, like all of the visitor API. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Normalize marshalling's visitor initialization and cleanupMarkus Armbruster2-19/+16
Input and output marshalling functions do it differently. Change them to work the same: initialize the I/O visitor, use it, clean it up, initialize the dealloc visitor, use it, clean it up. This delays dealloc visitor initialization in output marshalling functions, and input visitor cleanup in input marshalling functions. No functional change, but the latter will be convenient when I change the error handling. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15qapi: Update qapi-code-gen.txt example to match current codeMarkus Armbruster1-56/+90
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-s390-20140515' into ↵Peter Maydell4-312/+455
staging tcg/s390 updates # gpg: Signature made Thu 15 May 2014 17:24:40 BST using RSA key ID 4DD0279B # gpg: Can't check signature: public key not found * remotes/rth/tags/pull-tcg-s390-20140515: tcg-s390: Implement direct chaining of TBs tcg-s390: Don't force -march=z990 tcg-s390: Improve setcond tcg-s390: Allow immediate operands to add2 and sub2 tcg-s390: Implement tcg_register_jit tcg-s390: Use more risbg in the tlb sequence tcg-s390: Move ldst helpers out of line tcg-s390: Convert to new ldst opcodes tcg-s390: Integrate endianness into TCGMemOp tcg-s390: Convert to TCGMemOp tcg-s390: Fix off-by-one in wraparound andi Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Merge remote-tracking branch 'remotes/kraxel/tags/pull-roms-2' into stagingPeter Maydell18-2/+5
seabios: update to 1.7.5-rc1 ipxe: update to current git # gpg: Signature made Thu 15 May 2014 13:29:37 BST using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-roms-2: ipxe: update to current git seabios: update to 1.7.5-rc1 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into stagingPeter Maydell1-1/+1
virtio update looks like a quiet week minor bugfix in virtio by myself Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Tue 13 May 2014 14:37:23 BST using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" * remotes/mst/tags/for_upstream: virtio: allow mapping up to max queue size Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20140515' ↵Peter Maydell70-234/+171
into staging migration/next for 20140515 # gpg: Signature made Thu 15 May 2014 02:32:25 BST using RSA key ID 5872D723 # gpg: Can't check signature: public key not found * remotes/juanquintela/tags/migration/20140515: usb: fix up post load checks migration: show average throughput when migration finishes savevm: Remove all the unneeded version_minimum_id_old (rest) savevm: Remove all the unneeded version_minimum_id_old (usb) Split ram_save_block arch_init: Simplify code for load_xbzrle() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15tcg-s390: Implement direct chaining of TBsRichard Henderson2-1/+12
Signed-off-by: Richard Henderson <rth@twiddle.net>
2014-05-15tcg-s390: Don't force -march=z990Richard Henderson1-2/+2
While we still require the LONG DISPLACEMENT facility, defaults have moved on since then. Don't override the system compiler, whose default may be set to z9-109 or later. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Richard Henderson <rth@twiddle.net>
2014-05-15Merge remote-tracking branch 'remotes/rth/fix-mov' into stagingPeter Maydell1-8/+11
* remotes/rth/fix-mov: tcg: Fix tcg_reg_alloc_mov vs no-op truncation Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Merge remote-tracking branch ↵Peter Maydell80-657/+905
'remotes/pmaydell/tags/pull-target-arm-20140513' into staging target-arm queue: * update libvixl to 1.4 * remove version_minimum_id_old from ARM devices * stellaris_enet tx/rx/migration overhaul * various minor fixes for coverity issues # gpg: Signature made Tue 13 May 2014 16:25:12 BST using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" * remotes/pmaydell/tags/pull-target-arm-20140513: hw/arm/omap_gpmc: Avoid buffer overrun filling prefetch FIFO hw/arm/stellaris: Correct handling of GPTM TAR register hw/timer/exynos4210_mct: Avoid overflow in exynos4210_ltick_recalc_count hw/dma/omap_dma: Add (uint32_t) casts when shifting uint16_t by 16 hw/arm/omap1: Avoid unintended sign extension writing omap_rtc YEARS_REG hw/net/cadence_gem: Remove dead code hw/intc/allwinner-a10-pic: Add missing 'break' target-arm/helper.c: Don't flush the TLB if SCTLR is rewritten unchanged hw/net/stellaris_enet: Convert to vmstate hw/net/stellaris_enet: Get rid of rx_fifo pointer hw/net/stellaris_enet: Fix debug format strings hw/net/stellaris_enet: Correctly implement the TR and THR registers hw/net/stellaris_enet: Rewrite tx fifo handling code hw/net/stellaris_enet: Correct handling of packet padding hw/net/stellaris_enet: Restructure tx_fifo code to avoid buffer overrun savevm: Remove all the unneeded version_minimum_id_old (arm) disas/libvixl: Update to libvixl 1.4 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Merge remote-tracking branch 'remotes/kvm/uq/master' into stagingPeter Maydell27-202/+242
* remotes/kvm/uq/master: pc: port 92 reset requires a low->high transition cpu: make CPU_INTERRUPT_RESET available on all targets apic: do not accept SIPI on the bootstrap processor target-i386: preserve FPU and MSR state on INIT target-i386: fix set of registers zeroed on reset kvm: forward INIT signals coming from the chipset kvm: reset state from the CPU's reset method target-i386: the x86 CPL is stored in CS.selector - auto update hflags accordingly. target-i386: set eflags prior to calling cpu_x86_load_seg_cache() in seg_helper.c target-i386: set eflags and cr0 prior to calling cpu_x86_load_seg_cache() in smm_helper.c target-i386: set eflags prior to calling svm_load_seg_cache() in svm_helper.c pci-assign: limit # of msix vectors pci-assign: Fix a bug when map MSI-X table memory failed kvm: make one_reg helpers available for everyone target-i386: Remove unused data from local array Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Merge remote-tracking branch 'remotes/rth/tags/pull-tgt-i386-20140512' into ↵Peter Maydell1-9/+31
staging Fix BT zero flag for new Intel manuals # gpg: Signature made Mon 12 May 2014 22:26:01 BST using RSA key ID 4DD0279B # gpg: Can't check signature: public key not found * remotes/rth/tags/pull-tgt-i386-20140512: target-i386: Preserve the Z bit for bt/bts/btr/btc Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-05-15Revert "iotests: Use configured python"Peter Maydell10-70/+43
This reverts commit f915db07ef9c368ea6db6430256de064fdd1525f. This commit is broken because it does not account for the build tree and the source tree being different, and can cause build failures for out-of-tree builds. Revert it until we can identify a better solution to the problem. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1400153676-30180-1-git-send-email-peter.maydell@linaro.org Acked-by: Kevin Wolf <kwolf@redhat.com>
2014-05-15ipxe: update to current gitGerd Hoffmann8-1/+3
Now that ipxe has separate settings for load / boot banner timeouts re-enable the boot banner while keeping the load banner turned off, so we don't add a delay to non-pxe boots. git shortlog: Adrian Jamróz (2): [rhine] Rewrite VIA Rhine driver [velocity] Rewrite VIA Velocity driver Alex Williamson (4): [romprefix] Allow ROM banner timeout to be configured independently [autoboot] Enable infrastructure to specify an autoboot device location [prefix] Allow prefix to specify a PCI autoboot device location [romprefix] Store boot bus:dev.fn address as autoboot device location Alexander Chernyakhovsky (1): [ocsp] Handle OCSP responses that don't provide certificates Bo Yang (1): [build] Avoid strict-aliasing warning for gcc 4.3 Brandon Penglase (1): [build] Add vmware build target Christian Hesse (2): [build] Update build system for Syslinux 6.x [build] Fix LABEL name for .liso images Daniel P. Berrange (1): [zbin] Fix size used for memset in alloc_output_file Frediano Ziglio (1): [romprefix] Fix incorrect pointer offset in undiloader.S Kevin Tran (1): [tg3] Fix various tg3 issues Marin Hannache (8): [linux] Add missing #include <stddef.h> [legal] Add FILE_LICENCE for valgrind headers [legal] Add FILE_LICENCE for core/errno.c [legal] Add FILE_LICENCE for ath9k driver headers [legal] Add missing FILE_LICENCE declarations [cmdline] Add "poweroff" command [nfs] Add support for NFS protocol [nfs] Fix an issue with the selection of a local port Michael Brown (363): [netdevice] Separate VLAN support from presence of VLAN-supporting drivers [undi] Work around specific devices with known broken interrupt behaviour [menu] Prevent character code zero from acting as a shortcut key [menu] Prevent separators with shortcut keys from being selected [tftp] Allow TFTP block size to be controlled via the PXE TFTP API [pcbios] Add extra debugging messages when unhiding iPXE from memory [nbiprefix] Set up real-mode stack before jumping to .text16 [prefix] Use %cs as implicit parameter to uninstall() [pcbios] Inhibit all calls to INT 15,e820 and INT 15,e801 during POST [romprefix] Display only one "Ctrl-B" prompt per PCI device during POST [efi] Update to latest EDK2 headers [autoboot] Split main control flow out of main() into a new function ipxe() [efi] Add last_opened_snpdev() [efi] Expose downloaded images via EFI_SIMPLE_FILE_SYSTEM_PROTOCOL [efi] Add our own EFI_LOAD_FILE_PROTOCOL implementation [efi] Fix building with newer binutils [lkrnprefix] Allow relocation when no initrd is present [efi] Fix minor typos in efi_image.c [efi] Add EFI-specific debugging macros [int13] Split out ISO9660 and El Torito definitions to separate header files [smbios] Provide SMBIOS version number via smbios_version() [smbios] Mangle UUIDs for SMBIOS version 2.6 and newer [dhcp] Use PXE byte ordering for UUID in DHCP option 97 [uuid] Abstract UUID mangling code out to a separate uuid_mangle() function [efi] Provide efi_guid_ntoa() for printing EFI GUIDs [efi] Add "reboot" command for EFI [cmdline] Add ability to perform a warm reboot [efi] Enable "cpuid" command by default for EFI [cs89x0] Remove conflicting macro definitions [igbvf] Remove conflicting macro definitions [prism2] Use standard type names [efi] Fetch device path for loaded image during initialisation [settings] Expose build architecture and platform via settings [bios] Fix screen clearing on buggy BIOSes [intel] Remove hardcoded offsets for descriptor ring registers [intel] Expose functionality to be shared with intelx driver [intel] Add intelx driver for Intel 10 Gigabit Ethernet NICs [efi] Remove obsolete EFI I/O implementation using EFI_CPU_IO_PROTOCOL [libc] Use __einfo() tuple as first argument to EUNIQ() [libc] Redefine low 8 bits of error code as "platform error code" [efi] Perform meaningful error code conversions [efi] Add sample platform-generated error disambiguations [netdevice] Use link-layer address as part of RNG seed [build] Allow sparse to find compiler.h [build] Define __WINT_TYPE__ if necessary [build] Allow sparse to be invoked via "make C=1" [build] Avoid sparse undeclared symbol warning for PROVIDE_SYMBOL() [process] Mark process descriptor as static in PERMANENT_PROCESS [realtek] Print bad MAC address in debug message when inferring no EEPROM [build] Use -Wno-decl when running sparse [build] Fix uses of literal 0 as a NULL pointer [build] Fix dubious uses of bitwise operators [build] Default to short wchar_t in stddef.h [realtek] Use ID word to detect EEPROM presence [errdb] Strip platform error code for non-platform-generated errors [pxe] Convert external PXE API errors into iPXE platform-generated errors [realtek] Allow reaction time between writing RTL_CAPR and reading RTL_CR [romprefix] Report failure cause when unable to open payload [realtek] Ensure EEPROM writes reach chip before starting udelay() [dhcp] Remove obsolete bootp.h header [netdevice] Add netdev_tx_defer() to allow drivers to defer transmissions [realtek] Defer packets when no transmit descriptors are available [settings] Eliminate settings "tag magic" [smbios] Allow access to unreferenced SMBIOS strings [smbios] Allow access to multiple instances of SMBIOS structures [crypto] Report meaningful error when certificate chain validation fails [build] Use $(eval) if available [build] Provide "allXXXs" targets for all media on all platforms [build] Add efidrv.cab target for UEFI Secure Boot signing [netdevice] Add "chip" setting [netdevice] Reset MAC address when asked to clear the "mac" setting [realtek] Fix reopening of legacy-mode 8139 NIC [crypto] Accept OCSP responses containing multiple certificates [bzimage] Align initrd images to page boundary [bzimage] Fix spurious uninitialised-variable warning on some gcc versions [build] Work around bug in gcc >= 4.8 [autoboot] Use next-server from filename's settings block [tcp] Do not send RST for unrecognised connections [tcp] Fix comment to match code behaviour [test] Add self-tests for base16 [base16] Generalise base16_decode() to hex_decode() [settings] Use hex_decode() to parse hex settings [settings] Add "hexraw" setting type [netdevice] Add "bustype" and "busloc" settings [settings] Add "busdevfn" setting type [linux] Add support for accessing PCI configuration space via /proc/bus/pci [settings] Add config/settings.h [settings] Expose PCI configuration space via settings mechanism [settings] Make "netX" settings block function as a symbolic link [cmdline] Accept "netX" in iPXE commands [lotest] Include sequence number within loopback test packets [intel] Incorporate ring producer and consumer counters in diagnostics [base16] Ensure base16_encode() always terminates its result string [realtek] Report RX error detail in debug messages [script] Allow for backslash continuation of script lines [settings] Add support for navigation keys in "config" user interface [realtek] Allow extra space in RX buffers [ifmgmt] Avoid relying on global variable within ifcommon_exec() [script] Avoid trying to read final character of a zero-length string [legal] Add missing FILE_LICENCE declarations [build] Fix %.licence build target [settings] Clarify usage of the term "named setting" [settings] Avoid potentially large stack allocations [settings] Remove temporary name buffer parameter from parse_setting_name() [settings] Remove default_type parameter from parse_setting_name() [settings] Expose parse_setting_name() [settings] Change "not-found" semantics of fetch_setting_copy() [settings] Add fetchf_setting_copy() [settings] Eliminate call to fetchf_named_setting() in expand_settings() [settings] Eliminate call to store_named_setting() in nslookup.c [settings] Remove now-unused store_named_setting() [parseopt] Allow parsed option to be modified [parseopt] Move parse_settings() to parseopt.c [parseopt] Add parse_setting() [settings] Eliminate call to storef_named_setting() in choose_exec() [settings] Eliminate calls to {fetch,store}f_named_setting() in NVO commands [settings] Remove now-unused fetchf_named_setting() and storef_named_setting() [script] Allow initial whitespace on lines containing labels [script] Allow commands following a script label [settings] Introduce the generalised concept of a numeric setting [cmdline] Add "inc" command [pci] Add pci_find_next() to iterate over existent PCI devices [cmdline] Add "pciscan" command to allow iteration over PCI devices [udp] Move high-frequency debug messages to DBGLVL_EXTRA [ipv6] Rename sin_{family,port} to sin6_{family,port} in struct sockaddr_in6 [tcpip] Allow binding to unspecified privileged ports (below 1024) [settings] Expose CPUID instruction via settings mechanism [test] Add self-tests for snprintf() [settings] Allow numeric_setting_value() to handle long setting values [settings] Expose memory map via settings mechanism [params] Add support for the general concept of a form parameter list [cmdline] Add "params" and "param" commands to manage form parameter lists [uri] Allow URIs to incorporate a parameter list [http] Add support for HTTP POST [settings] Make built-in settings a linker table [linux] Give tap devices a name and bus type [ipv4] Generalise fragment reassembly mechanism [netdevice] Increase maximum network-layer address length [netdevice] Add concept of a network device index [netdevice] Add method for generating EUI-64 address from link-layer address [ethernet] Add support for generating multicast hash for IPv6 addresses [linux] Apply MAC address prior to registering network device [tcpip] Pass through network device to transport layer protocols [neighbour] Generalise concept of neighbour discovery [ipv4] Abstract out protocol-specific portions of "route" command [ipv6] Replace IPv6 stack [ipv6] Fix uninitialised-variable warning [tcp] Reduce path MTU to 1280 bytes [ipv6] Add inet6_aton() [build] Work around bug in gcc >= 4.8 [neighbour] Add nstat() function to print out neighbour table [cmdline] Add "nstat" command [tcp] Add AF_INET6 socket opener [udp] Add AF_INET6 socket opener [netdevice] Add find_netdev_by_index() [socket] Add concept of a generalised socket address converter [ipv4] Add IPv4 socket address converter [ipv6] Add IPv6 socket address converter [resolv] Use sock_aton() to allow parsing of arbitrary numeric addresses [icmp] Add support for sending ICMP echo requests [ping] Add concept of a ping socket [ping] Add generic ping mechanism [ping] Add top-level ping() function to ping a host [cmdline] Add "ping" command [ipv6] Handle IPv6 option length correctly [ipv6] Extract link layer addresses from router advertisements [ipv6] Support stateless address autoconfiguration (SLAAC) [ipv6] Treat sin6_scope_id consistently [ipv6] Automatically choose source for link-local and multicast destinations [pxe] Always retrieve cached DHCPACK and apply to relevant network device [ipv6] Add ndp_tx_router_solicitation() to send router solicitations [parseopt] Add parse_timeout() [netdevice] Make all net_driver methods optional [interface] Default to calling intf_restart() in response to intf_close() [job] Allow job_progress() to return an ongoing job status code, if known [monojob] Add timeout parameter to monojob_wait() [monojob] Report ongoing job status as overall return status on timeout [cmdline] Rewrite "sync" command to use monojob_wait() [autoboot] Fix shell banner timeout [ifmgmt] Rewrite iflinkwait() to use monojob_wait() [cmdline] Allow "if<xxx>" commands to take options [netdevice] Add generic concept of a network device configurator [dhcp] Add DHCP network device configurator [parseopt] Add parse_netdev_configurator() [ifmgmt] Add ifconf() to carry out network device configuration [autoboot] Use ifconf() to configure network device [cmdline] Add "ifconf" command [cmdline] Make "dhcp" command a synonym for "ifconf" [dhcp] Remove obsolete dhcp() function [ipv6] Add IPv6 network device configurator [cmdline] Generate command option help text automatically [pxe] Ensure cached DHCPACK is retrieved prior to network device creation [base16] Fix comparison of signed and unsigned integers [settings] Move user-class setting from dhcp.c to settings.c [ipv6] Use given source address only if it is not the unspecified address [ipv6] Add "ipv6" setting type [dhcpv6] Add basic support for stateful and stateless DHCPv6 [ipv6] Separate the concepts of prefix and address creation [dhcpv6] Allow stateful DHCPv6 to apply obtained IPv6 addresses [test] Include failing code within failed test result output [main] Defer "initialising devices" message until initialising devices [console] Pass escape sequence context to ANSI escape sequence handlers [pixbuf] Add generic concept of a pixel buffer [image] Allow for non-executable image formats [image] Add image_pixbuf() to create pixel buffer from image [pnm] Add support for PNM images [mucurses] Use "<ESC>[2J" ANSI escape sequence to clear screen [console] Allow console input and output to be disabled independently [console] Add concept of generic console configuration [cmdline] Add "console" command to configure console [fbcon] Add generic concept of a frame buffer console [vesafb] Add VESA frame buffer console [vesafb] Include raw status value within VBE error messages [vesafb] Skip modes for which we cannot get mode information [vesafb] Return meaningful error when no suitable mode is found [vesafb] Select an optimal mode, rather than the first acceptable mode [build] Fix building on OpenBSD 5.4 [console] Allow '?' as an intermediate byte in ANSI escape sequences [mucurses] Implement curs_set() to control cursor visibility [settings] Hide cursor when not actively editing a setting [menu] Hide cursor when displaying menu [fbcon] Add support for displaying a cursor [settings] Explicitly separate the concept of a completed fetched setting [settings] Allow for IPv6 setting types in non-IPv6 builds [settings] Add fetch_ipv6_setting() [dns] Add support for resolving IPv6 addresses via AAAA records [socket] Ensure socket address structure sizes are fixed [syslog] Add support for IPv6 syslog server [ipv6] Add support for resolving IPv6 addresses via the "nslookup" command [linux] Provide access to SMBIOS via /dev/mem [dhcpv6] Use DUID-UUID form of client DUID [settings] Force settings into alphabetical order within sections [settings] Allow for multiple definitions of each predefined setting [settings] Merge SETTING_IPv4 and SETTING_IPv6 [dhcpv6] Add DHCPv6 "filename" setting [ipv6] Expose NDP-provided settings (including the DNS server) [vesafb] Work around data corruption bug in bochs/qemu VBE implementation [settings] Adapt user interface to fit display size [login] Adapt user interface to fit display size [menu] Adapt user interface to fit display size [console] Allow consoles to update the recorded console size [fbcon] Update the console width and height after changing mode [lkrnprefix] Include iPXE version string in image header [fbcon] Always draw cursor using current foreground and background colours [console] Add centralised concept of colours and colour pairs [mucurses] Use centralised concept of colour pairs [cmdline] Add the "colour" and "cpair" commands [console] Add concept of a "magic" colour [vesafb] Set "magic" colour to transparent when a background picture is used [build] Remove obsolete check for GNU as version 2.9.1 [ipv6] Fix compilation under FreeBSD [build] Build ROMs used by qemu and VMware as part of "make all" [libc] Add isprint() [test] Add okx() macro taking an explicit file name and line number [deflate] Add support for DEFLATE decompression [deflate] Fix literal data length calculation [libc] Add abs() [uaccess] Add memcmp_user() [test] Rewrite pnm_ok() using okx() [test] Generalise pnm_ok() to pixbuf_ok() [png] Add support for PNG images [vesafb] Handle failures from fbcon_init() [fbcon] Centre background picture on console [fbcon] Allow for an arbitrary margin around the text area [vesafb] Allow for an arbitrary margin around the text area [cmdline] Rename "console" command's --bpp option to --depth [cmdline] Add margin options to the "console" command [fbcon] Allow ANSI CUP with missing arguments [cmdline] Always clear screen after reconfiguring console [intel] Add some missing PCI IDs [dns] Support DNS search lists [dns] Update end-of-name pointer after processing CNAME record [dhcp] Copy exactly the required length when resizing DHCP options [settings] Remove "uristring" setting type [params] Use reference counters for form parameter lists [uri] Refactor URI parsing and formatting [image] Ensure every image has a fully resolved URI [tcpip] Add IP statistics collection as per RFC 4293 [cmdline] Add the "ipstat" command [prefix] Ignore PCI autoboot device location if set to 00:00.0 [tcpip] Provide tcpip_netdev() to determine the transmitting network device [tcpip] Provide tcpip_mtu() to determine the maximum transmission unit [tcp] Calculate correct MSS from peer address [bzimage] Report exact initrd length via bzImage header [realtek] Include link status register details in debug messages [romprefix] Do not clobber stack segment when returning to BIOS [netdevice] Mark devices as open before calling open() method [tcp] Update window even if ACK does not acknowledge new data [linux] Avoid starting currticks() from zero every time [http] Use a retry timer to trigger retried requests [http] Automatically retry request on a 503 Service Unavailable [mii] Add mii_dump() to dump all MII registers [realtek] Dump all MII register contents when link status changes [monojob] Reset timeout when progress is made [image] Add "--timeout" parameter to image downloading commands [efi] Allow for 64-bit EFI_STATUS codes [efi] Allow driver to be unloaded [efi] Connect driver to devices as part of installation [console] Fix display of characters with top bit set [lotest] Allow loopback testing on shared networks [netdevice] Notify upper-layer drivers when RX processing is (un)frozen [efi] Avoid accidentally calling main() twice [efi] Unload our own image before exiting UEFI application [efi] Disable SNP devices when running iPXE as the application [realtek] Add ability to dump all internal registers [realtek] Clear bit 24 of RCR [bios] Fix screen clearing on even more buggy BIOSes [http] Accept Content-Length header with trailing whitespace [crypto] Remove dynamically-allocated storage for certificate name [crypto] Remove dynamically-allocated storage for certificate OCSP URI [build] Remove long-obsolete mechanism for wrapping embedded images [build] Disable ccache for all relevant build targets [build] Add dependency of generated files upon Makefile [crypto] Add pubkey_match() to check for matching public/private key pairs [crypto] Generalise X.509 cache to a full certificate store [crypto] Use fingerprint when no common name is available for debug messages [crypto] Allow signed timestamp error margin to be configured at build time [test] Rewrite X.509 tests using okx() [test] Rewrite CMS tests using okx() [test] Add tests for x509_check_name() [test] Add subject alternative names to X.509 server test certificate [crypto] Add support for subjectAltName and wildcard certificates [crypto] Allow wildcard matches on commonName as well as subjectAltName [intel] Avoid completely filling the TX descriptor ring [test] Rewrite TCP/IP tests using okx() [test] Add self-tests for flsl() [libc] Add inline assembly implementation of flsl() using BSR instruction [test] Add tests for 64-bit division [build] Fix __libgcc attribute for recent gcc versions [test] Check for correct -mrtd assumption on libgcc arithmetic functions [libc] Add isqrt() function to find integer square roots [libc] Add flsll() [profile] Add generic profiling infrastructure [cmdline] Add "profstat" command to display profiling statistics [netdevice] Profile common operations [intel] Profile common virtual machine operations [intel] Push new RX descriptors in batches [librm] Use genuine real mode to accelerate operation in virtual machines [ipv4] Profile transmit and receive datapaths [tcp] Profile transmit and receive datapaths [http] Profile receive datapath [downloader] Profile receive datapath [build] Allow for a debug level of zero [librm] Allow interrupts in protected mode [comboot] Use built-in interrupt reflector [pcbios] Do not switch to real mode to check for timer interrupt [pcbios] Do not switch to real mode to sleep the CPU [test] Print out profiling statistics after a successful test run [librm] Add a profiling self-test for measuring mode transition times [librm] Add meaningful labels at section changes [librm] Speed up protected-to-real mode transition under KVM [librm] Speed up real-to-protected mode transition under KVM [librm] Speed up protected-mode calls under KVM [profile] Provide methods for profiling individual stages of operations [librm] Add profiling self-tests for complete real_call and prot_call cycles [pxe] Profile all PXE API calls [pxe] Profile UNDI transmit datapath [pxe] Work around missing PXENV_UNDI_OPEN only when necessary [undi] Profile all PXE API calls [undi] Profile transmit and receive datapaths [undi] Report any PXENV_UNDI_ISR errors via netdev_rx_err() [undi] Do not switch to real mode to check for NIC interrupt [undi] Place an upper limit on the number of PXENV_UNDI_ISR calls per poll Peter Pickford (1): [serial] Enable UART FIFOs Robin Smidsrød (2): [settings] Add "version" builtin setting [build] Include ipxe.pxe in default build Stefan Hajnoczi (2): [netdevice] Add vlan_tag() to get the VLAN tag of a network device [iscsi] Include 802.1Q VLAN identifier in iBFT Thomas Miletich (3): [3c90x] Stall upload engine before setting RX ring address [3c90x] Don't round up transmit packet length [3c90x] Fix High-MTU packet reception lolipop (1): [intel] Add Intel I217 Gigabit Ethernet PCI ID Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>