From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sinan Kaya Subject: [PATCH V3 12/29] iommu/amd: deprecate pci_get_bus_and_slot() Date: Mon, 27 Nov 2017 11:57:49 -0500 Message-ID: <1511801886-6753-13-git-send-email-okaya@codeaurora.org> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: linux-pci@vger.kernel.org, timur@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, intel-gfx@lists.freedesktop.org, open list , "open list:AMD IOMMU AMD-VI" , Joerg Roedel , linux-arm-kernel@lists.infradead.org List-Id: linux-arm-msm@vger.kernel.org cGNpX2dldF9idXNfYW5kX3Nsb3QoKSBpcyByZXN0cmljdGl2ZSBzdWNoIHRoYXQgaXQgYXNzdW1l cyBkb21haW49MCBhcwp3aGVyZSBhIFBDSSBkZXZpY2UgaXMgcHJlc2VudC4gVGhpcyByZXN0cmlj dHMgdGhlIGRldmljZSBkcml2ZXJzIHRvIGJlCnJldXNlZCBmb3Igb3RoZXIgZG9tYWluIG51bWJl cnMuCgpHZXR0aW5nIHJlYWR5IHRvIHJlbW92ZSBwY2lfZ2V0X2J1c19hbmRfc2xvdCgpIGZ1bmN0 aW9uIGluIGZhdm9yIG9mCnBjaV9nZXRfZG9tYWluX2J1c19hbmRfc2xvdCgpLgoKSGFyZC1jb2Rl IHRoZSBkb21haW4gbnVtYmVyIGFzIDAgZm9yIHRoZSBBTUQgSU9NTVUgZHJpdmVyLgoKU2lnbmVk LW9mZi1ieTogU2luYW4gS2F5YSA8b2theWFAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9p b21tdS9hbWRfaW9tbXUuYyAgICAgIHwgMyArKy0KIGRyaXZlcnMvaW9tbXUvYW1kX2lvbW11X2lu aXQuYyB8IDkgKysrKystLS0tCiBkcml2ZXJzL2lvbW11L2FtZF9pb21tdV92Mi5jICAgfCAzICsr LQogMyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hbWRfaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lv bW11LmMKaW5kZXggOGU4ODc0ZC4uMmMzNDUyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9h bWRfaW9tbXUuYworKysgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jCkBAIC01MjgsNyArNTI4 LDggQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X3JlcG9ydF9wYWdlX2ZhdWx0KHUxNiBkZXZpZCwg dTE2IGRvbWFpbl9pZCwKIAlzdHJ1Y3QgaW9tbXVfZGV2X2RhdGEgKmRldl9kYXRhID0gTlVMTDsK IAlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKIAotCXBkZXYgPSBwY2lfZ2V0X2J1c19hbmRfc2xvdChQ Q0lfQlVTX05VTShkZXZpZCksIGRldmlkICYgMHhmZik7CisJcGRldiA9IHBjaV9nZXRfZG9tYWlu X2J1c19hbmRfc2xvdCgwLCBQQ0lfQlVTX05VTShkZXZpZCksCisJCQkJCSAgIGRldmlkICYgMHhm Zik7CiAJaWYgKHBkZXYpCiAJCWRldl9kYXRhID0gZ2V0X2Rldl9kYXRhKCZwZGV2LT5kZXYpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV9pbml0LmMgYi9kcml2ZXJzL2lv bW11L2FtZF9pb21tdV9pbml0LmMKaW5kZXggNmZlMmQwMy4uNGU0YTYxNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9pb21tdS9hbWRfaW9tbXVfaW5pdC5jCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lv bW11X2luaXQuYwpAQCAtMTY5Nyw4ICsxNjk3LDggQEAgc3RhdGljIGludCBpb21tdV9pbml0X3Bj aShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKIAl1MzIgcmFuZ2UsIG1pc2MsIGxvdywgaGlnaDsK IAlpbnQgcmV0OwogCi0JaW9tbXUtPmRldiA9IHBjaV9nZXRfYnVzX2FuZF9zbG90KFBDSV9CVVNf TlVNKGlvbW11LT5kZXZpZCksCi0JCQkJCSAgaW9tbXUtPmRldmlkICYgMHhmZik7CisJaW9tbXUt PmRldiA9IHBjaV9nZXRfZG9tYWluX2J1c19hbmRfc2xvdCgwLCBQQ0lfQlVTX05VTShpb21tdS0+ ZGV2aWQpLAorCQkJCQkJIGlvbW11LT5kZXZpZCAmIDB4ZmYpOwogCWlmICghaW9tbXUtPmRldikK IAkJcmV0dXJuIC1FTk9ERVY7CiAKQEAgLTE3NjQsOCArMTc2NCw5IEBAIHN0YXRpYyBpbnQgaW9t bXVfaW5pdF9wY2koc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCiAJaWYgKGlzX3JkODkwX2lvbW11 KGlvbW11LT5kZXYpKSB7CiAJCWludCBpLCBqOwogCi0JCWlvbW11LT5yb290X3BkZXYgPSBwY2lf Z2V0X2J1c19hbmRfc2xvdChpb21tdS0+ZGV2LT5idXMtPm51bWJlciwKLQkJCQlQQ0lfREVWRk4o MCwgMCkpOworCQlpb21tdS0+cm9vdF9wZGV2ID0KKwkJCXBjaV9nZXRfZG9tYWluX2J1c19hbmRf c2xvdCgwLCBpb21tdS0+ZGV2LT5idXMtPm51bWJlciwKKwkJCQkJCSAgICBQQ0lfREVWRk4oMCwg MCkpOwogCiAJCS8qCiAJCSAqIFNvbWUgcmQ4OTAgc3lzdGVtcyBtYXkgbm90IGJlIGZ1bGx5IHJl Y29uZmlndXJlZCBieSB0aGUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X3Yy LmMgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV92Mi5jCmluZGV4IDdkOTRlMWQuLjg2OTYzODIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X3YyLmMKKysrIGIvZHJpdmVycy9p b21tdS9hbWRfaW9tbXVfdjIuYwpAQCAtNTY0LDcgKzU2NCw4IEBAIHN0YXRpYyBpbnQgcHByX25v dGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZSwgdm9pZCAq ZGF0YSkKIAlmaW5pc2ggICAgICA9IChpb21tdV9mYXVsdC0+dGFnID4+IDkpICYgMTsKIAogCWRl dmlkID0gaW9tbXVfZmF1bHQtPmRldmljZV9pZDsKLQlwZGV2ID0gcGNpX2dldF9idXNfYW5kX3Ns b3QoUENJX0JVU19OVU0oZGV2aWQpLCBkZXZpZCAmIDB4ZmYpOworCXBkZXYgPSBwY2lfZ2V0X2Rv bWFpbl9idXNfYW5kX3Nsb3QoMCwgUENJX0JVU19OVU0oZGV2aWQpLAorCQkJCQkgICBkZXZpZCAm IDB4ZmYpOwogCWlmICghcGRldikKIAkJcmV0dXJuIC1FTk9ERVY7CiAJZGV2X2RhdGEgPSBnZXRf ZGV2X2RhdGEoJnBkZXYtPmRldik7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753911AbdK0RGL (ORCPT ); Mon, 27 Nov 2017 12:06:11 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:56810 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932157AbdK0Q64 (ORCPT ); Mon, 27 Nov 2017 11:58:56 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org E8F576A5B8 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=okaya@codeaurora.org From: Sinan Kaya To: linux-pci@vger.kernel.org, timur@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, intel-gfx@lists.freedesktop.org, Sinan Kaya , Joerg Roedel , iommu@lists.linux-foundation.org (open list:AMD IOMMU (AMD-VI)), linux-kernel@vger.kernel.org (open list) Subject: [PATCH V3 12/29] iommu/amd: deprecate pci_get_bus_and_slot() Date: Mon, 27 Nov 2017 11:57:49 -0500 Message-Id: <1511801886-6753-13-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as where a PCI device is present. This restricts the device drivers to be reused for other domain numbers. Getting ready to remove pci_get_bus_and_slot() function in favor of pci_get_domain_bus_and_slot(). Hard-code the domain number as 0 for the AMD IOMMU driver. Signed-off-by: Sinan Kaya --- drivers/iommu/amd_iommu.c | 3 ++- drivers/iommu/amd_iommu_init.c | 9 +++++---- drivers/iommu/amd_iommu_v2.c | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 8e8874d..2c3452f 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -528,7 +528,8 @@ static void amd_iommu_report_page_fault(u16 devid, u16 domain_id, struct iommu_dev_data *dev_data = NULL; struct pci_dev *pdev; - pdev = pci_get_bus_and_slot(PCI_BUS_NUM(devid), devid & 0xff); + pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), + devid & 0xff); if (pdev) dev_data = get_dev_data(&pdev->dev); diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 6fe2d03..4e4a615 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1697,8 +1697,8 @@ static int iommu_init_pci(struct amd_iommu *iommu) u32 range, misc, low, high; int ret; - iommu->dev = pci_get_bus_and_slot(PCI_BUS_NUM(iommu->devid), - iommu->devid & 0xff); + iommu->dev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(iommu->devid), + iommu->devid & 0xff); if (!iommu->dev) return -ENODEV; @@ -1764,8 +1764,9 @@ static int iommu_init_pci(struct amd_iommu *iommu) if (is_rd890_iommu(iommu->dev)) { int i, j; - iommu->root_pdev = pci_get_bus_and_slot(iommu->dev->bus->number, - PCI_DEVFN(0, 0)); + iommu->root_pdev = + pci_get_domain_bus_and_slot(0, iommu->dev->bus->number, + PCI_DEVFN(0, 0)); /* * Some rd890 systems may not be fully reconfigured by the diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c index 7d94e1d..8696382 100644 --- a/drivers/iommu/amd_iommu_v2.c +++ b/drivers/iommu/amd_iommu_v2.c @@ -564,7 +564,8 @@ static int ppr_notifier(struct notifier_block *nb, unsigned long e, void *data) finish = (iommu_fault->tag >> 9) & 1; devid = iommu_fault->device_id; - pdev = pci_get_bus_and_slot(PCI_BUS_NUM(devid), devid & 0xff); + pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), + devid & 0xff); if (!pdev) return -ENODEV; dev_data = get_dev_data(&pdev->dev); -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: okaya@codeaurora.org (Sinan Kaya) Date: Mon, 27 Nov 2017 11:57:49 -0500 Subject: [PATCH V3 12/29] iommu/amd: deprecate pci_get_bus_and_slot() In-Reply-To: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> References: <1511801886-6753-1-git-send-email-okaya@codeaurora.org> Message-ID: <1511801886-6753-13-git-send-email-okaya@codeaurora.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as where a PCI device is present. This restricts the device drivers to be reused for other domain numbers. Getting ready to remove pci_get_bus_and_slot() function in favor of pci_get_domain_bus_and_slot(). Hard-code the domain number as 0 for the AMD IOMMU driver. Signed-off-by: Sinan Kaya --- drivers/iommu/amd_iommu.c | 3 ++- drivers/iommu/amd_iommu_init.c | 9 +++++---- drivers/iommu/amd_iommu_v2.c | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 8e8874d..2c3452f 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -528,7 +528,8 @@ static void amd_iommu_report_page_fault(u16 devid, u16 domain_id, struct iommu_dev_data *dev_data = NULL; struct pci_dev *pdev; - pdev = pci_get_bus_and_slot(PCI_BUS_NUM(devid), devid & 0xff); + pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), + devid & 0xff); if (pdev) dev_data = get_dev_data(&pdev->dev); diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 6fe2d03..4e4a615 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1697,8 +1697,8 @@ static int iommu_init_pci(struct amd_iommu *iommu) u32 range, misc, low, high; int ret; - iommu->dev = pci_get_bus_and_slot(PCI_BUS_NUM(iommu->devid), - iommu->devid & 0xff); + iommu->dev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(iommu->devid), + iommu->devid & 0xff); if (!iommu->dev) return -ENODEV; @@ -1764,8 +1764,9 @@ static int iommu_init_pci(struct amd_iommu *iommu) if (is_rd890_iommu(iommu->dev)) { int i, j; - iommu->root_pdev = pci_get_bus_and_slot(iommu->dev->bus->number, - PCI_DEVFN(0, 0)); + iommu->root_pdev = + pci_get_domain_bus_and_slot(0, iommu->dev->bus->number, + PCI_DEVFN(0, 0)); /* * Some rd890 systems may not be fully reconfigured by the diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c index 7d94e1d..8696382 100644 --- a/drivers/iommu/amd_iommu_v2.c +++ b/drivers/iommu/amd_iommu_v2.c @@ -564,7 +564,8 @@ static int ppr_notifier(struct notifier_block *nb, unsigned long e, void *data) finish = (iommu_fault->tag >> 9) & 1; devid = iommu_fault->device_id; - pdev = pci_get_bus_and_slot(PCI_BUS_NUM(devid), devid & 0xff); + pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), + devid & 0xff); if (!pdev) return -ENODEV; dev_data = get_dev_data(&pdev->dev); -- 1.9.1