From patchwork Tue Jan 3 11:56:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arvind Yadav X-Patchwork-Id: 9494797 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CF34A606A7 for ; Tue, 3 Jan 2017 11:57:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BA83426BE9 for ; Tue, 3 Jan 2017 11:57:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AEFF726CF9; Tue, 3 Jan 2017 11:57:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 558C526BE9 for ; Tue, 3 Jan 2017 11:57:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756348AbdACL5B (ORCPT ); Tue, 3 Jan 2017 06:57:01 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:34597 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752568AbdACL47 (ORCPT ); Tue, 3 Jan 2017 06:56:59 -0500 Received: by mail-pf0-f195.google.com with SMTP id y68so25642627pfb.1; Tue, 03 Jan 2017 03:56:59 -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; bh=Vj+K6uTWxZkt6IVUETY8+mjwoHsygPrGShlGf+fpYRY=; b=fyGPvNhzw9X2pF0oAJO786q7smS94p3SsWuidZUSMqUh7XBPP/XHbc6W+B0+Kyqw7o hHudYkpz8P10KGBxCKPzcM/i5FiyjsLvHXPWJCegnaNhOtHLD0BCeR8P2vgx65M4SIwg OZbOTUFyR8NoZHhgXYIX2PxwH1+IYOEaUfZXtxRTX/OiUz9mvcrnntlTzgnU+l1Z/se9 VhourMIkbqQW0uH8nPRdoA4lD4fnQpWYpvHvqsrgWvWa8b2kTETnl4PunVc1LduWXCgr RZeStWeBGay9ahetW9CJyDTkROKQebVBIxQQRvLs9oCdoEuupaO+CycO4XgzuhAfevpN sI+g== 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; bh=Vj+K6uTWxZkt6IVUETY8+mjwoHsygPrGShlGf+fpYRY=; b=mAYiib324dLMd3usmT1FQpVddjCEj0kTDzK3S1ZKW947wblhOVYi0JnHitQYM0frrG afEESWj1QcDhmDZqRmUIZbGxOzucqxMck71CAyjHFB57EAXQFnko1nDZmPg2gs8n9UYd grig6VzeJpHOPymtTIHfwHBiB+EwNjmVKTAefh13DvOFN5VgZnQEhFvkPQVPiUw8O//0 fSrvxXC0X47XSZoLdqJ4uuD22xbLflhVLbfNOP05tnLvw+53knxYuZqaoDm0bKG6ZPg4 8t88UAxUx7LgEWz6PHLkZUZPZq0haKpLo82FQxwOAgxlWCYyXibG4Wz1nOScSfDfUF2p bc9w== X-Gm-Message-State: AIkVDXK78Gm+zhNKJuzDH7lw46pCQgYTHTfYyWSYMBKdyWZLynmENHv0sNJ6Fmb3bDrdOg== X-Received: by 10.98.33.133 with SMTP id o5mr56783763pfj.32.1483444618754; Tue, 03 Jan 2017 03:56:58 -0800 (PST) Received: from symbol-HP-Z420-Workstation.zebra.lan ([223.31.70.102]) by smtp.googlemail.com with ESMTPSA id x90sm139398557pfk.73.2017.01.03.03.56.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 03 Jan 2017 03:56:58 -0800 (PST) From: Arvind Yadav To: alex.williamson@redhat.com Cc: cjia@nvidia.com, kwankhede@nvidia.com, xyjxie@linux.vnet.ibm.com, mst@redhat.com, vlad@tsyrklevich.net, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [v1] vfio: pci: vfio_pci:- Handle error from pci_iomap Date: Tue, 3 Jan 2017 17:26:46 +0530 Message-Id: <1483444606-16463-1-git-send-email-arvind.yadav.cs@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Here, pci_iomap can fail, handle this case release selected pci regions and return -ENOMEM. Signed-off-by: Arvind Yadav --- drivers/vfio/pci/vfio_pci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c index dcd7c2a..324c52e 100644 --- a/drivers/vfio/pci/vfio_pci.c +++ b/drivers/vfio/pci/vfio_pci.c @@ -1142,6 +1142,10 @@ static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma) return ret; vdev->barmap[index] = pci_iomap(pdev, index, 0); + if (!vdev->barmap[index]) { + pci_release_selected_regions(pdev, 1 << index); + return -ENOMEM; + } } vma->vm_private_data = vdev;