aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* compat/gnttab: Prevent infinite loop in compat codestaging-4.0stable-4.0Ian Jackson2012-11-141-0/+2
| | | | | | | | | | | | | | | | | | | c/s 20281:95ea2052b41b, which introduces Grant Table version 2 hypercalls introduces a vulnerability whereby the compat hypercall handler can fall into an infinite loop. If the watchdog is enabled, Xen will die after the timeout. This is a security problem, XSA-24 / CVE-2012-4539. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-unstable changeset: 26151:b64a7d868f06 Backport-requested-by: security@xen.org Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* xen/mm/shadow: check toplevel pagetables are present before unhooking them.Ian Jackson2012-11-141-2/+6
| | | | | | | | | | | | | | | | | | | If the guest has not fully populated its top-level PAE entries when it calls HVMOP_pagetable_dying, the shadow code could try to unhook entries from MFN 0. Add a check to avoid that case. This issue was introduced by c/s 21239:b9d2db109cf5. This is a security problem, XSA-23 / CVE-2012-4538. Signed-off-by: Tim Deegan <tim@xen.org> Tested-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-4.1-testing changeset: 23409:61eb3d030f52 Backport-requested-by: security@xen.org Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* x86/physmap: Prevent incorrect updates of m2p mappingsIan Jackson2012-11-141-0/+4
| | | | | | | | | | | | | | | | | | | In certain conditions, such as low memory, set_p2m_entry() can fail. Currently, the p2m and m2p tables will get out of sync because we still update the m2p table after the p2m update has failed. If that happens, subsequent guest-invoked memory operations can cause BUG()s and ASSERT()s to kill Xen. This is fixed by only updating the m2p table iff the p2m was successfully updated. This is a security problem, XSA-22 / CVE-2012-4537. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* VCPU/timers: Prevent overflow in calculations, leading to DoS vulnerabilityIan Jackson2012-11-142-0/+5
| | | | | | | | | | | | | | | | | | The timer action for a vcpu periodic timer is to calculate the next expiry time, and to reinsert itself into the timer queue. If the deadline ends up in the past, Xen never leaves __do_softirq(). The affected PCPU will stay in an infinite loop until Xen is killed by the watchdog (if enabled). This is a security problem, XSA-20 / CVE-2012-4535. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-unstable changeset: 26148:bf58b94b3cef Backport-requested-by: security@xen.org Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* QEMU_TAG fix to refer to correct treeIan Jackson2012-09-121-1/+1
|
* QEMU_TAG updateIan Jackson2012-09-111-3/+3
|
* QEMU_TAG update (XSA-17 / CVE-2012-3515)Ian Jackson2012-09-051-3/+3
|
* xen: Don't BUG_ON() PoD operations on a non-translated guest.Ian Jackson2012-09-051-1/+2
| | | | | | | | This is XSA-14 / CVE-2012-3496 Signed-off-by: Tim Deegan <tim@xen.org> Reviewed-by: Ian Campbell <ian.campbell@citrix.com> Tested-by: Ian Campbell <ian.campbell@citrix.com>
* xen: prevent a 64 bit guest setting reserved bits in DR7Ian Jackson2012-09-051-1/+1
| | | | | | | | | | The upper 32 bits of this register are reserved and should be written as zero. This is XSA-12 / CVE-2012-3494 Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Ian Campbell <ian.campbell@citrix.com>
* Added signature for changeset 8ea28053de39Keir Fraser2012-08-091-0/+1
|
* Added tag RELEASE-4.0.4 for changeset 8ea28053de39Keir Fraser2012-08-091-0/+1
|
* Update Xen version to 4.0.4RELEASE-4.0.4Keir Fraser2012-08-092-2/+2
|
* cpufreq: P state stats aren't available if there is no cpufreq driverDavid Vrabel2012-08-091-0/+2
| | | | | | | | | | | | | If there is no cpufreq driver (e.g., with an AMD Opteron 8212) then reading the P state statistics causes a deadlock as an uninitialized spinlock is locked in do_get_pm_info(). The spinlock is initialized in cpufreq_statistic_init() which is not called if cpufreq_driver == NULL. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Committed-by: Jan Beulich <jbeulich@suse.com> xen-unstable changeset: 25706:7fd5facb6084 xen-unstable date: Fri Aug 03 09:50:28 2012 +0200
* xen: only check for shared pages while any exist on teardownIan Campbell2012-08-091-0/+2
| | | | | | | | | | | Avoids worst case behavour when guest has a large p2m. This is XSA-11 / CVE-2012-3433 Signed-off-by: Tim Deegan <tim@xen.org> Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Tested-by: Olaf Hering <olaf@aepfle.de> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* x86: fix off-by-one in nr_irqs_gsi calculationJan Beulich2012-07-301-1/+1
| | | | | | | | | | highest_gsi() returns the last valid GSI, not a count. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Joe Jin <joe.jin@oracle.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25688:e6266fc76d08 xen-unstable date: Fri Jul 27 12:22:13 2012 +0200
* vt-d: fix wrong addr in IOTLB invalidation descriptorYang Zhang2012-07-301-1/+1
| | | | | | | | | | According to vt-d specs, the addr in IOTLB invalidation descriptor should be 4K page aligned. Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25617:75eb78d6cf54 xen-unstable date: Thu Jul 19 15:46:02 2012 +0100
* Update Xen version to 4.0.4-rc4-preKeir Fraser2012-07-301-1/+1
|
* x86/hvm: don't leave emulator in inconsistent stateJan Beulich2012-07-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | The fact that handle_mmio(), and thus the instruction emulator, is being run through twice for emulations that require involvement of the device model, allows for the second run to see a different guest state than the first one. Since only the MMIO-specific emulation routines update the vCPU's io_state, if they get invoked on the second pass, internal state (and particularly this variable) can be left in a state making successful emulation of a subsequent MMIO operation impossible. Consequently, whenever the emulator invocation returns without requesting a retry of the guest instruction, reset io_state. [ This is a security issue. XSA#10. -iwj ] Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-unstable changeset: 25682:ffcb24876b4f Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* Added signature for changeset 9af8521e0411Keir Fraser2012-07-221-0/+1
|
* Added tag 4.0.4-rc3 for changeset 9af8521e0411Keir Fraser2012-07-221-0/+1
|
* Update Xen version to 4.0.4-rc34.0.4-rc3Keir Fraser2012-07-222-2/+2
|
* xen: Fix off-by-one error when parsing command line argumentsAndrew Cooper2012-07-031-1/+1
| | | | | | | | | | | | | | | As Xen currently stands, it will attempt to interpret the first few bytes of the initcall section as a struct kernel_param. The reason that this not caused problems is because in the overflow case, param->name is actually a function pointer to the first initcall, and intepreting it as string is very unlikely to match an ASCII command line parameter name. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25587:2cffb7bf6e57 xen-unstable date: Tue Jul 03 13:38:19 2012 +0100
* x86/nmi: Fix deadlock in unknown_nmi_error()Andrew Cooper2012-07-031-4/+4
| | | | | | | | | | | Additionally, correct the text description to reflect what is being done, and make use of fatal_trap() in preference to kexec_crash() in case an unknown NMI occurs before a kdump kernel has been loaded. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25478:6d1a30dc47e8 xen-unstable date: Mon Jun 11 15:12:50 2012 +0100
* x86_64: Fix off-by-one error setting up the Interrupt Stack TablesAndrew Cooper2012-07-032-4/+6
| | | | | | | | | | | | | | | | | | | | | | The Interrupt Stack Table entries in a 64bit TSS are a 1 based data structure as far as hardware is concerned. As a result, the code setting up stacks in subarch_percpu_traps_init() fills in the wrong IST entries. The result is that the MCE handler executes on the stack set up for NMIs; the NMI handler executes on a stack set up for Double Faults, and Double Faults are executed with a stack pointer set to 0. Once the #DF handler starts to execute, it will usually take a page fault looking up the address at 0xfffffffffffffff8, which will cause a triple fault. If a guest has mapped a page in that location, then it will have some state overwritten, but as the #DF handler always calls panic(), this is not a problem the guest will have time to care about. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25271:54da0329e259 xen-unstable date: Thu May 10 11:04:32 2012 +0100
* x86: Make asmlinkage explicitly a no-op, and avoid usage in arch/x86Keir Fraser2012-06-2016-46/+44
| | | | | | Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24511:a141f6d64916 xen-unstable date: Sun Jan 15 22:02:35 2012 +0000
* Update Xen version to 4.0.4-rc3-preKeir Fraser2012-06-201-1/+1
|
* Added signature for changeset fe1ae79f1a7fKeir Fraser2012-06-181-0/+1
|
* Added tag 4.0.4-rc2 for changeset fe1ae79f1a7fKeir Fraser2012-06-181-0/+1
|
* Update Xen version to 4.0.4-rc24.0.4-rc2Keir Fraser2012-06-182-2/+2
|
* x86-64: detect processors subject to AMD erratum #121 and refuse to bootJan Beulich2012-06-122-0/+11
| | | | | | | | | | | | | | | Processors with this erratum are subject to a DoS attack by unprivileged guest users. This is XSA-9 / CVE-2012-2934. Signed-off-by: Jan Beulich <JBeulich@suse.com> Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-unstable changeset: 25481:422880dc94a4 xen-unstable date: Tue Jun 12 11:33:42 2012 +0100 Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* x86-64: fix #GP generation in assembly codeJan Beulich2012-06-123-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When guest use of sysenter (64-bit PV guest) or syscall (32-bit PV guest) gets converted into a GP fault (due to no callback having got registered), we must - honor the GP fault handler's request the keep enabled or mask event delivery - not allow TBF_EXCEPTION to remain set past the generation of the (guest) exception in the vCPU's trap_bounce.flags, as that would otherwise allow for the next exception occurring in guest mode, should it happen to get handled in Xen itself, to nevertheless get bounced to the guest kernel. Also, just like compat mode syscall handling already did, native mode sysenter handling should, when converting to #GP, subtract 2 from the RIP present in the frame so that the guest's GP fault handler would see the fault pointing to the offending instruction instead of past it. Finally, since those exception generating code blocks needed to be modified anyway, convert them to make use of UNLIKELY_{START,END}(). [ This bug is security vulnerability, XSA-8 / CVE-2012-0218. ] Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Jan Beulich <jbeulich@suse.com> xen-unstable changeset: 25200:80f4113be500 25204:569d6f05e1ef Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* x86_64: Do not execute sysret with a non-canonical return addressJan Beulich2012-06-121-0/+11
| | | | | | | | | | | | | | | | | | | Check for non-canonical guest RIP before attempting to execute sysret. If sysret is executed with a non-canonical value in RCX, Intel CPUs take the fault in ring0, but we will necessarily already have switched to the the user's stack pointer. This is a security vulnerability, XSA-7 / CVE-2012-0217. Signed-off-by: Jan Beulich <JBeulich@suse.com> Signed-off-by: Ian Campbell <Ian.Campbell@citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Keir Fraser <keir.xen@gmail.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-unstable changeset: 25480:76eaf5966c05 xen-unstable date: Tue Jun 12 11:33:40 2012 +0100 Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* blktap2: Fix naked unchecked uses of read/write/chdir.Keir Fraser2012-05-1412-14/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These cause warnings under warn_unused_result, and for read/write we ought to deal with partial io results. Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25299:01d64a3dea71 xen-unstable date: Fri May 11 18:30:29 2012 +0100 blktap2: Fix another uninitialised value error gcc -O1 -fno-omit-frame-pointer -m32 -march=i686 -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF .block-remus.o.d -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls -mno-tls-direct-seg-refs -Werror -g -Wno-unused -fno-strict-aliasing -I../include -I../drivers -I/home/osstest/build.12828.build-i386/xen-unstable/tools/blktap2/drivers/../../../tools/libxc -I/home/osstest/build.12828.build-i386/xen-unstable/tools/blktap2/drivers/../../../tools/include -D_GNU_SOURCE -DUSE_NFS_LOCKS -c -o block-remus.o block-remus.c block-remus.c: In function 'ramdisk_flush': block-remus.c:508: error: 'buf' may be used uninitialized in this function make[5]: *** [block-remus.o] Error 1 This is because gcc can see that merge_requests doesn't always set *mergedbuf but gcc isn't able to prove that it always does so if merge_requests returns 0 and that in that case the value of ramdisk_flush::buf isn't used. This is too useful a warning to disable, despite the occasional false positive of this form. The conventional approach is to suppress the warning by explicitly initialising the variable to 0. This has just come to light because 25275:27d63b9f111a reenabled optimisation for this area of code, and gcc's data flow analysis (which is required to trigger the uninitialised variable warning) only occurs when optimisation is turned on. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> xen-unstable changeset: 25281:60064411a8a9 xen-unstable date: Thu May 10 14:26:14 2012 +0100 blktap2: Do not build with -O0 Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25275:27d63b9f111a xen-unstable date: Thu May 10 11:22:18 2012 +0100 blktap2: Fix uninitialised value error. Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25274:cb82b5aa73bd xen-unstable date: Thu May 10 11:21:59 2012 +0100 tools/blktap2: fix out of bounds access in block-log.c block-log.c: In function 'ctl_close_sock': block-log.c:363:23: warning: array subscript is above array bounds [-Warray-bounds] Adjust loop condition in ctl_close_sock() to fix warning. Adjust array acccess in ctl_close() to actually access the array member. Signed-off-by: Olaf Hering <olaf@aepfle.de> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25273:83a02f225bde xen-unstable date: Thu May 10 11:20:04 2012 +0100 tools/blktap2: fix build errors caused by Werror in vhd_journal_write_entry -O2 -Wall -Werror triggers these warnings: libvhd-journal.c: In function 'vhd_journal_write_entry': libvhd-journal.c:335: warning: statement with no effect Really return the error from vhd_journal_write() to caller. v2: - simplify the patch by just adding the missing return statement Signed-off-by: Olaf Hering <olaf@aepfle.de> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25272:ca02580986d2 xen-unstable date: Thu May 10 11:19:05 2012 +0100
* Update Xen version to 4.0.4-rc2-preKeir Fraser2012-05-141-1/+1
|
* Added signature for changeset 94fddf2a1948Keir Fraser2012-05-071-0/+1
|
* Added tag 4.0.4-rc1 for changeset 94fddf2a1948Keir Fraser2012-05-071-0/+1
|
* Update Xen version to 4.0.4-rc14.0.4-rc1Keir Fraser2012-05-072-2/+2
|
* svm: Fake out the Bus Unit Config MSR on revF AMD CPUsGeorge Dunlap2012-05-012-0/+15
| | | | | | | | | | | | | | | | | | | | | | | Win2k8 x64 reads this MSR on revF chips, where it wasn't publically available; it uses a magic constant in %rdi as a password, which we don't have in rdmsr_safe(). Since we'll ignore the later writes, just use a plausible value here (the reset value from rev10h chips) if the real CPU didn't provide one. Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24990:322300fd2ebd xen-unstable date: Thu Mar 08 09:17:21 2012 +0000 svm: amend c/s 24990:322300fd2ebd (fake BU_CFG MSR on AMD revF) Let's restrict such a hack to the known affected family. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Acked-by: George Dunlap <george.dunlap@eu.citrix.com> xen-unstable changeset: 25058:f47d91cb0faa xen-unstable date: Thu Mar 15 15:09:18 2012 +0100
* x86-64: Fix memory hotplug epfn upper limit test for updating theMalcolm Crossley2012-05-011-1/+1
| | | | | | | | | | | | | | | compat M2P table The epfn is being compared to (RDWR_COMPAT_MPT_VIRT_END - RDWR_COMPAT_MPT_VIRT_START) without a 2 bit shift, resulting in the epfn being compared to the size of the RDWR_COMPAT_MPT table in bytes instead of the maximum page frame number that the RDWR_COMPAT_MPT table can map. Signed-off-by: Malcolm Crossley <malcolm.crossley@citrix.com> Committed-by: Jan Beulich <jbeulich@suse.com> xen-unstable changeset: 25242:b7ce6a88bebb xen-unstable date: Wed Apr 25 12:35:56 2012 +0200
* x86/hpet: disable before reboot or kexecJan Beulich2012-04-174-2/+38
| | | | | | | | | | | | | | | | | Linux up to now is not smart enough to properly clear the HPET when it boots, which is particularly a problem when a kdump attempt from running under Xen is being made. Linux itself added code to work around this to its shutdown paths quite some time ago, so let's do something similar in Xen: Save the configuration register settings during boot, and restore them during shutdown. This should cover the majority of cases where the secondary kernel might not come up because timer interrupts don't work. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25101:f06ff3dfde08 xen-unstable date: Tue Mar 27 15:20:23 2012 +0200
* x86_emulate: Do not push an error code onto a #UD exception stackAndrew Cooper2012-04-171-7/+7
| | | | | | | | | | | | | | | Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25099:4bd752a4cdf3 xen-unstable date: Fri Mar 23 20:51:48 2012 +0000 x86_emulate: raise #UD rather than #GP on invalid use of LOCK prefix From: Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by: Keir Fraser <keir@xen.org> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25098:2e45b26bc412 xen-unstable date: Fri Mar 23 20:45:16 2012 +0000
* x86/gnttab: fix asm() operand in gnttab_clear_flag()Jan Beulich2012-03-231-1/+1
| | | | | | | | | | | | The operand needs to use the 'w' modifier in case the compiler happens to pick a register (which apparently it does for no-one but the reporter of this problem). Reported-by: Lin Ming <mlin@ss.pku.edu.cn> Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 25092:a66fb91cb8d3 xen-unstable date: Fri Mar 23 08:39:39 2012 +0100
* vMSI: fix ia64 build for 21577:c41ab909f08eKeir Fraser2012-03-2311-3/+18
| | | | | | | | | | | | | | | | | On ia64, 21577:c41ab909f08e introduces the following error: /xen/include/xen/pci.h:52: warning: implicit declaration of function `PFN_UP' /xen/include/xen/pci.h:52: error: variable-size type declared outside of any function /xen/include/xen/pci.h:53: error: variable-size type declared outside of any function Because the macro PFN_UP() is defined on x86 only. Signed-off-by: Keir Fraser <keir@xen.org> Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com> xen-unstable changeset: 23074:c80e0fb4fe93 xen-unstable date: Wed Mar 23 13:34:55 2011 +0000
* IRQ: fix ia64 build for 21530:0383662ea34cKUWAMURA Shin'ya2012-03-231-0/+4
| | | | | | | | | | | | | | | | | On ia64, 21530:0383662ea34c introduces the following error: irq.c:129: warning: initialization from incompatible pointer type irq.c: In function '__do_IRQ': irq.c:159: error: too few arguments to function 'desc->handler->end' irq.c:223: error: too few arguments to function 'desc->handler->end' irq.c: In function 'pirq_guest_eoi': irq.c:450: error: too few arguments to function 'desc->handler->end' irq.c: In function 'pirq_guest_unbind': irq.c:579: error: too few arguments to function 'desc->handler->end' This patch is a part of xen-unstable 24145:967845cb565b. Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com> Committed-by: Keir Fraser <keir@xen.org>
* x86/vMSI: miscellaneous fixesJan Beulich2012-03-084-22/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This addresses a number of problems in msixtbl_{read,write}(): - address alignment was not checked, allowing for memory corruption in the hypervisor (write case) or returning of hypervisor private data to the guest (read case) - the interrupt mask bit was permitted to be written by the guest (while Xen's interrupt flow control routines need to control it) - MAX_MSIX_TABLE_{ENTRIES,PAGES} were pointlessly defined to plain numbers (making it unobvious why they have these values, and making the latter non-portable) - MAX_MSIX_TABLE_PAGES was also off by one (failing to account for a non-zero table offset); this was also affecting host MSI-X code - struct msixtbl_entry's table_flags[] was one element larger than necessary due to improper open-coding of BITS_TO_LONGS() - msixtbl_read() unconditionally accessed the physical table, even though the data was only needed in a quarter of all cases - various calculations were done unnecessarily for both of the rather distinct code paths in msixtbl_read() Additionally it is unclear on what basis MAX_MSIX_ACC_ENTRIES was chosen to be 3. Signed-off-by: Jan Beulich <jbeulich@suse.com> Committed-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24535:fb81b807c154 xen-unstable date: Mon Jan 23 09:35:17 2012 +0000
* passthrough: release assigned PCI devices earlier during domainJan Beulich2012-03-073-4/+8
| | | | | | | | | | | | | | | shutdown At least with xend, where there's not even a tool stack side attempt to de-assign devices during domain shutdown, this allows immediate re- starts of a domain to work reliably. (There's no apparent reason why c/s 18010:c1577f094ae4 chose to put this in the asynchronous part of domain destruction). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24888:71159fb049f2 xen-unstable date: Fri Feb 24 11:46:32 2012 +0100
* x86/emulator: workaround for AMD erratum 573Jan Beulich2012-03-074-1/+18
| | | | | | | | | | | | | | | | | | | The only cases where we might end up emulating fsincos (as any other x87 operations without memory operands) are - when a HVM guest is in real mode (not applicable on AMD) - between two half page table updates in PAE mode (unlikely, and not doing the emulation here does affect only performance, not correctness) - when a guest maliciously (or erroneously) modifies an (MMIO or page table update) instruction under emulation (unspecified behavior) Hence, in order to avoid the erratum to cause harm to the entire host, don't emulate fsincos on the affected AMD CPU families. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24417:1452fb248cd5 xen-unstable date: Fri Dec 16 15:45:40 2011 +0100
* Fix build after previous changeset.Keir Fraser2012-03-071-3/+4
| | | | Signed-off-by: Keir Fraser <keir@xen.org>
* x86, amd: Disable GartTlbWlkErr when BIOS forgets itJan Beulich2012-03-074-2/+21
| | | | | | | | | | | | | | | | | This patch disables GartTlbWlk errors on AMD Fam10h CPUs if the BIOS forgets to do is (or is just too old). Letting these errors enabled can cause a sync-flood on the CPU causing a reboot. The AMD BKDG recommends disabling GART TLB Wlk Error completely. Based on a Linux patch from Joerg Roedel <joerg.roedel@amd.com>; see e.g. https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=patch;h=5bbc097d890409d8eff4e3f1d26f11a9d6b7c07e Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24389:868d82faf651 xen-unstable date: Tue Dec 13 09:45:11 2011 +0100
* KEXEC: fix kexec_get_range_compat to fail vocally.Andrew Cooper2012-03-071-0/+4
| | | | | | | | | | | | | Fail with -ERANGE rather than silently truncating 64bit values (a physical address and size) into 32bit integers for dom0 to consume. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Simplify the bitwise arithmetic a bit. Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 24358:9961a6d5356a xen-unstable date: Mon Dec 05 19:42:46 2011 +0000