usb: fail usbdevice_create() when there is no USB bus
Report an error instead of segfaulting when attaching a USB device to a
machine with no USB busses:
  $ qemu-system-arm -machine vexpress-a9 \
      -sd Fedora-17-armhfp-vexpress-mmcblk0.img \
      -kernel vmlinuz-3.4.2-3.fc17.armv7hl \
      -initrd initramfs-3.4.2-3.fc17.armv7hl.img \
      -usbdevice disk:format=raw:test.img
Note that the vexpress-a9 machine does not have a USB host controller.
Reported-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									6c2d1c32d0
								
							
						
					
					
						commit
						c128d6a6d7
					
				| @ -590,6 +590,13 @@ USBDevice *usbdevice_create(const char *cmdline) | ||||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|     if (!bus) { | ||||
|         error_report("Error: no usb bus to attach usbdevice %s, " | ||||
|                      "please try -machine usb=on and check that " | ||||
|                      "the machine model supports USB", driver); | ||||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|     if (!f->usbdevice_init) { | ||||
|         if (*params) { | ||||
|             error_report("usbdevice %s accepts no params", driver); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Stefan Hajnoczi
						Stefan Hajnoczi