From patchwork Tue Aug 11 15:52:02 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Helgaas X-Patchwork-Id: 6993101 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 0E7F59F344 for ; Tue, 11 Aug 2015 15:52:10 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3225B205F0 for ; Tue, 11 Aug 2015 15:52:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 50033205B6 for ; Tue, 11 Aug 2015 15:52:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965260AbbHKPwH (ORCPT ); Tue, 11 Aug 2015 11:52:07 -0400 Received: from mail-ig0-f182.google.com ([209.85.213.182]:38084 "EHLO mail-ig0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965225AbbHKPwG (ORCPT ); Tue, 11 Aug 2015 11:52:06 -0400 Received: by igfj19 with SMTP id j19so74959804igf.1 for ; Tue, 11 Aug 2015 08:52:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=subject:to:from:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=RsZVNJXYY08BUFMxvKHTWHLJbo6gRZWEdd+NK7wViuU=; b=ZhJqMG5ezG4Qal0LRl6TQE87weialMr0jsD2GcYySBZGjTB4imB22J/jsKEGTBRJWg z08Zf+Em2zG5Di02LqdP0jXkJSribPJbD0ADk96cmm04qmnFAA0VkRER8O3DALbjx4VG upRFJRS++jqSAwWSKugfL62Y+thsE+ZL7XAwPikYCTeUvC5dIx1BbloGQav2ByTh5GWt A2iC3KmLPw0d74e9o2PBFuljbW+TDezNvSLAX/4mH68LVvoAX/3AyH+1mUCWcCEdAkQl hueImRrD0eR5VyoeQrSZa4SokL0swU4gLAiLV1xDBABRq/AzM2vvGi3Ly6Bzr7udpevE AAyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:from:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-type :content-transfer-encoding; bh=RsZVNJXYY08BUFMxvKHTWHLJbo6gRZWEdd+NK7wViuU=; b=UPWbK4E1oHm14WVo2Zi6QHXXe6RX29DYlLxRzW9VePUbhH51yY4xlx3q7XAz7Ga2Ua tqmy/yfNzEa4yGD6F8PAmZ73G2BJDAUuV27eEQwhR8FO7qss8iucfGANvMDj/VRjD5Uy F0k9YMxd74Xxq7UPOgqp7XKXE16B7Tryosybmi+enXg3D8GSefQeQ+fSWfwux9Dd/HOn nASeECBaakuKVXzsDBRzZZ3eOi0Pg+Ilx4yKkDguA620VhpIbFqrsMMEpcT3SGRSamQ2 KBomoxW/1L46EcBK3PJSMjIG1oVDbrBYDhmzhzGn7fNVomaw+2UQuuX73mFcqBNziny/ QUig== X-Gm-Message-State: ALoCoQm+WbQGwpNJJGTzSAarrd6Xnd3Cod/Ys73jYGgjjJ9wWrqXRyMoFxug2rWvNoDDyYZlSk+E X-Received: by 10.50.117.34 with SMTP id kb2mr19290510igb.78.1439308325227; Tue, 11 Aug 2015 08:52:05 -0700 (PDT) Received: from localhost ([2620:0:1007:b:254d:7b22:9adf:e278]) by smtp.gmail.com with ESMTPSA id qf2sm1753580igb.20.2015.08.11.08.52.03 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 11 Aug 2015 08:52:03 -0700 (PDT) Subject: [PATCH v3 08/11] PCI: Clean up ATS error handling To: linux-pci@vger.kernel.org, Joerg Roedel , David Woodhouse From: Bjorn Helgaas Cc: Gregor Dick , iommu@lists.linux-foundation.org, Yinghai Lu Date: Tue, 11 Aug 2015 10:52:02 -0500 Message-ID: <20150811155202.21078.33427.stgit@bhelgaas-glaptop2.roam.corp.google.com> In-Reply-To: <20150811154525.21078.85310.stgit@bhelgaas-glaptop2.roam.corp.google.com> References: <20150811154525.21078.85310.stgit@bhelgaas-glaptop2.roam.corp.google.com> User-Agent: StGit/0.16 MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There's no need to BUG() if we enable ATS when it's already enabled. We don't need to BUG() when disabling ATS on a device that doesn't support ATS or if it's already disabled. If ATS is enabled, certainly we found an ATS capability in the past, so it should still be there now. Clean up these error paths. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel --- drivers/pci/ats.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c index 0b5b0ed..0f05274 100644 --- a/drivers/pci/ats.c +++ b/drivers/pci/ats.c @@ -44,11 +44,13 @@ int pci_enable_ats(struct pci_dev *dev, int ps) u16 ctrl; struct pci_dev *pdev; - BUG_ON(dev->ats_cap && dev->ats_enabled); - if (!dev->ats_cap) return -EINVAL; + WARN_ON(pci_ats_enabled(dev)); + if (pci_ats_enabled(dev)) + return -EBUSY; + if (ps < PCI_ATS_MIN_STU) return -EINVAL; @@ -83,7 +85,8 @@ void pci_disable_ats(struct pci_dev *dev) struct pci_dev *pdev; u16 ctrl; - BUG_ON(!dev->ats_cap || !dev->ats_enabled); + if (!pci_ats_enabled(dev)) + return; if (atomic_read(&dev->ats_ref_cnt)) return; /* VFs still enabled */ @@ -107,8 +110,6 @@ void pci_restore_ats_state(struct pci_dev *dev) if (!pci_ats_enabled(dev)) return; - if (!pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ATS)) - BUG(); ctrl = PCI_ATS_CTRL_ENABLE; if (!dev->is_virtfn)