- 06 7月, 2010 6 次提交
-
-
由 Alex Williamson 提交于
When available, we'd like to be able to access the DeviceState when registering a savevm. For buses with a get_dev_path() function, this will allow us to create more unique savevm id strings. Signed-off-by: NAlex Williamson <alex.williamson@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Alex Williamson 提交于
This works great for PCI since a <segment>:<bus>:<dev>.<fn> uniquely describes a global address. No need to traverse up the qdev tree. PCI segment support is a placeholder for compatibility once we support multiple segments. Signed-off-by: NAlex Williamson <alex.williamson@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Alex Williamson 提交于
This function is meant to provide a stable device path for buses which are able to implement it. If a bus has a globally unique addresses scheme, one address level may be sufficient to provide a path. Other buses may need to recursively traverse up the qdev tree. Signed-off-by: NAlex Williamson <alex.williamson@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Alex Williamson 提交于
This will benefit us when we migrate based on ramblock name since we won't be bouncing between separate blocks. Signed-off-by: NAlex Williamson <alex.williamson@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Gleb Natapov 提交于
Convert alarm time from BCD if needed before comparing with current time. Signed-off-by: NGleb Natapov <gleb@redhat.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
由 Jan Kiszka 提交于
When the controller raises the SCSI reset line, we have to perform the requested reset on all disks attached to the controller's bus. Moreover, reset is edge triggered, so avoid repeating it if the line was already high. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
-
- 03 7月, 2010 1 次提交
-
-
由 Paolo Bonzini 提交于
Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
- 02 7月, 2010 8 次提交
-
-
由 Markus Armbruster 提交于
Drives defined with -drive if=ide get get created along with the IDE controller, inside machine->init(). That's before cmos_init(). Drives defined with -device get created during generic device init. That's after cmos_init(). Because of that, CMOS has no information on them (type, geometry, translation). Older versions of Windows such as XP reportedly choke on that. Split off the part of CMOS initialization that needs to know about -device devices, and turn it into a reset handler, so it runs after device creation. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
BlockDriverState member removable controls whether virtual media change (monitor commands change, eject) is allowed. It is set when the "type hint" is BDRV_TYPE_CDROM or BDRV_TYPE_FLOPPY. The type hint is only set by drive_init(). It sets BDRV_TYPE_FLOPPY for if=floppy. It sets BDRV_TYPE_CDROM for media=cdrom and if=ide, scsi, xen, or none. if=ide and if=scsi work, because the type hint makes it a CD-ROM. if=xen likewise, I think. For the same reason, if=none works when it's used by ide-drive or scsi-disk. For other guest devices, there are problems: * fdc: you can't change virtual media $ qemu [...] -drive if=none,id=foo,... -global isa-fdc.driveA=foo QEMU 0.12.50 monitor - type 'help' for more information (qemu) eject foo Device 'foo' is not removable unless you add media=cdrom, but that makes it readonly. * virtio: if you add media=cdrom, you can change virtual media. If you eject, the guest gets I/O errors. If you change, the guest sees the drive's contents suddenly change. * scsi-generic: if you add media=cdrom, you can change virtual media. I didn't test what that does to the guest or the physical device, but it can't be pretty. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
For instance, -device scsi-disk,drive=foo -device scsi-disk,drive=foo happily creates two SCSI disks connected to the same block device. It's all downhill from there. Device usb-storage deliberately attaches twice to the same blockdev, which fails with the fix in place. Detach before the second attach there. Also catch attempt to delete while a guest device model is attached. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
Make the property point to BlockDriverState, cutting out the DriveInfo middleman. This prepares the ground for block devices that don't have a DriveInfo. Currently all user-defined ones have a DriveInfo, because the only way to define one is -drive & friends (they go through drive_init()). DriveInfo is closely tied to -drive, and like -drive, it mixes information about host and guest part of the block device. I'm working towards a new way to define block devices, with clean host/guest separation, and I need to get DriveInfo out of the way for that. Fortunately, the device models are perfectly happy with BlockDriverState, except for two places: ide_drive_initfn() and scsi_disk_initfn() need to check the DriveInfo for a serial number set with legacy -drive serial=... Use drive_get_by_blockdev() there. Device model code should now use DriveInfo only when explicitly dealing with drives defined the old way, i.e. without -device. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Reviewed-by: NChristoph Hellwig <hch@lst.de> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
We automatically delete blockdev host parts on unplug of the guest device. Too much magic, but we can't change that now. The delete happens early in the guest device teardown, before the connection to the host part is severed. Thus, the guest part's pointer to the host part dangles for a brief time. No actual harm comes from this, but we'll catch such dangling pointers a few commits down the road. Clean up the dangling pointers by delaying the automatic deletion until the guest part's pointer is gone. Device usb-storage deliberately makes two qdev properties refer to the same drive, because it automatically creates a second device. Again, too much magic we can't change now. Multiple references worked okay before, but now free_drive() dies for the second one. Zap the extra reference. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
All callers of ide_create_drive() ignore its value. Currently harmless, because it fails only when qdev_init() fails, which fails only when ide_drive_initfn() fails, which never fails. Brittle. Change it to die instead of silently ignoring failure. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
由 Markus Armbruster 提交于
None of its callers checks for failure. scsi_hot_add() can crash because of that: (qemu) drive_add 4 if=scsi,format=host_device,file=/dev/sg1 scsi-generic: scsi generic interface too old Segmentation fault (core dumped) Fix all callers, not just scsi_hot_add(). Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Signed-off-by: NKevin Wolf <kwolf@redhat.com>
-
- 01 7月, 2010 17 次提交
-
-
由 Kevin Wolf 提交于
scanf calls must not use PRI constants, they have probably the wrong size and corrupt memory. We could replace them by SCN ones, but strtol is simpler than scanf here anyway. While at it, also fix the parsers to reject garbage after the number ("4096xyz" was accepted before). Signed-off-by: NKevin Wolf <kwolf@redhat.com> Richard Henderson <rth@redhat.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 TeLeMan 提交于
The commit 8e65b7c0 introduced expire_time of UHCIState. But expire_time is not in vmstate, the second uhci_frame_timer will not be fired immediately after loadvm. Signed-off-by: NTeLeMan <geleman@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 cmchao 提交于
Signed-off-by: Ncmchao <cmchao@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Markus Armbruster 提交于
For all i, ports_map[i] is used in and only in the i-th iteration. Replace the dynamic array by a scalar variable. Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Acked-by: NAmit Shah <amit.shah@redhat.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Markus Armbruster 提交于
Signed-off-by: NMarkus Armbruster <armbru@redhat.com> Acked-by: NGerd Hoffmann <kraxel@redhat.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 30 6月, 2010 7 次提交
-
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Paolo Bonzini 提交于
lsi_bad_phase has a bug in the choice of pmjad1/pmjad2. This does not matter with Linux guests because it uses just one routine for both, but it breaks Windows 64-bit guests. This is the text from the spec: "[The PMJCTL] bit controls which decision mechanism is used when jumping on phase mismatch. When this bit is cleared the LSI53C895A will use Phase Mismatch Jump Address 1 (PMJAD1) when the WSR bit is cleared and Phase Mismatch Jump Address 2 (PMJAD2) when the WSR bit is set. When this bit is set the LSI53C895A will use jump address one (PMJAD1) on data out (data out, command, message out) transfers and jump address two (PMJAD2) on data in (data in, status, message in) transfers." Which means: CCNTL0.PMJCTL 0 SCNTL2.WSR = 0 PMJAD1 0 SCNTL2.WSR = 1 PMJAD2 1 out PMJAD1 1 in PMJAD2 In qemu, what you get instead is: CCNTL0.PMJCTL 0 out PMJAD1 0 in PMJAD2 <<<<< 1 out PMJAD1 1 in PMJAD1 <<<<< Considering that qemu always has SCNTL2.WSR cleared, the two marked cases (corresponding to phase mismatch on input) are always jumping to the wrong PMJAD register. The patch implements the correct semantics. Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Huacai Chen 提交于
Signed-off-by: NHuacai Chen <zltjiangshi@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Huacai Chen 提交于
Signed-off-by: NHuacai Chen <zltjiangshi@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Huacai Chen 提交于
Signed-off-by: NHuacai Chen <zltjiangshi@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Huacai Chen 提交于
Signed-off-by: NHuacai Chen <zltjiangshi@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Huacai Chen 提交于
Signed-off-by: NHuacai Chen <zltjiangshi@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 28 6月, 2010 1 次提交
-
-
由 Jan Kiszka 提交于
Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-