Merge remote-tracking branch 'stefanha/trivial-patches' into staging

* stefanha/trivial-patches:
  qemu-nbd: drop loop which can never loop
  Make python mandatory
  net/socket.c: Fix fd leak in net_socket_listen_init() error paths
  gdbstub: Fix fd leak in gdbserver_open() error path
  configure: Fix test for supported host CPU type
  configure: CONFIG_QEMU_INTERP_PREFIX only for user mode
  scsi virtio-blk usb-msd: Clean up device init error messages
  Strip trailing '\n' from error_report()'s first argument (again)
  qemu-options.hx: fix tls-channel help text
This commit is contained in:
Anthony Liguori 2012-01-06 12:51:21 -06:00
commit a2e4d53ec5
11 changed files with 51 additions and 55 deletions

56
configure vendored
View File

@ -300,8 +300,11 @@ else
cpu=`uname -m` cpu=`uname -m`
fi fi
ARCH=
# Normalise host CPU name and set ARCH.
# Note that this case should only have supported host CPUs, not guests.
case "$cpu" in case "$cpu" in
alpha|cris|ia64|lm32|m68k|microblaze|ppc|ppc64|sparc64|unicore32) ia64|ppc|ppc64|s390|s390x|sparc64)
cpu="$cpu" cpu="$cpu"
;; ;;
i386|i486|i586|i686|i86pc|BePC) i386|i486|i586|i686|i86pc|BePC)
@ -319,20 +322,17 @@ case "$cpu" in
mips*) mips*)
cpu="mips" cpu="mips"
;; ;;
s390)
cpu="s390"
;;
s390x)
cpu="s390x"
;;
sparc|sun4[cdmuv]) sparc|sun4[cdmuv])
cpu="sparc" cpu="sparc"
;; ;;
*) *)
echo "Unsupported CPU = $cpu" # This will result in either an error or falling back to TCI later
exit 1 ARCH=unknown
;; ;;
esac esac
if test -z "$ARCH"; then
ARCH="$cpu"
fi
# OS specific # OS specific
if check_define __linux__ ; then if check_define __linux__ ; then
@ -1080,6 +1080,18 @@ echo "NOTE: The object files are built at the place where configure is launched"
exit 1 exit 1
fi fi
# Now we have handled --enable-tcg-interpreter and know we're not just
# printing the help message, bail out if the host CPU isn't supported.
if test "$ARCH" = "unknown"; then
if test "$tcg_interpreter" = "yes" ; then
echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
ARCH=tci
else
echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter"
exit 1
fi
fi
# check that the C compiler works. # check that the C compiler works.
cat > $TMPC <<EOF cat > $TMPC <<EOF
int main(void) { return 0; } int main(void) { return 0; }
@ -1185,13 +1197,9 @@ if test "$solaris" = "yes" ; then
fi fi
fi fi
if test "$guest_agent" != "no" ; then if ! has $python; then
if has $python; then echo "Python not found. Use --python=/path/to/python"
: exit 1
else
echo "Python not found. Use --python=/path/to/python"
exit 1
fi
fi fi
if test -z "$target_list" ; then if test -z "$target_list" ; then
@ -2922,20 +2930,6 @@ echo "sysconfdir=$sysconfdir" >> $config_host_mak
echo "docdir=$docdir" >> $config_host_mak echo "docdir=$docdir" >> $config_host_mak
echo "confdir=$confdir" >> $config_host_mak echo "confdir=$confdir" >> $config_host_mak
case "$cpu" in
i386|x86_64|alpha|arm|cris|hppa|ia64|lm32|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64|unicore32)
ARCH=$cpu
;;
*)
if test "$tcg_interpreter" = "yes" ; then
echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
ARCH=tci
else
echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter"
exit 1
fi
;;
esac
echo "ARCH=$ARCH" >> $config_host_mak echo "ARCH=$ARCH" >> $config_host_mak
if test "$debug_tcg" = "yes" ; then if test "$debug_tcg" = "yes" ; then
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
@ -3414,7 +3408,6 @@ echo "# Automatically generated by configure - do not modify" > $config_target_m
bflt="no" bflt="no"
target_nptl="no" target_nptl="no"
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"` interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
gdb_xml_files="" gdb_xml_files=""
target_short_alignment=2 target_short_alignment=2
target_int_alignment=4 target_int_alignment=4
@ -3620,6 +3613,7 @@ if test "$target_softmmu" = "yes" ; then
fi fi
if test "$target_user_only" = "yes" ; then if test "$target_user_only" = "yes" ; then
echo "CONFIG_USER_ONLY=y" >> $config_target_mak echo "CONFIG_USER_ONLY=y" >> $config_target_mak
echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
fi fi
if test "$target_linux_user" = "yes" ; then if test "$target_linux_user" = "yes" ; then
echo "CONFIG_LINUX_USER=y" >> $config_target_mak echo "CONFIG_LINUX_USER=y" >> $config_target_mak

