summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'qemu-kvm/uq/master' into stagingAnthony Liguori2012-06-112-6/+53
|\ | | | | | | | | | | * qemu-kvm/uq/master: kvm: i8254: Fix conversion of in-kernel to userspace state kvm/apic: correct short memset
| * kvm: i8254: Fix conversion of in-kernel to userspace stateJan Kiszka2012-06-111-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to a offset between the clock used to generate the in-kernel count_load_time (CLOCK_MONOTONIC) and the clock used for processing this in userspace (vm_clock), reading back the output of PIT channel 2 via port 0x61 was broken. One use cases that suffered from it was the CPU frequency calibration of SeaBIOS, which also affected IDE/AHCI timeouts. This fixes it by calibrating the offset between both clocks on kvm_pit_get and adjusting the kernel value before saving it in the userspace state. As the calibration only works while the vm_clock is running, we cache the in-kernel state across stopped phases. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
| * kvm/apic: correct short memsetJim Meyering2012-06-111-1/+1
| | | | | | | | | | | | | | | | | | kvm_put_apic_state's attempt to clear *kapic before setting its bits cleared sizeof(void*) bytes (no more than 8) rather than the intended 1024 (KVM_APIC_REG_SIZE) bytes. Spotted by coverity. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
* | Merge remote-tracking branch 'sstabellini/for_1.1.1' into stagingAnthony Liguori2012-06-111-0/+14
|\ \ | | | | | | | | | | | | * sstabellini/for_1.1.1: qemu/xendisk: set maximum number of grants to be used
| * | qemu/xendisk: set maximum number of grants to be usedJan Beulich2012-06-111-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Legacy (non-pvops) gntdev drivers may require this to be done when the number of grants intended to be used simultaneously exceeds a certain driver specific default limit. Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* | | Merge remote-tracking branch 'afaerber-or/qom-cpu-3a' into stagingAnthony Liguori2012-06-1137-197/+223
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * afaerber-or/qom-cpu-3a: (27 commits) target-s390x: Pass S390CPU to s390_cpu_restart() s390-virtio: Let s390_cpu_addr2state() return S390CPU s390-virtio: Use cpu_s390x_init() to obtain S390CPU target-s390x: Let cpu_s390x_init() return S390CPU xen_machine_pv: Use cpu_x86_init() to obtain X86CPU arm_pic: Pass ARMCPU to arm_pic_init_cpu() arm_boot: Pass ARMCPU to arm_load_kernel() xilinx_zynq: Use cpu_arm_init() to obtain ARMCPU pxa2xx_gpio: Store ARMCPU in PXA2xxGPIOInfo pxa2xx_pic: Store ARMCPU in PXA2xxPICState pxa2xx: Pass ARMCPU to pxa2xx_pic_init() exynos4210: Use cpu_arm_init() to store ARMCPU vexpress: Use cpu_arm_init() to obtain ARMCPU realview: Use cpu_arm_init() to obtain ARMCPU arm_boot: Pass ARMCPU to arm_boot_info::secondary_cpu_reset_hook() arm_boot: Pass ARMCPU to arm_boot_info::write_secondary_boot() versatilepb: Use cpu_arm_init() to obtain ARMCPU musicpal: Use cpu_arm_init() to obtain ARMCPU integratorcp: Use cpu_arm_init() to obtain ARMCPU strongarm: Use cpu_arm_init() to store ARMCPU in StrongARMState ...
| * | | target-s390x: Pass S390CPU to s390_cpu_restart()Andreas Färber2012-06-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Needed for qemu_cpu_kick(). Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | s390-virtio: Let s390_cpu_addr2state() return S390CPUAndreas Färber2012-06-114-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert ipi_states to S390CPU**. Needed for s390_cpu_restart() in handle_sigp(). Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | s390-virtio: Use cpu_s390x_init() to obtain S390CPUAndreas Färber2012-06-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Needed to store S390CPU in ipi_states[]. Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | target-s390x: Let cpu_s390x_init() return S390CPUAndreas Färber2012-06-113-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Let cpu_init() return CPUS390XState for backwards compatibility. Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | xen_machine_pv: Use cpu_x86_init() to obtain X86CPUAndreas Färber2012-06-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for moving halted field to CPUState. Signed-off-by: Andreas Färber <afaerber@suse.de> Tested-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
| * | | arm_pic: Pass ARMCPU to arm_pic_init_cpu()Andreas Färber2012-06-1114-19/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass it through to arm_pic_cpu_handler(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Igor Mitsyanko <i.mitsyanko@samsung.com> (for exynos)
| * | | arm_boot: Pass ARMCPU to arm_load_kernel()Andreas Färber2012-06-1118-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular this simplifies the &s->mpu->cpu->env expression again. first_cpu and ->next_cpu are expected to be QOM'ified later. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Igor Mitsyanko <i.mitsyanko@samsung.com> (for exynos) Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | xilinx_zynq: Use cpu_arm_init() to obtain ARMCPUAndreas Färber2012-06-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_load_kernel(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter A.G. Crosthwaite <peter.crosthwaite@petalogix.com>
| * | | pxa2xx_gpio: Store ARMCPU in PXA2xxGPIOInfoAndreas Färber2012-06-111-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prepares for moving halted field into CPUState. Add missing braces. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | pxa2xx_pic: Store ARMCPU in PXA2xxPICStateAndreas Färber2012-06-111-13/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prepares for moving halted field to CPUState. Add missing braces. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | pxa2xx: Pass ARMCPU to pxa2xx_pic_init()Andreas Färber2012-06-113-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleans up after storing ARMCPU in PXA2xxState. Prepares for storing ARMCPU in PXA2xxPICState. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | exynos4210: Use cpu_arm_init() to store ARMCPUAndreas Färber2012-06-112-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_pic_init_cpu(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Igor Mitsyanko <i.mitsyanko@samsung.com>
| * | | vexpress: Use cpu_arm_init() to obtain ARMCPUAndreas Färber2012-06-111-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_pic_init_cpu(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | realview: Use cpu_arm_init() to obtain ARMCPUAndreas Färber2012-06-111-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_pic_init_cpu(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | arm_boot: Pass ARMCPU to arm_boot_info::secondary_cpu_reset_hook()Andreas Färber2012-06-113-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapt highbank accordingly. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | arm_boot: Pass ARMCPU to arm_boot_info::write_secondary_boot()Andreas Färber2012-06-115-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapt exynos4210 and highbank accordingly. The parameter itself is unused. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Igor Mitsyanko <i.mitsyanko@samsung.com> (for exynos)
| * | | versatilepb: Use cpu_arm_init() to obtain ARMCPUAndreas Färber2012-06-111-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_load_kernel(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | musicpal: Use cpu_arm_init() to obtain ARMCPUAndreas Färber2012-06-111-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_load_kernel(). Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | integratorcp: Use cpu_arm_init() to obtain ARMCPUAndreas Färber2012-06-111-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Needed for arm_load_kernel(). Add missing braces. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | strongarm: Use cpu_arm_init() to store ARMCPU in StrongARMStateAndreas Färber2012-06-113-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapt collie accordingly. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | z2: Rename PXA2xxState variableAndreas Färber2012-06-111-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid cpu->cpu by using "mpu" as variable name. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | tosa: Rename PXA2xxState variableAndreas Färber2012-06-111-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid cpu->cpu by using "mpu" as variable name. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | spitz: Rename PXA2xxState variableAndreas Färber2012-06-111-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid cpu->cpu by using "mpu" as variable name. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | mainstone: Rename PXA2xxState variableAndreas Färber2012-06-111-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid cpu->cpu by using "mpu" as variable name. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | palm: Rename omap_mpu_state_s variableAndreas Färber2012-06-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid cpu->cpu by using "mpu" as variable name. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | omap_sx1: Rename omap_mpu_state_s variableAndreas Färber2012-06-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid cpu->cpu by using "mpu" as variable name. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
| * | | nseries: Rename n800_s::cpu to mpuAndreas Färber2012-06-111-36/+36
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | omap_mpu_state_s::env was renamed to cpu while changing its type. With n800_s::cpu of type omap_mpu_state_s* this leads to s->cpu->cpu. Rename the field to "mpu" to avoid this ugliness. Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Peter Maydell <peter.maydell@linaro.org>
* | | Merge remote-tracking branch 'afaerber-or/qom-next-1' into stagingAnthony Liguori2012-06-1113-172/+1041
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * afaerber-or/qom-next-1: target-i386: Use uint32 visitor for [x]level properties qdev: Remove PropertyInfo range checking qdev: Switch property accessors to fixed-width visitor interfaces qdev: Use int32_t container for devfn property qapi: Add String visitor coverage to serialization unit tests qapi: String visitor, use %f representation for floats qapi: Unit tests for visitor-based serialization qapi: Add Visitor interfaces for uint*_t and int*_t
| * | | target-i386: Use uint32 visitor for [x]level propertiesAndreas Färber2012-06-081-38/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies the code and resolves TODOs. Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
| * | | qdev: Remove PropertyInfo range checkingPaolo Bonzini2012-06-082-82/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Range checking in PropertyInfo is now used only for pci_devfn properties and some error reporting. Remove all code that implements it in the various property types, and the now unused fields. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> [AF: Fix blocksize min/max for 32-bit hosts by using const int64_t.] Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | qdev: Switch property accessors to fixed-width visitor interfacesMichael Roth2012-06-082-63/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces {get,set}_uint{8,16,32,64}() functions for the respective qdev types. TADDR and VLAN are switched to explicit int64, BLOCKSIZE to uint16. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | qdev: Use int32_t container for devfn propertyMichael Roth2012-06-084-10/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Valid range for devfn is -1 to 255 (-1 for automatic assignment). We do not currently validate this due to devfn being stored as a uint32_t. This can lead to segfaults and other strange behavior. We could technically just cast it to int32_t to implement the checking, but this will not work for visitor-based setting where we may do additional bounds-checking based on target container type, which is int32_t for this case. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | qapi: Add String visitor coverage to serialization unit testsMichael Roth2012-06-081-0/+40
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | qapi: String visitor, use %f representation for floatsMichael Roth2012-06-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently string-output-visitor formats floats as %g, which is nice in that trailing 0's are automatically truncated, but otherwise this causes some issues: - it uses 6 significant figures instead of 6 decimal places, which means something like 155777.5 (which even has an exact floating point representation) will be rounded to 155778 when converted to a string. - output will be presented in scientific notation when the normalized form requires a 10^x multiplier. Not a huge deal, but arguably less readable for command-line arguments. - due to using scientific notation for numbers requiring more than 6 significant figures, instead of hard-defined decimal places, it fails a lot of the test-visitor-serialization unit tests for floats. Instead, let's just use %f, which is what the QJSON and the QMP visitors use. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | qapi: Unit tests for visitor-based serializationMichael Roth2012-06-082-1/+747
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we test our visitors individually, and seperately for input vs. output. This is useful for validating internal representations against the native C types and vice-versa, and other visitor-specific testing, but it doesn't cover the potential use-case of using visitor pairs for serialization/deserialization very well, and makes it hard to easily extend the coverage for different C types / boundary conditions. To cover that we add a set of unit tests that takes a number of native C values, passes them into an output visitor, extracts the values with an input visitor, then compares the result to the original. Plugging in new visitors to the test harness only requires a user to implement the SerializeOps interface and add it to a list. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
| * | | qapi: Add Visitor interfaces for uint*_t and int*_tMichael Roth2012-06-083-7/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds visitor interfaces for fixed-width integers types. Implementing these in visitors is optional, otherwise we fall back to visit_type_int() (int64_t) with some additional bounds checking to avoid integer overflows for cases where the value fetched exceeds the bounds of our target C type. Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> [LE: exclude negative values in uint*_t Visitor interfaces] Signed-off-by: Laszlo Ersek <lersek@redhat.com> [AF: Merged fix by Laszlo] Signed-off-by: Andreas Färber <afaerber@suse.de>
* | | | Merge remote-tracking branch 'stefanha/trivial-patches' into stagingAnthony Liguori2012-06-113-12/+18
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stefanha/trivial-patches: configure: report missing libraries for virtfs trace/simple.c: fix deprecated glib2 interface Clarify comments of tb_invalidate_phys_[page_]range
| * | | | configure: report missing libraries for virtfsHarsh Prateek Bora2012-06-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
| * | | | trace/simple.c: fix deprecated glib2 interfaceHarsh Prateek Bora2012-06-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
| * | | | Clarify comments of tb_invalidate_phys_[page_]rangeJan Kiszka2012-06-081-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They could suggest that all TBs of the page containing the range would be invalidated. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
* | | | | Merge remote-tracking branch 'kraxel/usb.52' into stagingAnthony Liguori2012-06-117-372/+695
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * kraxel/usb.52: (37 commits) ehci: rework frame skipping ehci: adaptive wakeup rate. ehci: create ehci_update_frindex ehci: remove unused attach_poll_counter ehci: fix halt status handling ehci: update status bits in ehci_set_state ehci: add ehci_*_enabled() helpers ehci: fix reset ehci: kick async schedule on wakeup ehci: schedule async bh on async packet completion ehci: move async schedule to bottom half ehci: add async field to EHCIQueue ehci: tweak queue initialization ehci: add queuing support ehci: move ehci_flush_qh ehci: cache USBDevice in EHCIQueue ehci: make ehci_execute work on EHCIPacket instead of EHCIQueue ehci: add EHCIPacket xhci: trace: slots xhci: trace: transfers ...
| * | | | ehci: rework frame skippingGerd Hoffmann2012-06-071-15/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the framecount check out of the loop and use the new ehci_update_frindex function to skip frames if needed. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
| * | | | ehci: adaptive wakeup rate.Gerd Hoffmann2012-06-071-18/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapt the frame timer sleeps according to the actual needs. With the periodic schedule being active we'll have to wakeup 1000 times per second and go check for work. In case only the async schedule is active we can be more lazy though. When idle ehci will increate the sleep time step by step, so qemu has to wake up less frequently. When we'll see transactions on the bus or the guest fiddles with the schedule enable/disable bits we'll return to a 1000 Hz wakeup rate and full speed. With both schedules disabled we stop wakeups altogether. This patch also drops the freq property (configures wakeup rate manually) which is obsoleted by this patch. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
| * | | | ehci: create ehci_update_frindexGerd Hoffmann2012-06-071-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Factor out code from ehci_frame_timer. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
OpenPOWER on IntegriCloud