From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: EDAC, {skx|i10nm}_edac: Fix randconfig build error From: "Luck, Tony" Message-Id: <20190306175808.GA30016@agluck-desk> Date: Wed, 6 Mar 2019 09:58:08 -0800 To: Arnd Bergmann Cc: Borislav Petkov , Mauro Carvalho Chehab , James Morse , Qiuxu Zhuo , linux-edac@vger.kernel.org, Linux Kernel Mailing List List-ID: RnJvbTogUWl1eHUgWmh1byA8cWl1eHUuemh1b0BpbnRlbC5jb20+CgpLYnVpbGQgZmFpbGVkIG9u IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbnMgYmVsb3c6CgogIENPTkZJR19BQ1BJX05GSVQ9eQog IENPTkZJR19FREFDX0RFQlVHPXkKICBDT05GSUdfRURBQ19TS1g9bQogIENPTkZJR19FREFDX0kx ME5NPXkKICAgICAgICAgb3IKICBDT05GSUdfQUNQSV9ORklUPXkKICBDT05GSUdfRURBQ19ERUJV Rz15CiAgQ09ORklHX0VEQUNfU0tYPXkKICBDT05GSUdfRURBQ19JMTBOTT1tCgpGYWlsZWQgbG9n OgogIC4uLgogIENDIFtNXSAgZHJpdmVycy9lZGFjL3NreF9jb21tb24ubwogIC4uLgogIC4uLi9z a3hfY29tbW9uLm86Li4uL3NreF9jb21tb24uYzo2NzI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8g YF9fdGhpc19tb2R1bGUnCgpUaGF0IGlzIGJlY2F1c2UgaWYgb25lIG9mIHRoZSB0d28gZHJpdmVy cyB7c2t4fGkxMG5tfV9lZGFjIGlzIGJ1aWx0LWluCmFuZCB0aGUgb3RoZXIgb25lIGlzIGJ1aWx0 IGFzIGEgbW9kdWxlLCB0aGUgc2hhcmVkIGZpbGUgc2t4X2NvbW1vbi5jIGlzCmFsd2F5cyBidWls dCB0byBhbiBvYmplY3QgaW4gbW9kdWxlIHN0eWxlIGJ5IGtidWlsZC4gVGhlcmVmb3JlLCB3aGVu CmxpbmtpbmcgZm9yIHZtbGludXgsIHRoZSAnX190aGlzX21vZHVsZScgc3ltYm9sIGlzbid0IGRl ZmluZWQuCgpGaXggaXQgYnkgbW92aW5nIHRoZSBERUZJTkVfU0lNUExFX0FUVFJJQlVURSgpIGZy b20gc2t4X2NvbW1vbi5jIHRvCnNreF9iYXNlLmMgYW5kIGkxMG5tX2Jhc2UuYywgd2hlcmUgdGhl ICdfX3RoaXNfbW9kdWxlJyBpcyBhbHdheXMgZGVmaW5lZAp3aGF0ZXZlciBpdCdzIGJ1aWx0LWlu IG9yIGJ1aWx0IGFzIGEgbW9kdWxlLgoKVGVzdCB0aGUgcGF0Y2ggd2l0aCBmb2xsb3dpbmcgY29u ZmlndXJhdGlvbnM6CgogIENPTkZJR19BQ1BJX05GSVQ9eQogIENPTkZJR19FREFDX0RFQlVHPVt5 fG5dCgogICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgfCAgc2t4X2Vk YWMgIHwgIGkxMG5tX2VkYWMgIHwgQnVpbGQgIHwKICB8LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0t LS0tfC0tLS0tLS0tfAogIHwgICAgIG0gICAgICB8ICAgICAgbSAgICAgICB8ICAgb2sgICB8CiAg fC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLXwKICB8ICAgICBtICAgICAgfCAg ICAgIHkgICAgICAgfCAgIG9rICAgfAogIHwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0t LS0tLS18CiAgfCAgICAgeSAgICAgIHwgICAgICBtICAgICAgIHwgICBvayAgIHwKICB8LS0tLS0t LS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tfAogIHwgICAgIHkgICAgICB8ICAgICAgeSAg ICAgICB8ICAgb2sgICB8CiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK CkZpeGVzOiBkNGRjODlkMDY5YWEgKCJFREFDLCBpMTBubTogQWRkIGEgZHJpdmVyIGZvciBJbnRl bCAxMG5tIHNlcnZlciBwcm9jZXNzb3JzIikKUmVwb3J0ZWQtYnk6IEFybmQgQmVyZ21hbm4gPGFy bmRAYXJuZGIuZGU+ClNpZ25lZC1vZmYtYnk6IFFpdXh1IFpodW8gPHFpdXh1LnpodW9AaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+Ci0tLQoK VGhpcyBzZWVtcyBjbGVhbmVyIHRoYW4gYWRkaW5nIGFsbCB0aGUgRVhQT1JUcyB0byBza3hfY29t bW9uLmMKSSBhbHNvIHRyaWVkIGEgYnVpbGQgd2l0aCB0aGUgMHg4QTE1MjQ2OC1jb25maWcuZ3og dGhhdCBBcm5kCnN1cHBsaWVkLgoKIGRyaXZlcnMvZWRhYy9pMTBubV9iYXNlLmMgfCA0ICsrKy0K IGRyaXZlcnMvZWRhYy9za3hfYmFzZS5jICAgfCA0ICsrKy0KIGRyaXZlcnMvZWRhYy9za3hfY29t bW9uLmMgfCA3ICsrKy0tLS0KIGRyaXZlcnMvZWRhYy9za3hfY29tbW9uLmggfCA3ICsrKysrLS0K IDQgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2VkYWMvaTEwbm1fYmFzZS5jIGIvZHJpdmVycy9lZGFjL2kxMG5tX2Jh c2UuYwppbmRleCBjMzM0ZmI3YzYzZGYuLjU3YWUyYzZkNTk1OCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9lZGFjL2kxMG5tX2Jhc2UuYworKysgYi9kcml2ZXJzL2VkYWMvaTEwbm1fYmFzZS5jCkBAIC0x ODEsNiArMTgxLDggQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBpMTBubV9tY2VfZGVj ID0gewogCS5wcmlvcml0eQk9IE1DRV9QUklPX0VEQUMsCiB9OwogCitERUZJTkVfU0lNUExFX0FU VFJJQlVURShmb3BzX3U2NF93bywgTlVMTCwgZGVidWdmc191NjRfc2V0LCAiJWxsdVxuIik7CisK IHN0YXRpYyBpbnQgX19pbml0IGkxMG5tX2luaXQodm9pZCkKIHsKIAl1OCBtYyA9IDAsIHNyY19p ZCA9IDAsIG5vZGVfaWQgPSAwOwpAQCAtMjQ5LDcgKzI1MSw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IGkxMG5tX2luaXQodm9pZCkKIAogCW9wc3RhdGVfaW5pdCgpOwogCW1jZV9yZWdpc3Rlcl9kZWNv ZGVfY2hhaW4oJmkxMG5tX21jZV9kZWMpOwotCXNldHVwX3NreF9kZWJ1ZygiaTEwbm1fdGVzdCIp OworCXNldHVwX3NreF9kZWJ1ZygiaTEwbm1fdGVzdCIsICZmb3BzX3U2NF93byk7CiAKIAlpMTBu bV9wcmludGsoS0VSTl9JTkZPLCAiJXNcbiIsIEkxME5NX1JFVklTSU9OKTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9lZGFjL3NreF9iYXNlLmMgYi9kcml2ZXJzL2VkYWMvc2t4X2Jhc2UuYwppbmRl eCBhZGFlNGM4NDhjYTEuLjE3NDhmNjI3Y2E2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL3Nr eF9iYXNlLmMKKysrIGIvZHJpdmVycy9lZGFjL3NreF9iYXNlLmMKQEAgLTU0MCw2ICs1NDAsOCBA QCBzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHNreF9tY2VfZGVjID0gewogCS5wcmlvcml0 eQk9IE1DRV9QUklPX0VEQUMsCiB9OwogCitERUZJTkVfU0lNUExFX0FUVFJJQlVURShmb3BzX3U2 NF93bywgTlVMTCwgZGVidWdmc191NjRfc2V0LCAiJWxsdVxuIik7CisKIC8qCiAgKiBza3hfaW5p dDoKICAqCW1ha2Ugc3VyZSB3ZSBhcmUgcnVubmluZyBvbiB0aGUgY29ycmVjdCBjcHUgbW9kZWwK QEAgLTYxOSw3ICs2MjEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBza3hfaW5pdCh2b2lkKQogCS8q IEVuc3VyZSB0aGF0IHRoZSBPUFNUQVRFIGlzIHNldCBjb3JyZWN0bHkgZm9yIFBPTEwgb3IgTk1J ICovCiAJb3BzdGF0ZV9pbml0KCk7CiAKLQlzZXR1cF9za3hfZGVidWcoInNreF90ZXN0Iik7CisJ c2V0dXBfc2t4X2RlYnVnKCJza3hfdGVzdCIsICZmb3BzX3U2NF93byk7CiAKIAltY2VfcmVnaXN0 ZXJfZGVjb2RlX2NoYWluKCZza3hfbWNlX2RlYyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRh Yy9za3hfY29tbW9uLmMgYi9kcml2ZXJzL2VkYWMvc2t4X2NvbW1vbi5jCmluZGV4IDBlOTZlN2I1 YjBhNy4uZjc1YWY3ZmY1NTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMvc2t4X2NvbW1vbi5j CisrKyBiL2RyaXZlcnMvZWRhYy9za3hfY29tbW9uLmMKQEAgLTY1Myw3ICs2NTMsNyBAQCB2b2lk IHNreF9yZW1vdmUodm9pZCkKICAqLwogc3RhdGljIHN0cnVjdCBkZW50cnkgKnNreF90ZXN0Owog Ci1zdGF0aWMgaW50IGRlYnVnZnNfdTY0X3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQoraW50IGRl YnVnZnNfdTY0X3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogewogCXN0cnVjdCBtY2UgbTsKIApA QCAtNjY5LDE2ICs2NjksMTUgQEAgc3RhdGljIGludCBkZWJ1Z2ZzX3U2NF9zZXQodm9pZCAqZGF0 YSwgdTY0IHZhbCkKIAogCXJldHVybiAwOwogfQotREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUoZm9w c191NjRfd28sIE5VTEwsIGRlYnVnZnNfdTY0X3NldCwgIiVsbHVcbiIpOwogCi12b2lkIHNldHVw X3NreF9kZWJ1Zyhjb25zdCBjaGFyICpkaXJuYW1lKQordm9pZCBzZXR1cF9za3hfZGVidWcoY29u c3QgY2hhciAqZGlybmFtZSwgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wcykKIHsK IAlza3hfdGVzdCA9IGVkYWNfZGVidWdmc19jcmVhdGVfZGlyKGRpcm5hbWUpOwogCWlmICghc2t4 X3Rlc3QpCiAJCXJldHVybjsKIAogCWlmICghZWRhY19kZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhZGRy IiwgMDIwMCwgc2t4X3Rlc3QsCi0JCQkJICAgICAgTlVMTCwgJmZvcHNfdTY0X3dvKSkgeworCQkJ CSAgICAgIE5VTEwsIGZvcHMpKSB7CiAJCWRlYnVnZnNfcmVtb3ZlKHNreF90ZXN0KTsKIAkJc2t4 X3Rlc3QgPSBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9za3hfY29tbW9uLmgg Yi9kcml2ZXJzL2VkYWMvc2t4X2NvbW1vbi5oCmluZGV4IGQyNTM3NGUzNGQ0Zi4uNjM3ODY3ZTA5 NTJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMvc2t4X2NvbW1vbi5oCisrKyBiL2RyaXZlcnMv ZWRhYy9za3hfY29tbW9uLmgKQEAgLTE0MiwxMCArMTQyLDEzIEBAIGludCBza3hfbWNlX2NoZWNr X2Vycm9yKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAogdm9p ZCBza3hfcmVtb3ZlKHZvaWQpOwogCiAjaWZkZWYgQ09ORklHX0VEQUNfREVCVUcKLXZvaWQgc2V0 dXBfc2t4X2RlYnVnKGNvbnN0IGNoYXIgKmRpcm5hbWUpOworaW50IGRlYnVnZnNfdTY0X3NldCh2 b2lkICpkYXRhLCB1NjQgdmFsKTsKK3ZvaWQgc2V0dXBfc2t4X2RlYnVnKGNvbnN0IGNoYXIgKmRp cm5hbWUsIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwogdm9pZCB0ZWFyZG93 bl9za3hfZGVidWcodm9pZCk7CiAjZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3NreF9k ZWJ1Zyhjb25zdCBjaGFyICpkaXJuYW1lKSB7fQorc3RhdGljIGlubGluZSBpbnQgZGVidWdmc191 NjRfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpIHsgcmV0dXJuIC1FTk9FTlQ7IH0KK3N0YXRpYyBp bmxpbmUgdm9pZCBzZXR1cF9za3hfZGVidWcoY29uc3QgY2hhciAqZGlybmFtZSwKKwkJCQkgICBj b25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKSB7fQogc3RhdGljIGlubGluZSB2b2lk IHRlYXJkb3duX3NreF9kZWJ1Zyh2b2lkKSB7fQogI2VuZGlmIC8qQ09ORklHX0VEQUNfREVCVUcq LwogCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0514FC43381 for ; Wed, 6 Mar 2019 17:58:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D5B4A20652 for ; Wed, 6 Mar 2019 17:58:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728900AbfCFR6K (ORCPT ); Wed, 6 Mar 2019 12:58:10 -0500 Received: from mga06.intel.com ([134.134.136.31]:38930 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726444AbfCFR6K (ORCPT ); Wed, 6 Mar 2019 12:58:10 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Mar 2019 09:58:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,448,1544515200"; d="scan'208";a="121536057" Received: from agluck-desk.sc.intel.com (HELO agluck-desk) ([10.3.52.160]) by orsmga006.jf.intel.com with ESMTP; 06 Mar 2019 09:58:08 -0800 Date: Wed, 6 Mar 2019 09:58:08 -0800 From: "Luck, Tony" To: Arnd Bergmann Cc: Borislav Petkov , Mauro Carvalho Chehab , James Morse , Qiuxu Zhuo , linux-edac@vger.kernel.org, Linux Kernel Mailing List Subject: [PATCH] EDAC, {skx|i10nm}_edac: Fix randconfig build error Message-ID: <20190306175808.GA30016@agluck-desk> References: <20190305132147.3739133-1-arnd@arndb.de> <20190305143453.GC8256@zn.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Qiuxu Zhuo Kbuild failed on the kernel configurations below: CONFIG_ACPI_NFIT=y CONFIG_EDAC_DEBUG=y CONFIG_EDAC_SKX=m CONFIG_EDAC_I10NM=y or CONFIG_ACPI_NFIT=y CONFIG_EDAC_DEBUG=y CONFIG_EDAC_SKX=y CONFIG_EDAC_I10NM=m Failed log: ... CC [M] drivers/edac/skx_common.o ... .../skx_common.o:.../skx_common.c:672: undefined reference to `__this_module' That is because if one of the two drivers {skx|i10nm}_edac is built-in and the other one is built as a module, the shared file skx_common.c is always built to an object in module style by kbuild. Therefore, when linking for vmlinux, the '__this_module' symbol isn't defined. Fix it by moving the DEFINE_SIMPLE_ATTRIBUTE() from skx_common.c to skx_base.c and i10nm_base.c, where the '__this_module' is always defined whatever it's built-in or built as a module. Test the patch with following configurations: CONFIG_ACPI_NFIT=y CONFIG_EDAC_DEBUG=[y|n] +------------------------------------+ | skx_edac | i10nm_edac | Build | |------------|--------------|--------| | m | m | ok | |------------|--------------|--------| | m | y | ok | |------------|--------------|--------| | y | m | ok | |------------|--------------|--------| | y | y | ok | +------------------------------------+ Fixes: d4dc89d069aa ("EDAC, i10nm: Add a driver for Intel 10nm server processors") Reported-by: Arnd Bergmann Signed-off-by: Qiuxu Zhuo Signed-off-by: Tony Luck --- This seems cleaner than adding all the EXPORTs to skx_common.c I also tried a build with the 0x8A152468-config.gz that Arnd supplied. drivers/edac/i10nm_base.c | 4 +++- drivers/edac/skx_base.c | 4 +++- drivers/edac/skx_common.c | 7 +++---- drivers/edac/skx_common.h | 7 +++++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/edac/i10nm_base.c b/drivers/edac/i10nm_base.c index c334fb7c63df..57ae2c6d5958 100644 --- a/drivers/edac/i10nm_base.c +++ b/drivers/edac/i10nm_base.c @@ -181,6 +181,8 @@ static struct notifier_block i10nm_mce_dec = { .priority = MCE_PRIO_EDAC, }; +DEFINE_SIMPLE_ATTRIBUTE(fops_u64_wo, NULL, debugfs_u64_set, "%llu\n"); + static int __init i10nm_init(void) { u8 mc = 0, src_id = 0, node_id = 0; @@ -249,7 +251,7 @@ static int __init i10nm_init(void) opstate_init(); mce_register_decode_chain(&i10nm_mce_dec); - setup_skx_debug("i10nm_test"); + setup_skx_debug("i10nm_test", &fops_u64_wo); i10nm_printk(KERN_INFO, "%s\n", I10NM_REVISION); diff --git a/drivers/edac/skx_base.c b/drivers/edac/skx_base.c index adae4c848ca1..1748f627ca6c 100644 --- a/drivers/edac/skx_base.c +++ b/drivers/edac/skx_base.c @@ -540,6 +540,8 @@ static struct notifier_block skx_mce_dec = { .priority = MCE_PRIO_EDAC, }; +DEFINE_SIMPLE_ATTRIBUTE(fops_u64_wo, NULL, debugfs_u64_set, "%llu\n"); + /* * skx_init: * make sure we are running on the correct cpu model @@ -619,7 +621,7 @@ static int __init skx_init(void) /* Ensure that the OPSTATE is set correctly for POLL or NMI */ opstate_init(); - setup_skx_debug("skx_test"); + setup_skx_debug("skx_test", &fops_u64_wo); mce_register_decode_chain(&skx_mce_dec); diff --git a/drivers/edac/skx_common.c b/drivers/edac/skx_common.c index 0e96e7b5b0a7..f75af7ff5515 100644 --- a/drivers/edac/skx_common.c +++ b/drivers/edac/skx_common.c @@ -653,7 +653,7 @@ void skx_remove(void) */ static struct dentry *skx_test; -static int debugfs_u64_set(void *data, u64 val) +int debugfs_u64_set(void *data, u64 val) { struct mce m; @@ -669,16 +669,15 @@ static int debugfs_u64_set(void *data, u64 val) return 0; } -DEFINE_SIMPLE_ATTRIBUTE(fops_u64_wo, NULL, debugfs_u64_set, "%llu\n"); -void setup_skx_debug(const char *dirname) +void setup_skx_debug(const char *dirname, const struct file_operations *fops) { skx_test = edac_debugfs_create_dir(dirname); if (!skx_test) return; if (!edac_debugfs_create_file("addr", 0200, skx_test, - NULL, &fops_u64_wo)) { + NULL, fops)) { debugfs_remove(skx_test); skx_test = NULL; } diff --git a/drivers/edac/skx_common.h b/drivers/edac/skx_common.h index d25374e34d4f..637867e0952c 100644 --- a/drivers/edac/skx_common.h +++ b/drivers/edac/skx_common.h @@ -142,10 +142,13 @@ int skx_mce_check_error(struct notifier_block *nb, unsigned long val, void skx_remove(void); #ifdef CONFIG_EDAC_DEBUG -void setup_skx_debug(const char *dirname); +int debugfs_u64_set(void *data, u64 val); +void setup_skx_debug(const char *dirname, const struct file_operations *fops); void teardown_skx_debug(void); #else -static inline void setup_skx_debug(const char *dirname) {} +static inline int debugfs_u64_set(void *data, u64 val) { return -ENOENT; } +static inline void setup_skx_debug(const char *dirname, + const struct file_operations *fops) {} static inline void teardown_skx_debug(void) {} #endif /*CONFIG_EDAC_DEBUG*/ -- 2.19.1