View File

@ -2762,11 +2762,13 @@ static int gdbserver_open(int port)
ret = bind(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)); ret = bind(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr));
if (ret < 0) { if (ret < 0) {
perror("bind"); perror("bind");
close(fd);
return -1; return -1;
} }
ret = listen(fd, 0); ret = listen(fd, 0);
if (ret < 0) { if (ret < 0) {
perror("listen"); perror("listen");
close(fd);
return -1; return -1;
} }
return fd; return fd;

View File

@ -1515,7 +1515,7 @@ static int scsi_initfn(SCSIDevice *dev)
DriveInfo *dinfo; DriveInfo *dinfo;
if (!s->qdev.conf.bs) { if (!s->qdev.conf.bs) {
error_report("scsi-disk: drive property not set"); error_report("drive property not set");
return -1; return -1;
} }
@ -1537,7 +1537,7 @@ static int scsi_initfn(SCSIDevice *dev)
} }
if (bdrv_is_sg(s->qdev.conf.bs)) { if (bdrv_is_sg(s->qdev.conf.bs)) {
error_report("scsi-disk: unwanted /dev/sg*"); error_report("unwanted /dev/sg*");
return -1; return -1;
} }

View File

@ -374,13 +374,13 @@ static int scsi_generic_initfn(SCSIDevice *s)
struct sg_scsi_id scsiid; struct sg_scsi_id scsiid;
if (!s->conf.bs) { if (!s->conf.bs) {
error_report("scsi-generic: drive property not set"); error_report("drive property not set");
return -1; return -1;
} }
/* check we are really using a /dev/sg* file */ /* check we are really using a /dev/sg* file */
if (!bdrv_is_sg(s->conf.bs)) { if (!bdrv_is_sg(s->conf.bs)) {
error_report("scsi-generic: not /dev/sg*"); error_report("not /dev/sg*");
return -1; return -1;
} }
@ -396,13 +396,13 @@ static int scsi_generic_initfn(SCSIDevice *s)
/* check we are using a driver managing SG_IO (version 3 and after */ /* check we are using a driver managing SG_IO (version 3 and after */
if (bdrv_ioctl(s->conf.bs, SG_GET_VERSION_NUM, &sg_version) < 0 || if (bdrv_ioctl(s->conf.bs, SG_GET_VERSION_NUM, &sg_version) < 0 ||
sg_version < 30000) { sg_version < 30000) {
error_report("scsi-generic: scsi generic interface too old"); error_report("scsi generic interface too old");
return -1; return -1;
} }
/* get LUN of the /dev/sg? */ /* get LUN of the /dev/sg? */
if (bdrv_ioctl(s->conf.bs, SG_GET_SCSI_ID, &scsiid)) { if (bdrv_ioctl(s->conf.bs, SG_GET_SCSI_ID, &scsiid)) {
error_report("scsi-generic: SG_GET_SCSI_ID ioctl failed"); error_report("SG_GET_SCSI_ID ioctl failed");
return -1; return -1;
} }

View File

@ -137,7 +137,7 @@ USBDevice *usb_create(USBBus *bus, const char *name)
bus = usb_bus_find(-1); bus = usb_bus_find(-1);
if (!bus) if (!bus)
return NULL; return NULL;
error_report("%s: no bus specified, using \"%s\" for \"%s\"\n", error_report("%s: no bus specified, using \"%s\" for \"%s\"",
__FUNCTION__, bus->qbus.name, name); __FUNCTION__, bus->qbus.name, name);
} }
#endif #endif
@ -152,12 +152,12 @@ USBDevice *usb_create_simple(USBBus *bus, const char *name)
int rc; int rc;
if (!dev) { if (!dev) {
error_report("Failed to create USB device '%s'\n", name); error_report("Failed to create USB device '%s'", name);
return NULL; return NULL;
} }
rc = qdev_init(&dev->qdev); rc = qdev_init(&dev->qdev);
if (rc < 0) { if (rc < 0) {
error_report("Failed to initialize USB device '%s'\n", name); error_report("Failed to initialize USB device '%s'", name);
return NULL; return NULL;
} }
return dev; return dev;
@ -244,7 +244,7 @@ int usb_claim_port(USBDevice *dev)
} }
} }
if (port == NULL) { if (port == NULL) {
error_report("Error: usb port %s (bus %s) not found (in use?)\n", error_report("Error: usb port %s (bus %s) not found (in use?)",
dev->port_path, bus->qbus.name); dev->port_path, bus->qbus.name);
return -1; return -1;
} }
@ -255,7 +255,7 @@ int usb_claim_port(USBDevice *dev)
} }
if (bus->nfree == 0) { if (bus->nfree == 0) {
error_report("Error: tried to attach usb device %s to a bus " error_report("Error: tried to attach usb device %s to a bus "
"with no free ports\n", dev->product_desc); "with no free ports", dev->product_desc);
return -1; return -1;
} }
port = QTAILQ_FIRST(&bus->free); port = QTAILQ_FIRST(&bus->free);
@ -302,7 +302,7 @@ int usb_device_attach(USBDevice *dev)
if (!(port->speedmask & dev->speedmask)) { if (!(port->speedmask & dev->speedmask)) {
error_report("Warning: speed mismatch trying to attach " error_report("Warning: speed mismatch trying to attach "
"usb device %s to bus %s\n", "usb device %s to bus %s",
dev->product_desc, bus->qbus.name); dev->product_desc, bus->qbus.name);
return -1; return -1;
} }

