From patchwork Mon Oct 6 03:04:45 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen Gang X-Patchwork-Id: 396721 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3298C1400D6 for ; Mon, 6 Oct 2014 13:59:24 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752080AbaJFC67 (ORCPT ); Sun, 5 Oct 2014 22:58:59 -0400 Received: from mail-pa0-f54.google.com ([209.85.220.54]:41902 "EHLO mail-pa0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752027AbaJFC66 (ORCPT ); Sun, 5 Oct 2014 22:58:58 -0400 Received: by mail-pa0-f54.google.com with SMTP id ey11so4471022pad.41 for ; Sun, 05 Oct 2014 19:58:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :content-type:content-transfer-encoding; bh=pCAj9N69XxfNLjn5E8UH9jc4tykLkIY8dLompXhyo5s=; b=kGbgOWABU2VVj/GWg2PcEH0dbtuMZAti+AKROiY+YDBEBDh6RjxzwXWOuvIcsURnbJ 0p8R90mMnRJWRSoE5hueSJoqKj92AXbbPhNceZ527plugtKjDcPbylIZ8RWIQ/FP9irZ YCTRCoVkLB37TiafHymeqfHDAongH/AsVbV+9FCL3wyQxSPUCYfJKmWHeluFwNJqdNbx qE0JYv/rdmDUHG96UcPFNg7l4zP/Z3ywIqRA8oIV4CFSjcnb6ysy3Z5eGKPXSR2oPRq2 vVyuPZm9oWsjvqBXkX6k9UDyaE0z9ODvrr8zX9Hx7RmuPIK3KnEdIl8qxR49YBUgZk1g fUUg== X-Received: by 10.70.124.133 with SMTP id mi5mr6137264pdb.118.1412564337855; Sun, 05 Oct 2014 19:58:57 -0700 (PDT) Received: from ShengShiZhuChengdeMacBook-Pro.local ([223.72.65.65]) by mx.google.com with ESMTPSA id ps1sm12063158pac.41.2014.10.05.19.58.53 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 05 Oct 2014 19:58:56 -0700 (PDT) Message-ID: <543206CD.1040505@gmail.com> Date: Mon, 06 Oct 2014 11:04:45 +0800 From: Chen Gang User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.1.2 MIME-Version: 1.0 To: konrad.wilk@oracle.com, boris.ostrovsky@oracle.com, david.vrabel@citrix.com, bhelgaas@google.com CC: xen-devel@lists.xenproject.org, linux-pci@vger.kernel.org, "linux-kernel@vger.kernel.org" Subject: [PATCH next] xen: pcifront: Process failure for pcifront_(re)scan_root() Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org When pcifront_rescan_root() or pcifront_scan_root() fails, need return error code, neither set XenbusStateConnected state, just like the other areas have done. For pcifront_rescan_root(), it will return error code ("num_roots = 0;", skip xenbus_switch_state return value). For pcifront_scan_root(), it will return 0 ("num_roots = 0;", set 0 by the return value of xenbus_switch_state, which always return 0, at present). Signed-off-by: Chen Gang --- drivers/pci/xen-pcifront.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c index 53df39a..d78d884 100644 --- a/drivers/pci/xen-pcifront.c +++ b/drivers/pci/xen-pcifront.c @@ -866,6 +866,11 @@ static int pcifront_try_connect(struct pcifront_device *pdev) xenbus_dev_error(pdev->xdev, err, "No PCI Roots found, trying 0000:00"); err = pcifront_scan_root(pdev, 0, 0); + if (err) { + xenbus_dev_fatal(pdev->xdev, err, + "Error scanning PCI root 0000:00"); + goto out; + } num_roots = 0; } else if (err != 1) { if (err == 0) @@ -947,6 +952,11 @@ static int pcifront_attach_devices(struct pcifront_device *pdev) xenbus_dev_error(pdev->xdev, err, "No PCI Roots found, trying 0000:00"); err = pcifront_rescan_root(pdev, 0, 0); + if (err) { + xenbus_dev_fatal(pdev->xdev, err, + "Error scanning PCI root 0000:00"); + goto out; + } num_roots = 0; } else if (err != 1) { if (err == 0)