From: Kevin O'Connor Date: Wed, 23 Dec 2015 20:37:51 +0000 (-0500) Subject: scsi: Do not call printf() from scsi_is_ready() X-Git-Tag: rel-1.10.0~131 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=82f327976865ba151153a04b584fc5d0a1fc5d9b;p=people%2Fandrewcoop%2Fseabios.git scsi: Do not call printf() from scsi_is_ready() The scsi_is_ready() function may be called from a thread, and it is not valid to call printf() from a thread. Convert printf() to dprintf() to avoid this possibility. This does mean that cdrom detection (from cdrom_boot() ) may not give notification of slow cdrom drives to a user. However, the extra medium detection time is unlikely to be large anyway. Reported-by: Tobias Diedrich Signed-off-by: Kevin O'Connor --- diff --git a/src/hw/blockcmd.c b/src/hw/blockcmd.c index e20e3fc..0725b46 100644 --- a/src/hw/blockcmd.c +++ b/src/hw/blockcmd.c @@ -168,7 +168,7 @@ scsi_is_ready(struct disk_op_s *op) if (sense.asc == 0x04 && sense.ascq == 0x01 && !in_progress) { /* IN PROGRESS OF BECOMING READY */ - printf("Waiting for device to detect medium... "); + dprintf(1, "Waiting for device to detect medium... "); /* Allow 30 seconds more */ end = timer_calc(30000); in_progress = 1;