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,URIBL_BLOCKED, 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 DD79BC43381 for ; Fri, 15 Mar 2019 17:49:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B289B218A1 for ; Fri, 15 Mar 2019 17:49:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726649AbfCORt6 (ORCPT ); Fri, 15 Mar 2019 13:49:58 -0400 Received: from mga12.intel.com ([192.55.52.136]:43088 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725956AbfCORt5 (ORCPT ); Fri, 15 Mar 2019 13:49:57 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Mar 2019 10:49:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,482,1544515200"; d="scan'208";a="134393136" Received: from agluck-desk.sc.intel.com (HELO agluck-desk) ([10.3.52.160]) by orsmga003.jf.intel.com with ESMTP; 15 Mar 2019 10:49:56 -0700 Date: Fri, 15 Mar 2019 10:49:56 -0700 From: "Luck, Tony" To: Borislav Petkov Cc: Arnd Bergmann , Mauro Carvalho Chehab , James Morse , Qiuxu Zhuo , linux-edac@vger.kernel.org, Linux Kernel Mailing List Subject: Re: [PATCH] EDAC, {skx|i10nm}_edac: Fix randconfig build error Message-ID: <20190315174956.GA20831@agluck-desk> References: <20190306175808.GA30016@agluck-desk> <20190313230137.GA12529@agluck-desk> <20190314110413.GA32277@zn.tnic> <20190314215952.GA303@agluck-desk> <20190315094341.GA12523@zn.tnic> <20190315155718.GA17775@agluck-desk> <20190315173720.GC12523@zn.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190315173720.GC12523@zn.tnic> 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 On Fri, Mar 15, 2019 at 06:37:20PM +0100, Borislav Petkov wrote: > I think the shared code should not have any reference to modules because > it is supposed to be a library. Can you move the THIS_MODULE out of the > common file and into the actual module? Yes - Qiuxu did that already ... patch reposted below. -Tony >From f9c656177e07fe5e978b09e5795a2a84a27bd54c Mon Sep 17 00:00:00 2001 From: Qiuxu Zhuo Date: Wed, 6 Mar 2019 09:59:14 +0800 Subject: [PATCH] EDAC, {skx|i10nm}_edac: Fix randconfig build error 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 --- 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 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: <20190315174956.GA20831@agluck-desk> Date: Fri, 15 Mar 2019 10:49:56 -0700 To: Borislav Petkov Cc: Arnd Bergmann , Mauro Carvalho Chehab , James Morse , Qiuxu Zhuo , linux-edac@vger.kernel.org, Linux Kernel Mailing List List-ID: T24gRnJpLCBNYXIgMTUsIDIwMTkgYXQgMDY6Mzc6MjBQTSArMDEwMCwgQm9yaXNsYXYgUGV0a292 IHdyb3RlOgo+IEkgdGhpbmsgdGhlIHNoYXJlZCBjb2RlIHNob3VsZCBub3QgaGF2ZSBhbnkgcmVm ZXJlbmNlIHRvIG1vZHVsZXMgYmVjYXVzZQo+IGl0IGlzIHN1cHBvc2VkIHRvIGJlIGEgbGlicmFy eS4gQ2FuIHlvdSBtb3ZlIHRoZSBUSElTX01PRFVMRSBvdXQgb2YgdGhlCj4gY29tbW9uIGZpbGUg YW5kIGludG8gdGhlIGFjdHVhbCBtb2R1bGU/CgoKWWVzIC0gUWl1eHUgZGlkIHRoYXQgYWxyZWFk eSAuLi4gcGF0Y2ggcmVwb3N0ZWQgYmVsb3cuCgotVG9ueQoKCkZyb20gZjljNjU2MTc3ZTA3ZmU1 ZTk3OGIwOWU1Nzk1YTJhODRhMjdiZDU0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog UWl1eHUgWmh1byA8cWl1eHUuemh1b0BpbnRlbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAxOSAw OTo1OToxNCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEVEQUMsIHtza3h8aTEwbm19X2VkYWM6IEZp eCByYW5kY29uZmlnIGJ1aWxkIGVycm9yCgpLYnVpbGQgZmFpbGVkIG9uIHRoZSBrZXJuZWwgY29u ZmlndXJhdGlvbnMgYmVsb3c6CgogIENPTkZJR19BQ1BJX05GSVQ9eQogIENPTkZJR19FREFDX0RF QlVHPXkKICBDT05GSUdfRURBQ19TS1g9bQogIENPTkZJR19FREFDX0kxME5NPXkKICAgICAgICAg b3IKICBDT05GSUdfQUNQSV9ORklUPXkKICBDT05GSUdfRURBQ19ERUJVRz15CiAgQ09ORklHX0VE QUNfU0tYPXkKICBDT05GSUdfRURBQ19JMTBOTT1tCgpGYWlsZWQgbG9nOgogIC4uLgogIENDIFtN XSAgZHJpdmVycy9lZGFjL3NreF9jb21tb24ubwogIC4uLgogIC4uLi9za3hfY29tbW9uLm86Li4u L3NreF9jb21tb24uYzo2NzI6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9fdGhpc19tb2R1bGUn CgpUaGF0IGlzIGJlY2F1c2UgaWYgb25lIG9mIHRoZSB0d28gZHJpdmVycyB7c2t4fGkxMG5tfV9l ZGFjIGlzIGJ1aWx0LWluCmFuZCB0aGUgb3RoZXIgb25lIGlzIGJ1aWx0IGFzIGEgbW9kdWxlLCB0 aGUgc2hhcmVkIGZpbGUgc2t4X2NvbW1vbi5jIGlzCmFsd2F5cyBidWlsdCB0byBhbiBvYmplY3Qg aW4gbW9kdWxlIHN0eWxlIGJ5IGtidWlsZC4gVGhlcmVmb3JlLCB3aGVuCmxpbmtpbmcgZm9yIHZt bGludXgsIHRoZSAnX190aGlzX21vZHVsZScgc3ltYm9sIGlzbid0IGRlZmluZWQuCgpGaXggaXQg YnkgbW92aW5nIHRoZSBERUZJTkVfU0lNUExFX0FUVFJJQlVURSgpIGZyb20gc2t4X2NvbW1vbi5j IHRvCnNreF9iYXNlLmMgYW5kIGkxMG5tX2Jhc2UuYywgd2hlcmUgdGhlICdfX3RoaXNfbW9kdWxl JyBpcyBhbHdheXMgZGVmaW5lZAp3aGF0ZXZlciBpdCdzIGJ1aWx0LWluIG9yIGJ1aWx0IGFzIGEg bW9kdWxlLgoKVGVzdCB0aGUgcGF0Y2ggd2l0aCBmb2xsb3dpbmcgY29uZmlndXJhdGlvbnM6Cgog IENPTkZJR19BQ1BJX05GSVQ9eQogIENPTkZJR19FREFDX0RFQlVHPVt5fG5dCgogICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgfCAgc2t4X2VkYWMgIHwgIGkxMG5tX2Vk YWMgIHwgQnVpbGQgIHwKICB8LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tfAog IHwgICAgIG0gICAgICB8ICAgICAgbSAgICAgICB8ICAgb2sgICB8CiAgfC0tLS0tLS0tLS0tLXwt LS0tLS0tLS0tLS0tLXwtLS0tLS0tLXwKICB8ICAgICBtICAgICAgfCAgICAgIHkgICAgICAgfCAg IG9rICAgfAogIHwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS18CiAgfCAgICAg eSAgICAgIHwgICAgICBtICAgICAgIHwgICBvayAgIHwKICB8LS0tLS0tLS0tLS0tfC0tLS0tLS0t LS0tLS0tfC0tLS0tLS0tfAogIHwgICAgIHkgICAgICB8ICAgICAgeSAgICAgICB8ICAgb2sgICB8 CiAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCkZpeGVzOiBkNGRjODlk MDY5YWEgKCJFREFDLCBpMTBubTogQWRkIGEgZHJpdmVyIGZvciBJbnRlbCAxMG5tIHNlcnZlciBw cm9jZXNzb3JzIikKUmVwb3J0ZWQtYnk6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+ClNp Z25lZC1vZmYtYnk6IFFpdXh1IFpodW8gPHFpdXh1LnpodW9AaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9lZGFjL2kx MG5tX2Jhc2UuYyB8IDQgKysrLQogZHJpdmVycy9lZGFjL3NreF9iYXNlLmMgICB8IDQgKysrLQog ZHJpdmVycy9lZGFjL3NreF9jb21tb24uYyB8IDcgKysrLS0tLQogZHJpdmVycy9lZGFjL3NreF9j b21tb24uaCB8IDcgKysrKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9pMTBubV9iYXNlLmMgYi9k cml2ZXJzL2VkYWMvaTEwbm1fYmFzZS5jCmluZGV4IGMzMzRmYjdjNjNkZi4uNTdhZTJjNmQ1OTU4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMvaTEwbm1fYmFzZS5jCisrKyBiL2RyaXZlcnMvZWRh Yy9pMTBubV9iYXNlLmMKQEAgLTE4MSw2ICsxODEsOCBAQCBzdGF0aWMgc3RydWN0IG5vdGlmaWVy X2Jsb2NrIGkxMG5tX21jZV9kZWMgPSB7CiAJLnByaW9yaXR5CT0gTUNFX1BSSU9fRURBQywKIH07 CiAKK0RFRklORV9TSU1QTEVfQVRUUklCVVRFKGZvcHNfdTY0X3dvLCBOVUxMLCBkZWJ1Z2ZzX3U2 NF9zZXQsICIlbGx1XG4iKTsKKwogc3RhdGljIGludCBfX2luaXQgaTEwbm1faW5pdCh2b2lkKQog ewogCXU4IG1jID0gMCwgc3JjX2lkID0gMCwgbm9kZV9pZCA9IDA7CkBAIC0yNDksNyArMjUxLDcg QEAgc3RhdGljIGludCBfX2luaXQgaTEwbm1faW5pdCh2b2lkKQogCiAJb3BzdGF0ZV9pbml0KCk7 CiAJbWNlX3JlZ2lzdGVyX2RlY29kZV9jaGFpbigmaTEwbm1fbWNlX2RlYyk7Ci0Jc2V0dXBfc2t4 X2RlYnVnKCJpMTBubV90ZXN0Iik7CisJc2V0dXBfc2t4X2RlYnVnKCJpMTBubV90ZXN0IiwgJmZv cHNfdTY0X3dvKTsKIAogCWkxMG5tX3ByaW50ayhLRVJOX0lORk8sICIlc1xuIiwgSTEwTk1fUkVW SVNJT04pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvc2t4X2Jhc2UuYyBiL2RyaXZlcnMv ZWRhYy9za3hfYmFzZS5jCmluZGV4IGFkYWU0Yzg0OGNhMS4uMTc0OGY2MjdjYTZjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2VkYWMvc2t4X2Jhc2UuYworKysgYi9kcml2ZXJzL2VkYWMvc2t4X2Jhc2Uu YwpAQCAtNTQwLDYgKzU0MCw4IEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgc2t4X21j ZV9kZWMgPSB7CiAJLnByaW9yaXR5CT0gTUNFX1BSSU9fRURBQywKIH07CiAKK0RFRklORV9TSU1Q TEVfQVRUUklCVVRFKGZvcHNfdTY0X3dvLCBOVUxMLCBkZWJ1Z2ZzX3U2NF9zZXQsICIlbGx1XG4i KTsKKwogLyoKICAqIHNreF9pbml0OgogICoJbWFrZSBzdXJlIHdlIGFyZSBydW5uaW5nIG9uIHRo ZSBjb3JyZWN0IGNwdSBtb2RlbApAQCAtNjE5LDcgKzYyMSw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IHNreF9pbml0KHZvaWQpCiAJLyogRW5zdXJlIHRoYXQgdGhlIE9QU1RBVEUgaXMgc2V0IGNvcnJl Y3RseSBmb3IgUE9MTCBvciBOTUkgKi8KIAlvcHN0YXRlX2luaXQoKTsKIAotCXNldHVwX3NreF9k ZWJ1Zygic2t4X3Rlc3QiKTsKKwlzZXR1cF9za3hfZGVidWcoInNreF90ZXN0IiwgJmZvcHNfdTY0 X3dvKTsKIAogCW1jZV9yZWdpc3Rlcl9kZWNvZGVfY2hhaW4oJnNreF9tY2VfZGVjKTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9lZGFjL3NreF9jb21tb24uYyBiL2RyaXZlcnMvZWRhYy9za3hfY29t bW9uLmMKaW5kZXggMGU5NmU3YjViMGE3Li5mNzVhZjdmZjU1MTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZWRhYy9za3hfY29tbW9uLmMKKysrIGIvZHJpdmVycy9lZGFjL3NreF9jb21tb24uYwpAQCAt NjUzLDcgKzY1Myw3IEBAIHZvaWQgc2t4X3JlbW92ZSh2b2lkKQogICovCiBzdGF0aWMgc3RydWN0 IGRlbnRyeSAqc2t4X3Rlc3Q7CiAKLXN0YXRpYyBpbnQgZGVidWdmc191NjRfc2V0KHZvaWQgKmRh dGEsIHU2NCB2YWwpCitpbnQgZGVidWdmc191NjRfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiB7 CiAJc3RydWN0IG1jZSBtOwogCkBAIC02NjksMTYgKzY2OSwxNSBAQCBzdGF0aWMgaW50IGRlYnVn ZnNfdTY0X3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCiAJcmV0dXJuIDA7CiB9Ci1ERUZJTkVf U0lNUExFX0FUVFJJQlVURShmb3BzX3U2NF93bywgTlVMTCwgZGVidWdmc191NjRfc2V0LCAiJWxs dVxuIik7CiAKLXZvaWQgc2V0dXBfc2t4X2RlYnVnKGNvbnN0IGNoYXIgKmRpcm5hbWUpCit2b2lk IHNldHVwX3NreF9kZWJ1Zyhjb25zdCBjaGFyICpkaXJuYW1lLCBjb25zdCBzdHJ1Y3QgZmlsZV9v cGVyYXRpb25zICpmb3BzKQogewogCXNreF90ZXN0ID0gZWRhY19kZWJ1Z2ZzX2NyZWF0ZV9kaXIo ZGlybmFtZSk7CiAJaWYgKCFza3hfdGVzdCkKIAkJcmV0dXJuOwogCiAJaWYgKCFlZGFjX2RlYnVn ZnNfY3JlYXRlX2ZpbGUoImFkZHIiLCAwMjAwLCBza3hfdGVzdCwKLQkJCQkgICAgICBOVUxMLCAm Zm9wc191NjRfd28pKSB7CisJCQkJICAgICAgTlVMTCwgZm9wcykpIHsKIAkJZGVidWdmc19yZW1v dmUoc2t4X3Rlc3QpOwogCQlza3hfdGVzdCA9IE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9lZGFjL3NreF9jb21tb24uaCBiL2RyaXZlcnMvZWRhYy9za3hfY29tbW9uLmgKaW5kZXggZDI1 Mzc0ZTM0ZDRmLi42Mzc4NjdlMDk1MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZWRhYy9za3hfY29t bW9uLmgKKysrIGIvZHJpdmVycy9lZGFjL3NreF9jb21tb24uaApAQCAtMTQyLDEwICsxNDIsMTMg QEAgaW50IHNreF9tY2VfY2hlY2tfZXJyb3Ioc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5z aWduZWQgbG9uZyB2YWwsCiB2b2lkIHNreF9yZW1vdmUodm9pZCk7CiAKICNpZmRlZiBDT05GSUdf RURBQ19ERUJVRwotdm9pZCBzZXR1cF9za3hfZGVidWcoY29uc3QgY2hhciAqZGlybmFtZSk7Citp bnQgZGVidWdmc191NjRfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpOwordm9pZCBzZXR1cF9za3hf ZGVidWcoY29uc3QgY2hhciAqZGlybmFtZSwgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAq Zm9wcyk7CiB2b2lkIHRlYXJkb3duX3NreF9kZWJ1Zyh2b2lkKTsKICNlbHNlCi1zdGF0aWMgaW5s aW5lIHZvaWQgc2V0dXBfc2t4X2RlYnVnKGNvbnN0IGNoYXIgKmRpcm5hbWUpIHt9CitzdGF0aWMg aW5saW5lIGludCBkZWJ1Z2ZzX3U2NF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkgeyByZXR1cm4g LUVOT0VOVDsgfQorc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3NreF9kZWJ1Zyhjb25zdCBjaGFy ICpkaXJuYW1lLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpIHt9 CiBzdGF0aWMgaW5saW5lIHZvaWQgdGVhcmRvd25fc2t4X2RlYnVnKHZvaWQpIHt9CiAjZW5kaWYg LypDT05GSUdfRURBQ19ERUJVRyovCiAK