From patchwork Fri Jan 11 02:08:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Li Qiang X-Patchwork-Id: 1023338 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="kbjJTvUJ"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43bRFm24rPz9s7h for ; Fri, 11 Jan 2019 13:12:12 +1100 (AEDT) Received: from localhost ([127.0.0.1]:34616 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ghmIs-0002O2-7s for incoming@patchwork.ozlabs.org; Thu, 10 Jan 2019 21:12:10 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44209) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ghmFw-0008Ns-MU for qemu-devel@nongnu.org; Thu, 10 Jan 2019 21:09:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ghmFv-0004f9-Od for qemu-devel@nongnu.org; Thu, 10 Jan 2019 21:09:08 -0500 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:44973) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ghmFt-0004dl-LV; Thu, 10 Jan 2019 21:09:05 -0500 Received: by mail-oi1-x244.google.com with SMTP id m6so10996668oig.11; Thu, 10 Jan 2019 18:09:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=AOTdhN8lUFUzc0nRlUkTGqJX9B9zTvuQbAktT0c3xkk=; b=kbjJTvUJ0hJu2kydwQo6VyFDkHLwTGEz1Pb9Ufin0jpB0OX/fRXKYfyExx3sE8VFAH hRSLOtcPnM6TbZHXNSQirmqgQfZJg5sif2p14KUDr3FwjOlyyy1eZMFqWjkfwi+pmxbV IfSpnviGKYBKlmlq1FWgcdUcIMn4VK85t9T+st+jdM+Vs4+CiB5f3PJKNqRO79U2OnCG cIIe+WnegLHZRZvLceF+qJh8fCvl0azd8wQTlOaQhdXNk9ZibVAVPkyDRU2jDiBTOzA1 Bc36hTkh+z30QYf8Cehu1qALJ3JfECotUTBkpB2oNaLCnJk6kWomI1oltiU57CeBX0sy +Dsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=AOTdhN8lUFUzc0nRlUkTGqJX9B9zTvuQbAktT0c3xkk=; b=SVBc1Td4QN3uFZ1u5cRvGG+E4PKKQ7/FirXLOKQEhxnRcXvO1auW5xUmoOpwr5xQ/X T2hvIReTqacsLHDPDv7mXIypa1DLxqIkj8oMRa0OEZkMgeq1v8YiouxwAR/fYL7Vc/w0 JsOHqOUlLmlkLYkZhk35PPPv5SHCodXh7pQ4x5Yb7qd+ZHDimBZYhEIpdP9I7EMgmrYq q/gdUJoUsjsOswq6dnqxi8hT4KTAYaXZSsil11naolqG89Y3VPGfekE+XP6XqjiKmd10 dR5bkfaOf/qKgLEE3B0SZ1ZxE12LgIVXzneLoyMpLHykPs4DPAjGczBgPsqeN/wwCcRd 5HeA== X-Gm-Message-State: AJcUukdR9QhjuUADg/y6qpsotmae0ptF/a4+72fxNIOZpsWTagIpp3Rz e/OP4drkgdg1ZoyDc3hVdOQ= X-Google-Smtp-Source: ALg8bN5lZuMRMEPsjoH9jbh/Df9MgtP2qftH4KKX+mlqtEsBMKj1ohFloPcZ+y9ixUAUTt32BDvhKA== X-Received: by 2002:aca:b804:: with SMTP id i4mr7757180oif.280.1547172544929; Thu, 10 Jan 2019 18:09:04 -0800 (PST) Received: from dockertest-VirtualBox.hz.ali.com ([205.204.117.36]) by smtp.gmail.com with ESMTPSA id u19sm37177122oia.31.2019.01.10.18.09.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 Jan 2019 18:09:04 -0800 (PST) From: Li Qiang To: keith.busch@intel.com, kwolf@redhat.com, mreitz@redhat.com Date: Fri, 11 Jan 2019 10:08:48 +0800 Message-Id: <20190111020849.22674-3-liq3ea@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190111020849.22674-1-liq3ea@gmail.com> References: <20190111020849.22674-1-liq3ea@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::244 Subject: [Qemu-devel] [PATCH v2 2/3] nvme: ensure the num_queues is not zero X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Qiang , qemu-devel@nongnu.org, qemu-block@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" When it is zero, it causes segv. Backtrack: Thread 5 "qemu-system-x86" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffc6c17700 (LWP 51808)] 0x0000555555acbd90 in nvme_start_ctrl (n=0x6240000c8100) at hw/block/nvme.c:820 warning: Source file is more recent than executable. 820 if (unlikely(n->cq[0])) { (gdb) bt 0 0x0000555555acbd90 in nvme_start_ctrl (n=0x6240000c8100) at hw/block/nvme.c:820 1 0x0000555555accdbc in nvme_write_bar (n=0x6240000c8100, offset=20, data=4587521, size=4) at hw/block/nvme.c:964 2 0x0000555555acdd2b in nvme_mmio_write (opaque=0x6240000c8100, addr=20, data=4587521, size=4) at hw/block/nvme.c:1158 3 0x00005555558973ed in memory_region_write_accessor (mr=0x6240000c89e0, addr=20, value=0x7fffc6c14428, size=4, shift=0, mask=4294967295, attrs=...) at /home/liqiang02/qemu-upstream/qemu/memory.c:500 4 0x0000555555897600 in access_with_adjusted_size (addr=20, value=0x7fffc6c14428, size=4, access_size_min=2, access_size_max=8, access_fn=0x555555897304 , mr=0x6240000c89e0, attrs=...) at /home/liqiang02/qemu-upstream/qemu/memory.c:566 5 0x000055555589a200 in memory_region_dispatch_write (mr=0x6240000c89e0, addr=20, data=4587521, size=4, attrs=...) at /home/liqiang02/qemu-upstream/qemu/memory.c:1442 6 0x0000555555835151 in flatview_write_continue (fv=0x6060000e6fc0, addr=4273930260, attrs=..., buf=0x7fffc8a18028 "\001", len=4, addr1=20, l=4, mr=0x6240000c89e0) at /home/liqiang02/qemu-upstream/qemu/exec.c:3233 7 0x000055555583529b in flatview_write (fv=0x6060000e6fc0, addr=4273930260, attrs=..., buf=0x7fffc8a18028 "\001", len=4) at /home/liqiang02/qemu-upstream/qemu/exec.c:3272 8 0x00005555558355a1 in address_space_write (as=0x55555683ade0 , addr=4273930260, attrs=..., buf=0x7fffc8a18028 "\001", len=4) at /home/liqiang02/qemu-upstream/qemu/exec.c:3362 9 0x00005555558355f2 in address_space_rw (as=0x55555683ade0 , addr=4273930260, attrs=..., buf=0x7fffc8a18028 "\001", len=4, is_write=true) at /home/liqiang02/qemu-upstream/qemu/exec.c:3373 10 0x00005555558b66ac in kvm_cpu_exec (cpu=0x631000014800) at /home/liqiang02/qemu-upstream/qemu/accel/kvm/kvm-all.c:2031 11 0x000055555587c3ac in qemu_kvm_cpu_thread_fn (arg=0x631000014800) at /home/liqiang02/qemu-upstream/qemu/cpus.c:1277 12 0x0000555555e54ae6 in qemu_thread_start (args=0x60300002c170) at util/qemu-thread-posix.c:504 13 0x00007fffdadbd494 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 14 0x00007fffdaaffacf in clone () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) q Signed-off-by: Li Qiang Reviewed-by: Philippe Mathieu-Daudé --- hw/block/nvme.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/block/nvme.c b/hw/block/nvme.c index f206391e8e..0ded74fa9a 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -1223,6 +1223,11 @@ static void nvme_realize(PCIDevice *pci_dev, Error **errp) error_setg(errp, "serial property not set"); return; } + + if (!n->num_queues) { + error_setg(errp, "num_queues can't be zero"); + return; + } blkconf_blocksizes(&n->conf); if (!blkconf_apply_backend_options(&n->conf, blk_is_read_only(n->conf.blk), false, errp)) {