View File

@ -529,7 +529,7 @@ static int usb_msd_initfn(USBDevice *dev)
DriveInfo *dinfo; DriveInfo *dinfo;
if (!bs) { if (!bs) {
error_report("usb-msd: drive property not set"); error_report("drive property not set");
return -1; return -1;
} }

View File

@ -569,7 +569,7 @@ VirtIODevice *virtio_blk_init(DeviceState *dev, BlockConf *conf,
DriveInfo *dinfo; DriveInfo *dinfo;
if (!conf->bs) { if (!conf->bs) {
error_report("virtio-blk-pci: drive property not set"); error_report("drive property not set");
return NULL; return NULL;
} }
if (!bdrv_is_inserted(conf->bs)) { if (!bdrv_is_inserted(conf->bs)) {

View File

@ -427,12 +427,14 @@ static int net_socket_listen_init(VLANState *vlan,
if (ret < 0) { if (ret < 0) {
perror("bind"); perror("bind");
g_free(s); g_free(s);
closesocket(fd);
return -1; return -1;
} }
ret = listen(fd, 0); ret = listen(fd, 0);
if (ret < 0) { if (ret < 0) {
perror("listen"); perror("listen");
g_free(s); g_free(s);
closesocket(fd);
return -1; return -1;
} }
s->vlan = vlan; s->vlan = vlan;

View File

@ -202,12 +202,10 @@ static void *nbd_client_thread(void *arg)
int ret; int ret;
pthread_t show_parts_thread; pthread_t show_parts_thread;
do { sock = unix_socket_outgoing(sockpath);
sock = unix_socket_outgoing(sockpath); if (sock == -1) {
if (sock == -1) { goto out;
goto out; }
}
} while (sock == -1);
ret = nbd_receive_negotiate(sock, NULL, &nbdflags, ret = nbd_receive_negotiate(sock, NULL, &nbdflags,
&size, &blocksize); &size, &blocksize);

View File

@ -871,8 +871,8 @@ The x509 file names can also be configured individually.
@item tls-ciphers=<list> @item tls-ciphers=<list>
Specify which ciphers to use. Specify which ciphers to use.
@item tls-channel=[main|display|inputs|record|playback|tunnel] @item tls-channel=[main|display|cursor|inputs|record|playback]
@item plaintext-channel=[main|display|inputs|record|playback|tunnel] @item plaintext-channel=[main|display|cursor|inputs|record|playback]
Force specific channel to be used with or without TLS encryption. The Force specific channel to be used with or without TLS encryption. The
options can be specified multiple times to configure multiple options can be specified multiple times to configure multiple
channels. The special name "default" can be used to set the default channels. The special name "default" can be used to set the default

View File

@ -174,7 +174,7 @@ static void usbredir_log(void *priv, int level, const char *msg)
return; return;
} }
error_report("%s\n", msg); error_report("%s", msg);
} }
static void usbredir_log_data(USBRedirDevice *dev, const char *desc, static void usbredir_log_data(USBRedirDevice *dev, const char *desc,
@ -193,7 +193,7 @@ static void usbredir_log_data(USBRedirDevice *dev, const char *desc,
for (j = 0; j < 8 && i + j < len; j++) { for (j = 0; j < 8 && i + j < len; j++) {
n += sprintf(buf + n, " %02X", data[i + j]); n += sprintf(buf + n, " %02X", data[i + j]);
} }
error_report("%s\n", buf); error_report("%s", buf);
} }
} }