From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 1/3] amdkfd: Don't clear *kfd2kgd on kfd_module_init Date: Sun, 21 Dec 2014 12:27:41 +0100 Message-ID: <5496AEAD.3090003@vodafone.de> References: <1419108374-7020-1-git-send-email-oded.gabbay@amd.com> <1419108374-7020-2-git-send-email-oded.gabbay@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 6249D6E25D for ; Sun, 21 Dec 2014 03:28:18 -0800 (PST) In-Reply-To: <1419108374-7020-2-git-send-email-oded.gabbay@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Oded Gabbay , dri-devel@lists.freedesktop.org Cc: Alexander.Deucher@amd.com, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org QW0gMjAuMTIuMjAxNCB1bSAyMTo0NiBzY2hyaWViIE9kZWQgR2FiYmF5Ogo+IFdoZW4gYW1ka2Zk IGFuZCByYWRlb24gYXJlIGNvbXBpbGVkIGluc2lkZSB0aGUga2VybmVsIGltYWdlIChub3QgYXMg bW9kdWxlcyksCj4gcmFkZW9uIHdpbGwgbG9hZCBiZWZvcmUgYW1ka2ZkIGFuZCB3aWxsIHNldCAq a2ZkMmtnZCB0byBpdHMgaW50ZXJmYWNlCj4gc3RydWN0dXJlLiBUaGVyZWZvcmUsIHdlIG11c3Qg bm90IHNldCAqa2ZkMmtnZCB0byBOVUxMIHdoZW4gYW1ka2ZkIGlzIGxvYWRlZAo+IGJlY2F1c2Ug aXQgd2lsbCBvdmVycmlkZSByYWRlb24ncyBpbml0aWFsaXphdGlvbiBhbmQgY2F1c2Uga2VybmVs IEJVRy4KPgo+IFNpZ25lZC1vZmYtYnk6IE9kZWQgR2FiYmF5IDxvZGVkLmdhYmJheUBhbWQuY29t PgoKWW91IHNob3VsZCBwcm9iYWJseSByYXRoZXIgZml4IHRoZSBkZXBlbmRlbmN5IGJldHdlZW4g dGhlIHR3byBtb2R1bGVzIHRvIApnZXQgYW4gZGV0ZXJtaW5lZCBsb2FkIG9yZGVyIGluc3RlYWQg b2YgZG9pbmcgc3VjaCBuYXN0eSB3b3JrYXJvdW5kcy4KCkNocmlzdGlhbi4KCj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbW9kdWxlLmMgfCA1ICsrLS0tCj4gICAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tb2R1bGUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9tb2R1bGUuYwo+IGluZGV4IDk1ZDVhZjEuLjIzNjU2MmYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21vZHVsZS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21vZHVsZS5jCj4gQEAgLTM0LDcgKzM0 LDcgQEAKPiAgICNkZWZpbmUgS0ZEX0RSSVZFUl9NSU5PUgk3Cj4gICAjZGVmaW5lIEtGRF9EUklW RVJfUEFUQ0hMRVZFTAkwCj4gICAKPiAtY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmtmZDJr Z2Q7Cj4gK2NvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICprZmQya2dkID0gTlVMTDsKPiAgIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qga2dkMmtmZF9jYWxscyBrZ2Qya2ZkID0gewo+ICAgCS5leGl0CQk9 IGtnZDJrZmRfZXhpdCwKPiAgIAkucHJvYmUJCT0ga2dkMmtmZF9wcm9iZSwKPiBAQCAtODQsMTQg Kzg0LDEzIEBAIEVYUE9SVF9TWU1CT0woa2dkMmtmZF9pbml0KTsKPiAgIAo+ICAgdm9pZCBrZ2Qy a2ZkX2V4aXQodm9pZCkKPiAgIHsKPiArCWtmZDJrZ2QgPSBOVUxMOwo+ICAgfQo+ICAgCj4gICBz dGF0aWMgaW50IF9faW5pdCBrZmRfbW9kdWxlX2luaXQodm9pZCkKPiAgIHsKPiAgIAlpbnQgZXJy Owo+ICAgCj4gLQlrZmQya2dkID0gTlVMTDsKPiAtCj4gICAJLyogVmVyaWZ5IG1vZHVsZSBwYXJh bWV0ZXJzICovCj4gICAJaWYgKChzY2hlZF9wb2xpY3kgPCBLRkRfU0NIRURfUE9MSUNZX0hXUykg fHwKPiAgIAkJKHNjaGVkX3BvbGljeSA+IEtGRF9TQ0hFRF9QT0xJQ1lfTk9fSFdTKSkgewoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753550AbaLULf4 (ORCPT ); Sun, 21 Dec 2014 06:35:56 -0500 Received: from pegasos-out.vodafone.de ([80.84.1.38]:39952 "EHLO pegasos-out.vodafone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753444AbaLULfx (ORCPT ); Sun, 21 Dec 2014 06:35:53 -0500 X-Greylist: delayed 455 seconds by postgrey-1.27 at vger.kernel.org; Sun, 21 Dec 2014 06:35:53 EST X-Spam-Flag: NO X-Spam-Score: 0.412 Authentication-Results: rohrpostix2.prod.vfnet.de (amavisd-new); dkim=softfail (invalid, public key: DNS query timeout for mail._domainkey.vodafone.de) header.i=@vodafone.de X-DKIM: OpenDKIM Filter v2.6.8 pegasos-out.vodafone.de 17C2D66F87 Message-ID: <5496AEAD.3090003@vodafone.de> Date: Sun, 21 Dec 2014 12:27:41 +0100 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Oded Gabbay , dri-devel@lists.freedesktop.org CC: linux-kernel@vger.kernel.org, Alexander.Deucher@amd.com Subject: Re: [PATCH 1/3] amdkfd: Don't clear *kfd2kgd on kfd_module_init References: <1419108374-7020-1-git-send-email-oded.gabbay@amd.com> <1419108374-7020-2-git-send-email-oded.gabbay@amd.com> In-Reply-To: <1419108374-7020-2-git-send-email-oded.gabbay@amd.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 20.12.2014 um 21:46 schrieb Oded Gabbay: > When amdkfd and radeon are compiled inside the kernel image (not as modules), > radeon will load before amdkfd and will set *kfd2kgd to its interface > structure. Therefore, we must not set *kfd2kgd to NULL when amdkfd is loaded > because it will override radeon's initialization and cause kernel BUG. > > Signed-off-by: Oded Gabbay You should probably rather fix the dependency between the two modules to get an determined load order instead of doing such nasty workarounds. Christian. > --- > drivers/gpu/drm/amd/amdkfd/kfd_module.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c > index 95d5af1..236562f 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c > @@ -34,7 +34,7 @@ > #define KFD_DRIVER_MINOR 7 > #define KFD_DRIVER_PATCHLEVEL 0 > > -const struct kfd2kgd_calls *kfd2kgd; > +const struct kfd2kgd_calls *kfd2kgd = NULL; > static const struct kgd2kfd_calls kgd2kfd = { > .exit = kgd2kfd_exit, > .probe = kgd2kfd_probe, > @@ -84,14 +84,13 @@ EXPORT_SYMBOL(kgd2kfd_init); > > void kgd2kfd_exit(void) > { > + kfd2kgd = NULL; > } > > static int __init kfd_module_init(void) > { > int err; > > - kfd2kgd = NULL; > - > /* Verify module parameters */ > if ((sched_policy < KFD_SCHED_POLICY_HWS) || > (sched_policy > KFD_SCHED_POLICY_NO_HWS)) {