From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757776AbcC2RmA (ORCPT ); Tue, 29 Mar 2016 13:42:00 -0400 Received: from mail.kernel.org ([198.145.29.136]:46200 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752711AbcC2Rl7 (ORCPT ); Tue, 29 Mar 2016 13:41:59 -0400 From: "Luis R. Rodriguez" To: joro@8bytes.org, oded.gabbay@amd.com, christian.koenig@amd.com Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, "Luis R. Rodriguez" Subject: [RFT v2] iommu/amd: use subsys_initcall() on amdv2 iommu Date: Tue, 29 Mar 2016 10:41:53 -0700 Message-Id: <1459273313-5139-1-git-send-email-mcgrof@kernel.org> X-Mailer: git-send-email 2.7.0 In-Reply-To: <20160316171719.GE2195@8bytes.org> References: <20160316171719.GE2195@8bytes.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We need to ensure amd iommu v2 initializes before driver uses such as drivers/gpu/drm/amd/amdkfd/kfd_module.c, to do this make its init routine a subsys_initcall() which ensures its load init is called first than modules when built-in. This reverts the old work around implemented through commit 1bacc894c227fad8a7 ("drivers: Move iommu/ before gpu/ in Makefile"), instead of making the dependency implicit by linker order this makes the ordering requirement explicit through proper kernel APIs. Cc: Oded Gabbay Cc: Christian König Signed-off-by: Luis R. Rodriguez --- This goes along with the revert included. Can someone please test? drivers/Makefile | 6 ++---- drivers/iommu/amd_iommu_v2.c | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/Makefile b/drivers/Makefile index 8f5d076baeb0..cc3cfbddc376 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -50,10 +50,7 @@ obj-$(CONFIG_RESET_CONTROLLER) += reset/ obj-y += tty/ obj-y += char/ -# iommu/ comes before gpu as gpu are using iommu controllers -obj-$(CONFIG_IOMMU_SUPPORT) += iommu/ - -# gpu/ comes after char for AGP vs DRM startup and after iommu +# gpu/ comes after char for AGP vs DRM startup obj-y += gpu/ obj-$(CONFIG_CONNECTOR) += connector/ @@ -146,6 +143,7 @@ obj-y += clk/ obj-$(CONFIG_MAILBOX) += mailbox/ obj-$(CONFIG_HWSPINLOCK) += hwspinlock/ +obj-$(CONFIG_IOMMU_SUPPORT) += iommu/ obj-$(CONFIG_REMOTEPROC) += remoteproc/ obj-$(CONFIG_RPMSG) += rpmsg/ diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c index 56999d2fac07..60df645b9927 100644 --- a/drivers/iommu/amd_iommu_v2.c +++ b/drivers/iommu/amd_iommu_v2.c @@ -1004,5 +1004,5 @@ static void __exit amd_iommu_v2_exit(void) destroy_workqueue(iommu_wq); } -module_init(amd_iommu_v2_init); +subsys_initcall(amd_iommu_v2_init); module_exit(amd_iommu_v2_exit); -- 2.7.2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Luis R. Rodriguez" Subject: [RFT v2] iommu/amd: use subsys_initcall() on amdv2 iommu Date: Tue, 29 Mar 2016 10:41:53 -0700 Message-ID: <1459273313-5139-1-git-send-email-mcgrof@kernel.org> References: <20160316171719.GE2195@8bytes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160316171719.GE2195-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org, oded.gabbay-5C7GfCeVMHo@public.gmane.org, christian.koenig-5C7GfCeVMHo@public.gmane.org Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, "Luis R. Rodriguez" List-Id: iommu@lists.linux-foundation.org V2UgbmVlZCB0byBlbnN1cmUgYW1kIGlvbW11IHYyIGluaXRpYWxpemVzIGJlZm9yZQpkcml2ZXIg dXNlcyBzdWNoIGFzIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tb2R1bGUuYywKdG8g ZG8gdGhpcyBtYWtlIGl0cyBpbml0IHJvdXRpbmUgYSBzdWJzeXNfaW5pdGNhbGwoKSB3aGljaApl bnN1cmVzIGl0cyBsb2FkIGluaXQgaXMgY2FsbGVkIGZpcnN0IHRoYW4gbW9kdWxlcyB3aGVuCmJ1 aWx0LWluLgoKVGhpcyByZXZlcnRzIHRoZSBvbGQgd29yayBhcm91bmQgaW1wbGVtZW50ZWQgdGhy b3VnaCBjb21taXQKMWJhY2M4OTRjMjI3ZmFkOGE3ICgiZHJpdmVyczogTW92ZSBpb21tdS8gYmVm b3JlIGdwdS8gaW4gTWFrZWZpbGUiKSwKaW5zdGVhZCBvZiBtYWtpbmcgdGhlIGRlcGVuZGVuY3kg aW1wbGljaXQgYnkgbGlua2VyIG9yZGVyIHRoaXMKbWFrZXMgdGhlIG9yZGVyaW5nIHJlcXVpcmVt ZW50IGV4cGxpY2l0IHRocm91Z2ggcHJvcGVyIGtlcm5lbApBUElzLgoKQ2M6IE9kZWQgR2FiYmF5 IDxvZGVkLmdhYmJheUBhbWQuY29tPgpDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtv ZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBMdWlzIFIuIFJvZHJpZ3VleiA8bWNncm9mQGtl cm5lbC5vcmc+Ci0tLQoKVGhpcyBnb2VzIGFsb25nIHdpdGggdGhlIHJldmVydCBpbmNsdWRlZC4g Q2FuIHNvbWVvbmUgcGxlYXNlIHRlc3Q/CgogZHJpdmVycy9NYWtlZmlsZSAgICAgICAgICAgICB8 IDYgKystLS0tCiBkcml2ZXJzL2lvbW11L2FtZF9pb21tdV92Mi5jIHwgMiArLQogMiBmaWxlcyBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9NYWtlZmlsZSBiL2RyaXZlcnMvTWFrZWZpbGUKaW5kZXggOGY1ZDA3NmJhZWIwLi5jYzNj ZmJkZGMzNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9NYWtl ZmlsZQpAQCAtNTAsMTAgKzUwLDcgQEAgb2JqLSQoQ09ORklHX1JFU0VUX0NPTlRST0xMRVIpCSs9 IHJlc2V0Lwogb2JqLXkJCQkJKz0gdHR5Lwogb2JqLXkJCQkJKz0gY2hhci8KIAotIyBpb21tdS8g Y29tZXMgYmVmb3JlIGdwdSBhcyBncHUgYXJlIHVzaW5nIGlvbW11IGNvbnRyb2xsZXJzCi1vYmot JChDT05GSUdfSU9NTVVfU1VQUE9SVCkJKz0gaW9tbXUvCi0KLSMgZ3B1LyBjb21lcyBhZnRlciBj aGFyIGZvciBBR1AgdnMgRFJNIHN0YXJ0dXAgYW5kIGFmdGVyIGlvbW11CisjIGdwdS8gY29tZXMg YWZ0ZXIgY2hhciBmb3IgQUdQIHZzIERSTSBzdGFydHVwCiBvYmoteQkJCQkrPSBncHUvCiAKIG9i ai0kKENPTkZJR19DT05ORUNUT1IpCQkrPSBjb25uZWN0b3IvCkBAIC0xNDYsNiArMTQzLDcgQEAg b2JqLXkJCQkJKz0gY2xrLwogCiBvYmotJChDT05GSUdfTUFJTEJPWCkJCSs9IG1haWxib3gvCiBv YmotJChDT05GSUdfSFdTUElOTE9DSykJKz0gaHdzcGlubG9jay8KK29iai0kKENPTkZJR19JT01N VV9TVVBQT1JUKQkrPSBpb21tdS8KIG9iai0kKENPTkZJR19SRU1PVEVQUk9DKQkrPSByZW1vdGVw cm9jLwogb2JqLSQoQ09ORklHX1JQTVNHKQkJKz0gcnBtc2cvCiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvaW9tbXUvYW1kX2lvbW11X3YyLmMgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21tdV92Mi5jCmlu ZGV4IDU2OTk5ZDJmYWMwNy4uNjBkZjY0NWI5OTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11 L2FtZF9pb21tdV92Mi5jCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X3YyLmMKQEAgLTEw MDQsNSArMTAwNCw1IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBhbWRfaW9tbXVfdjJfZXhpdCh2b2lk KQogCWRlc3Ryb3lfd29ya3F1ZXVlKGlvbW11X3dxKTsKIH0KIAotbW9kdWxlX2luaXQoYW1kX2lv bW11X3YyX2luaXQpOworc3Vic3lzX2luaXRjYWxsKGFtZF9pb21tdV92Ml9pbml0KTsKIG1vZHVs ZV9leGl0KGFtZF9pb21tdV92Ml9leGl0KTsKLS0gCjIuNy4yCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwppb21tdSBtYWlsaW5nIGxpc3QKaW9tbXVAbGlz dHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3Jn L21haWxtYW4vbGlzdGluZm8vaW9tbXU=