From owner-freebsd-current@FreeBSD.ORG Thu Nov 24 18:58:12 2011 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB9BF106567C; Thu, 24 Nov 2011 18:58:12 +0000 (UTC) (envelope-from rmh.aybabtu@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 689F48FC1D; Thu, 24 Nov 2011 18:58:12 +0000 (UTC) Received: by iakl21 with SMTP id l21so5147462iak.13 for ; Thu, 24 Nov 2011 10:58:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=EUFsV2qANwyavbxlhH3qYD3VRcboyFKKrumONJd2fuI=; b=Ahh8KIdwc14Qf2elMh8A8vrtxE2tieb3q+6QtKwIB8iqTFEfAovFMSobrgksJHWuIb WIPX8jkBfHfUT4txNoDprEV4Qf0yPeLuKLaMqLBeRjHRLV551ohwc6vOl1anXzpupTrF /ot54usLrhr1YsT112Gx/4AvmmnTJ32PECi5w= MIME-Version: 1.0 Received: by 10.43.45.137 with SMTP id uk9mr8680604icb.52.1322161091957; Thu, 24 Nov 2011 10:58:11 -0800 (PST) Sender: rmh.aybabtu@gmail.com Received: by 10.42.222.200 with HTTP; Thu, 24 Nov 2011 10:58:11 -0800 (PST) In-Reply-To: <20111124141821.O932@besplex.bde.org> References: <20111123070036.GA29952@thorin> <20111124141821.O932@besplex.bde.org> Date: Thu, 24 Nov 2011 19:58:11 +0100 X-Google-Sender-Auth: texmV3vH3fcaWgk38rk-x6_K4jE Message-ID: From: Robert Millan To: Bruce Evans Content-Type: multipart/mixed; boundary=bcaec5299f5938d4f804b27f9e42 Cc: Kostik Belousov , Adrian Chadd , freebsd-current@freebsd.org, freebsd-arch@freebsd.org Subject: Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers (v2) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Nov 2011 18:58:12 -0000 --bcaec5299f5938d4f804b27f9e42 Content-Type: text/plain; charset=UTF-8 Hi Bruce, 2011/11/24 Bruce Evans : > Now it adds lots of namespace pollution (all of , including > all of its namespace pollution), just to get 1 new symbol defined. Well, my initial patch (see mail with same subject modulo "v2") didn't have this problem. Now that __FreeBSD_kernel__ is defined, many #ifdefs can be simplified, but maybe it's not desireable for all of them. At least not until we can rely on the compiler to define this macro. So in this particular case maybe it's better to use the other approach? See attachment. --bcaec5299f5938d4f804b27f9e42 Content-Type: text/x-diff; charset=US-ASCII; name="gnu-kfreebsd_headers.diff" Content-Disposition: attachment; filename="gnu-kfreebsd_headers.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gve4ka9h0 ZGlmZiAtdXIgc3lzLm9sZC9jYW0vc2NzaS9zY3NpX2xvdy5oIHN5cy9jYW0vc2NzaS9zY3NpX2xv dy5oCi0tLSBzeXMub2xkL2NhbS9zY3NpL3Njc2lfbG93LmgJMjAwNy0xMi0yNSAxODo1MjowMi4w MDAwMDAwMDAgKzAxMDAKKysrIHN5cy9jYW0vc2NzaS9zY3NpX2xvdy5oCTIwMTEtMTEtMTMgMTQ6 MTI6NDEuMTIxOTA4MzgwICswMTAwCkBAIC01Myw3ICs1Myw3IEBACiAjZGVmaW5lCVNDU0lfTE9X X0lOVEVSRkFDRV9YUwogI2VuZGlmCS8qIF9fTmV0QlNEX18gKi8KIAotI2lmZGVmCV9fRnJlZUJT RF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVs X18pCiAjZGVmaW5lCVNDU0lfTE9XX0lOVEVSRkFDRV9DQU0KICNkZWZpbmUJQ0FNCiAjZW5kaWYJ LyogX19GcmVlQlNEX18gKi8KQEAgLTY0LDcgKzY0LDcgQEAKICNpbmNsdWRlIDxkZXYvaXNhL2Nj YnF1ZS5oPgogI2VuZGlmCS8qIF9fTmV0QlNEX18gKi8KIAotI2lmZGVmCV9fRnJlZUJTRF9fCisj aWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAj aW5jbHVkZSA8c3lzL2RldmljZV9wb3J0Lmg+CiAjaW5jbHVkZSA8c3lzL2tkYi5oPgogI2luY2x1 ZGUgPGNhbS9jYW0uaD4KQEAgLTg1LDcgKzg1LDcgQEAKICNkZWZpbmUJU0NTSV9MT1dfQlpFUk8o cHQsIHNpemUpCW1lbXNldCgocHQpLCAwLCAoc2l6ZSkpCiAjZW5kaWYJLyogX19OZXRCU0RfXyAq LwogCi0jaWZkZWYJX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICN1bmRlZglNU0dfSURFTlRJRlkKICNkZWZpbmUJU0NT SV9MT1dfREVCVUdHRVIoZGV2KQlrZGJfZW50ZXIoS0RCX1dIWV9DQU0sIGRldikKICNkZWZpbmUJ U0NTSV9MT1dfREVMQVkobXUpCURFTEFZKChtdSkpCkBAIC0xMTEsNyArMTExLDcgQEAKIH07CiAj ZW5kaWYJLyogX19OZXRCU0RfXyAqLwogCi0jaWZkZWYJX19GcmVlQlNEX18KKyNpZiBkZWZpbmVk KF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHR5cGVkZWYJc3Ry dWN0IHNjc2lfc2Vuc2VfZGF0YSBzY3NpX2xvd19vc2RlcF9zZW5zZV9kYXRhX3Q7CiAKIHN0cnVj dCBzY3NpX2xvd19vc2RlcF9pbnRlcmZhY2UgewpkaWZmIC11ciBzeXMub2xkL2NhbS9zY3NpL3Nj c2lfbG93X3Bpc2EuaCBzeXMvY2FtL3Njc2kvc2NzaV9sb3dfcGlzYS5oCi0tLSBzeXMub2xkL2Nh bS9zY3NpL3Njc2lfbG93X3Bpc2EuaAkyMDA1LTAxLTA1IDIzOjM0OjM3LjAwMDAwMDAwMCArMDEw MAorKysgc3lzL2NhbS9zY3NpL3Njc2lfbG93X3Bpc2EuaAkyMDExLTExLTEzIDE0OjEyOjQxLjEy MTkwODM4MCArMDEwMApAQCAtNDAsNyArNDAsNyBAQAogaW50IHNjc2lfbG93X25vdGlmeV9waXNh KHBpc2FfZGV2aWNlX2hhbmRsZV90LCBwaXNhX2V2ZW50X3QpOwogI2VuZGlmCS8qIF9fTmV0QlNE X18gKi8KIAotI2lmZGVmCV9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwg ZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBpbnQgc2NzaV9sb3dfYWN0aXZhdGVfcGlzYShz dHJ1Y3Qgc2NzaV9sb3dfc29mdGMgKiwgaW50KTsKIGludCBzY3NpX2xvd19kZWFjdGl2YXRlX3Bp c2Eoc3RydWN0IHNjc2lfbG93X3NvZnRjICopOwogI2VuZGlmCS8qIF9fRnJlZUJTRF9fICovCmRp ZmYgLXVyIHN5cy5vbGQvY29udHJpYi9hbHRxL2FsdHEvYWx0cV92YXIuaCBzeXMvY29udHJpYi9h bHRxL2FsdHEvYWx0cV92YXIuaAotLS0gc3lzLm9sZC9jb250cmliL2FsdHEvYWx0cS9hbHRxX3Zh ci5oCTIwMTEtMDMtMTAgMTk6NDk6MTUuMDAwMDAwMDAwICswMTAwCisrKyBzeXMvY29udHJpYi9h bHRxL2FsdHEvYWx0cV92YXIuaAkyMDExLTExLTEzIDE0OjEyOjQxLjExODkwNzM0MSArMDEwMApA QCAtMjAxLDcgKzIwMSw3IEBACiAjZGVmaW5lCUNBTExPVVRfU1RPUChjKQkJdW50aW1lb3V0KChj KS0+Y19mdW5jLChjKS0+Y19hcmcpCiAjZGVmaW5lCUNBTExPVVRfSU5JVElBTElaRVIJeyBOVUxM LCBOVUxMIH0KICNlbmRpZgotI2lmICFkZWZpbmVkKF9fRnJlZUJTRF9fKQorI2lmICFkZWZpbmVk KF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiB0eXBlZGVmIHZv aWQgKHRpbWVvdXRfdCkodm9pZCAqKTsKICNlbmRpZgogCmRpZmYgLXVyIHN5cy5vbGQvY29udHJp Yi9hbHRxL2FsdHEvaWZfYWx0cS5oIHN5cy9jb250cmliL2FsdHEvYWx0cS9pZl9hbHRxLmgKLS0t IHN5cy5vbGQvY29udHJpYi9hbHRxL2FsdHEvaWZfYWx0cS5oCTIwMTEtMDMtMTAgMTk6NDk6MTUu MDAwMDAwMDAwICswMTAwCisrKyBzeXMvY29udHJpYi9hbHRxL2FsdHEvaWZfYWx0cS5oCTIwMTEt MTEtMTMgMTQ6MTI6NDEuMTE5OTA3MTI4ICswMTAwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWZuZGVm IF9BTFRRX0lGX0FMVFFfSF8KICNkZWZpbmUJX0FMVFFfSUZfQUxUUV9IXwogCi0jaWZkZWYgX19G cmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r ZXJuZWxfXykKICNpbmNsdWRlIDxzeXMvbG9jay5oPgkJLyogWFhYICovCiAjaW5jbHVkZSA8c3lz L211dGV4Lmg+CQkvKiBYWFggKi8KICNpbmNsdWRlIDxzeXMvZXZlbnQuaD4JCS8qIFhYWCAqLwpA QCAtNTEsNyArNTEsNyBAQAogCWludAlpZnFfbGVuOwogCWludAlpZnFfbWF4bGVuOwogCWludAlp ZnFfZHJvcHM7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8 fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIAlzdHJ1Y3QJbXR4IGlmcV9tdHg7CiAjZW5k aWYKIApkaWZmIC11ciBzeXMub2xkL2NvbnRyaWIvcGYvbmV0L2lmX3BmbG9nLmggc3lzL2NvbnRy aWIvcGYvbmV0L2lmX3BmbG9nLmgKLS0tIHN5cy5vbGQvY29udHJpYi9wZi9uZXQvaWZfcGZsb2cu aAkyMDExLTA2LTI4IDEzOjU3OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2NvbnRyaWIvcGYv bmV0L2lmX3BmbG9nLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xMzA5MDY0NjkgKzAxMDAKQEAgLTMw LDcgKzMwLDcgQEAKICNkZWZpbmUJUEZMT0dJRlNfTUFYCTE2CiAKIHN0cnVjdCBwZmxvZ19zb2Z0 YyB7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIAlzdHJ1Y3QgaWZuZXQJCSpzY19pZnA7CS8qIHRoZSBp bnRlcmZhY2UgcG9pbnRlciAqLwogI2Vsc2UKIAlzdHJ1Y3QgaWZuZXQJCXNjX2lmOwkJLyogdGhl IGludGVyZmFjZSAqLwpAQCAtNzQsNyArNzQsNyBAQAogI2RlZmluZQlPTERfUEZMT0dfSERSTEVO CXNpemVvZihzdHJ1Y3Qgb2xkX3BmbG9naGRyKQogCiAjaWZkZWYgX0tFUk5FTAotI2lmZGVmIF9f RnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rf a2VybmVsX18pCiBzdHJ1Y3QgcGZfcnVsZTsKIHN0cnVjdCBwZl9ydWxlc2V0Owogc3RydWN0IHBm aV9raWY7CmRpZmYgLXVyIHN5cy5vbGQvY29udHJpYi9wZi9uZXQvaWZfcGZsb3cuaCBzeXMvY29u dHJpYi9wZi9uZXQvaWZfcGZsb3cuaAotLS0gc3lzLm9sZC9jb250cmliL3BmL25ldC9pZl9wZmxv dy5oCTIwMTEtMDYtMjggMTM6NTc6MjUuMDAwMDAwMDAwICswMjAwCisrKyBzeXMvY29udHJpYi9w Zi9uZXQvaWZfcGZsb3cuaAkyMDExLTExLTEzIDE0OjEyOjQxLjEzMDkwNjQ2OSArMDEwMApAQCAt NjYsNyArNjYsNyBAQAogCXVuc2lnbmVkIGludAkJIHNjX21heGNvdW50OwogCXVfaW50NjRfdAkJ IHNjX2djb3VudGVyOwogCXN0cnVjdCBpcF9tb3B0aW9ucwkgc2NfaW1vOwotI2lmZGVmIF9fRnJl ZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2Vy bmVsX18pCiAJc3RydWN0IGNhbGxvdXQJCSBzY190bW87CiAjZWxzZQogCXN0cnVjdCB0aW1lb3V0 CQkgc2NfdG1vOwpkaWZmIC11ciBzeXMub2xkL2NvbnRyaWIvcGYvbmV0L2lmX3Bmc3luYy5oIHN5 cy9jb250cmliL3BmL25ldC9pZl9wZnN5bmMuaAotLS0gc3lzLm9sZC9jb250cmliL3BmL25ldC9p Zl9wZnN5bmMuaAkyMDExLTA2LTI4IDEzOjU3OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2Nv bnRyaWIvcGYvbmV0L2lmX3Bmc3luYy5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTMxOTA2MjU3ICsw MTAwCkBAIC0yNjgsNyArMjY4LDcgQEAKIAlpbnQJCSBwZnN5bmNyX2F1dGhsZXZlbDsKIH07CiAK LSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQo X19GcmVlQlNEX2tlcm5lbF9fKQogI2RlZmluZQlTSU9DU0VUUEZTWU5DICAgX0lPVygnaScsIDI0 Nywgc3RydWN0IGlmcmVxKQogI2RlZmluZQlTSU9DR0VUUEZTWU5DICAgX0lPV1IoJ2knLCAyNDgs IHN0cnVjdCBpZnJlcSkKICNlbmRpZgpAQCAtMjg4LDcgKzI4OCw3IEBACiAjZGVmaW5lCVBGU1lO Q19TX0RFRkVSCTB4ZmUKICNkZWZpbmUJUEZTWU5DX1NfTk9ORQkweGZmCiAKLSNpZmRlZiBfX0Zy ZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tl cm5lbF9fKQogdm9pZAkJCXBmc3luY19pbnB1dChzdHJ1Y3QgbWJ1ZiAqLCBfX3VudXNlZCBpbnQp OwogI2Vsc2UKIHZvaWQJCQlwZnN5bmNfaW5wdXQoc3RydWN0IG1idWYgKiwgLi4uKTsKQEAgLTMw MCw3ICszMDAsNyBAQAogI2RlZmluZQlQRlNZTkNfU0lfQ0tTVU0JCTB4MDIKICNkZWZpbmUJUEZT WU5DX1NJX0FDSwkJMHgwNAogaW50CQkJcGZzeW5jX3N0YXRlX2ltcG9ydChzdHJ1Y3QgcGZzeW5j X3N0YXRlICosIHVfaW50OF90KTsKLSNpZm5kZWYgX19GcmVlQlNEX18KKyNpZiAhZGVmaW5lZChf X0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogdm9pZAkJCXBmc3lu Y19zdGF0ZV9leHBvcnQoc3RydWN0IHBmc3luY19zdGF0ZSAqLAogCQkJICAgIHN0cnVjdCBwZl9z dGF0ZSAqKTsKICNlbmRpZgpkaWZmIC11ciBzeXMub2xkL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgg c3lzL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgKLS0tIHN5cy5vbGQvY29udHJpYi9wZi9uZXQvcGZ2 YXIuaAkyMDExLTEwLTIzIDEyOjA1OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2NvbnRyaWIv cGYvbmV0L3BmdmFyLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xMzQ5MDY3MzggKzAxMDAKQEAgLTM3 LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvcXVldWUu aD4KICNpbmNsdWRlIDxzeXMvdHJlZS5oPgotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5l ZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAjaW5jbHVkZSA8 c3lzL2xvY2suaD4KICNpbmNsdWRlIDxzeXMvc3guaD4KICNlbHNlCkBAIC00Niw3ICs0Niw3IEBA CiAKICNpbmNsdWRlIDxuZXQvcmFkaXguaD4KICNpbmNsdWRlIDxuZXQvcm91dGUuaD4KLSNpZmRl ZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVl QlNEX2tlcm5lbF9fKQogI2luY2x1ZGUgPG5ldC9pZl9jbG9uZS5oPgogI2luY2x1ZGUgPG5ldC9w Zl9tdGFnLmg+CiAjaW5jbHVkZSA8dm0vdW1hLmg+CkBAIC01NCw3ICs1NCw3IEBACiAjaW5jbHVk ZSA8bmV0aW5ldC9pcF9pcHNwLmg+CiAjZW5kaWYKIAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYg ZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAjaW5j bHVkZSA8bmV0aW5ldC9pbi5oPgogI2VuZGlmCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAogc3RydWN0 IGlwOwogc3RydWN0IGlwNl9oZHI7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9f RnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHN0cnVjdCBpbnBjYjsK ICNlbmRpZgogCkBAIC0xNzMsNyArMTczLDcgQEAKIAkJfQkJCSBhOwogCQljaGFyCQkJIGlmbmFt ZVtJRk5BTVNJWl07CiAJCWNoYXIJCQkgdGJsbmFtZVtQRl9UQUJMRV9OQU1FX1NJWkVdOwotI2lm ZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0Zy ZWVCU0Rfa2VybmVsX18pCiAjZGVmaW5lCVJUTEFCRUxfTEVOCTMyCiAjZW5kaWYKIAkJY2hhcgkJ CSBydGxhYmVsbmFtZVtSVExBQkVMX0xFTl07CkBAIC0yMTEsNyArMjExLDcgQEAKICAqIEFkZHJl c3MgbWFuaXB1bGF0aW9uIG1hY3JvcwogICovCiAKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRl ZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogI2RlZmlu ZQlzcGxzb2Z0bmV0KCkJc3BsbmV0KCkKIAogI2RlZmluZQlIVE9OTCh4KQkoeCkgPSBodG9ubCgo X191aW50MzJfdCkoeCkpCkBAIC0yMzYsNyArMjM2LDcgQEAKIAlpZiAodmFyKQkJCQkJXAogCQl1 bWFfemRlc3Ryb3kodmFyKQogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJl ZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIGV4dGVybiBzdHJ1Y3QgbXR4 IHBmX3Rhc2tfbXR4OwogCiAjZGVmaW5lCVBGX0xPQ0tfQVNTRVJUKCkJbXR4X2Fzc2VydCgmcGZf dGFza19tdHgsIE1BX09XTkVEKQpAQCAtODMzLDcgKzgzMyw3IEBACiAJdV9pbnQ2NF90CQkgaWQ7 CiAJdV9pbnQzMl90CQkgY3JlYXRvcmlkOwogCXVfaW50OF90CQkgZGlyZWN0aW9uOwotI2lmZGVm IF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVC U0Rfa2VybmVsX18pCiAJdV9pbnQ4X3QJCSBwYWRbMl07CiAJdV9pbnQ4X3QJCSBsb2NhbF9mbGFn czsKICNkZWZpbmUJUEZTVEFURV9FWFBJUklORyAweDAxCkBAIC05MjMsNyArOTIzLDcgQEAKIAlz YV9mYW1pbHlfdAkgYWY7CiAJdV9pbnQ4X3QJIHByb3RvOwogCXVfaW50OF90CSBkaXJlY3Rpb247 Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk KF9fRnJlZUJTRF9rZXJuZWxfXykKIAl1X2ludDhfdAkgbG9jYWxfZmxhZ3M7CiAjZGVmaW5lCVBG U1RBVEVfRVhQSVJJTkcJCTB4MDEKIAl1X2ludDhfdAkgcGFkOwpAQCAtOTM1LDcgKzkzNSw3IEBA CiAJdV9pbnQ4X3QJIHVwZGF0ZXM7CiB9IF9fcGFja2VkOwogCi0jaWZkZWYgX19GcmVlQlNEX18K KyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykK ICNpZmRlZiBfS0VSTkVMCiAvKiBwZnN5bmMgKi8KIHR5cGVkZWYgaW50CQlwZnN5bmNfc3RhdGVf aW1wb3J0X3Qoc3RydWN0IHBmc3luY19zdGF0ZSAqLCB1X2ludDhfdCk7CkBAIC0xMjE1LDcgKzEy MTUsNyBAQAogUkJfSEVBRChwZmlfaWZoZWFkLCBwZmlfa2lmKTsKIAogLyogc3RhdGUgdGFibGVz ICovCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNpZmRlZiBfS0VSTkVMCiBWTkVUX0RFQ0xBUkUoc3Ry dWN0IHBmX3N0YXRlX3RyZWUsCSBwZl9zdGF0ZXRibCk7CiAjZGVmaW5lCVZfcGZfc3RhdGV0YmwJ CQkgVk5FVChwZl9zdGF0ZXRibCkKQEAgLTEyNzcsNyArMTI3Nyw3IEBACiAJc3RydWN0IHBmX2Fk ZHIJKmRzdDsJCS8qIGRzdCBhZGRyZXNzICovCiAJdV9pbnQxNl90ICpzcG9ydDsKIAl1X2ludDE2 X3QgKmRwb3J0OwotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykg fHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAJc3RydWN0IHBmX210YWcJKnBmX210YWc7 CiAjZW5kaWYKIApAQCAtMTQwMyw3ICsxNDAzLDcgQEAKIAkJCSooYSkgPSAoeCk7IFwKIAl9IHdo aWxlICgwKQogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8 fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNkZWZpbmUgUkVBU09OX1NFVChhLCB4KSBc CiAJZG8geyBcCiAJCWlmICgoYSkgIT0gTlVMTCkgXApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAKIAl1 X2ludDMyX3QJCSBwYXJlbnRfcWlkOwkvKiBwYXJlbnQgcXVldWUgaWQgKi8KIAl1X2ludDMyX3QJ CSBiYW5kd2lkdGg7CS8qIHF1ZXVlIGJhbmR3aWR0aCAqLwogCXVfaW50OF90CQkgcHJpb3JpdHk7 CS8qIHByaW9yaXR5ICovCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJT RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIAl1X2ludDhfdAkJIGxvY2FsX2Zs YWdzOwkvKiBkeW5hbWljIGludGVyZmFjZSAqLwogI2RlZmluZQlQRkFMVFFfRkxBR19JRl9SRU1P VkVECQkweDAxCiAjZW5kaWYKQEAgLTE3NjgsNyArMTc2OCw3IEBACiAjZGVmaW5lCURJT0NTRVRJ RkZMQUcJX0lPV1IoJ0QnLCA4OSwgc3RydWN0IHBmaW9jX2lmYWNlKQogI2RlZmluZQlESU9DQ0xS SUZGTEFHCV9JT1dSKCdEJywgOTAsIHN0cnVjdCBwZmlvY19pZmFjZSkKICNkZWZpbmUJRElPQ0tJ TExTUkNOT0RFUwlfSU9XUignRCcsIDkxLCBzdHJ1Y3QgcGZpb2Nfc3JjX25vZGVfa2lsbCkKLSNp ZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19G cmVlQlNEX2tlcm5lbF9fKQogc3RydWN0IHBmX2lmc3BlZWQgewogCWNoYXIJCQlpZm5hbWVbSUZO QU1TSVpdOwogCXVfaW50MzJfdAkJYmF1ZHJhdGU7CkBAIC0xNzc5LDcgKzE3NzksNyBAQAogI2lm ZGVmIF9LRVJORUwKIFJCX0hFQUQocGZfc3JjX3RyZWUsIHBmX3NyY19ub2RlKTsKIFJCX1BST1RP VFlQRShwZl9zcmNfdHJlZSwgcGZfc3JjX25vZGUsIGVudHJ5LCBwZl9zcmNfY29tcGFyZSk7Ci0j aWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9f RnJlZUJTRF9rZXJuZWxfXykKIFZORVRfREVDTEFSRShzdHJ1Y3QgcGZfc3JjX3RyZWUsCSB0cmVl X3NyY190cmFja2luZyk7CiAjZGVmaW5lCVZfdHJlZV9zcmNfdHJhY2tpbmcJCSBWTkVUKHRyZWVf c3JjX3RyYWNraW5nKQogI2Vsc2UKQEAgLTE3ODksNyArMTc4OSw3IEBACiBSQl9IRUFEKHBmX3N0 YXRlX3RyZWVfaWQsIHBmX3N0YXRlKTsKIFJCX1BST1RPVFlQRShwZl9zdGF0ZV90cmVlX2lkLCBw Zl9zdGF0ZSwKICAgICBlbnRyeV9pZCwgcGZfc3RhdGVfY29tcGFyZV9pZCk7Ci0jaWZkZWYgX19G cmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r ZXJuZWxfXykKIFZORVRfREVDTEFSRShzdHJ1Y3QgcGZfc3RhdGVfdHJlZV9pZCwJIHRyZWVfaWQp OwogI2RlZmluZQlWX3RyZWVfaWQJCQkgVk5FVCh0cmVlX2lkKQogVk5FVF9ERUNMQVJFKHN0cnVj dCBwZl9zdGF0ZV9xdWV1ZSwJIHN0YXRlX2xpc3QpOwpAQCAtMTgwMCwxNCArMTgwMCwxNCBAQAog I2VuZGlmCiAKIFRBSUxRX0hFQUQocGZfcG9vbHF1ZXVlLCBwZl9wb29sKTsKLSNpZmRlZiBfX0Zy ZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tl cm5lbF9fKQogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZl9wb29scXVldWUsCSBwZl9wb29sc1syXSk7 CiAjZGVmaW5lCVZfcGZfcG9vbHMJCQkgVk5FVChwZl9wb29scykKICNlbHNlCiBleHRlcm4gc3Ry dWN0IHBmX3Bvb2xxdWV1ZQkJICBwZl9wb29sc1syXTsKICNlbmRpZgogVEFJTFFfSEVBRChwZl9h bHRxcXVldWUsIHBmX2FsdHEpOwotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0Zy ZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUoc3Ry dWN0IHBmX2FsdHFxdWV1ZSwJIHBmX2FsdHFzWzJdKTsKICNkZWZpbmUJVl9wZl9hbHRxcwkJCSBW TkVUKHBmX2FsdHFzKQogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZl9wYWxpc3QsCQkgcGZfcGFidWYp OwpAQCAtMTgxNyw3ICsxODE3LDcgQEAKIGV4dGVybiBzdHJ1Y3QgcGZfcGFsaXN0CQkJICBwZl9w YWJ1ZjsKICNlbmRpZgogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJT RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIFZORVRfREVDTEFSRSh1X2ludDMy X3QsCQkJIHRpY2tldF9hbHRxc19hY3RpdmUpOwogI2RlZmluZQlWX3RpY2tldF9hbHRxc19hY3Rp dmUJCSBWTkVUKHRpY2tldF9hbHRxc19hY3RpdmUpCiBWTkVUX0RFQ0xBUkUodV9pbnQzMl90LAkJ CSB0aWNrZXRfYWx0cXNfaW5hY3RpdmUpOwpAQCAtMTg0OSw3ICsxODQ5LDcgQEAKIGV4dGVybiB2 b2lkCQkJIHBmX3RibGFkZHJfcmVtb3ZlKHN0cnVjdCBwZl9hZGRyX3dyYXAgKik7CiBleHRlcm4g dm9pZAkJCSBwZl90YmxhZGRyX2NvcHlvdXQoc3RydWN0IHBmX2FkZHJfd3JhcCAqKTsKIGV4dGVy biB2b2lkCQkJIHBmX2NhbGNfc2tpcF9zdGVwcyhzdHJ1Y3QgcGZfcnVsZXF1ZXVlICopOwotI2lm ZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0Zy ZWVCU0Rfa2VybmVsX18pCiAjaWZkZWYgQUxUUQogZXh0ZXJuCXZvaWQJCQkgcGZfYWx0cV9pZm5l dF9ldmVudChzdHJ1Y3QgaWZuZXQgKiwgaW50KTsKICNlbmRpZgpAQCAtMTg4Niw3ICsxODg2LDcg QEAKIGV4dGVybiBzdHJ1Y3QgcG9vbAkJIHBmX3N0YXRlX3NjcnViX3BsOwogI2VuZGlmCiBleHRl cm4gdm9pZAkJCSBwZl9wdXJnZV90aHJlYWQodm9pZCAqKTsKLSNpZmRlZiBfX0ZyZWVCU0RfXwor I2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQog ZXh0ZXJuIGludAkJCSBwZl9wdXJnZV9leHBpcmVkX3NyY19ub2RlcyhpbnQpOwogZXh0ZXJuIGlu dAkJCSBwZl9wdXJnZV9leHBpcmVkX3N0YXRlcyh1X2ludDMyX3QgLCBpbnQpOwogI2Vsc2UKQEAg LTE5MTEsNyArMTkxMSw3IEBACiBleHRlcm4gdV9pbnQxNl90CQkgcGZfY2tzdW1fZml4dXAodV9p bnQxNl90LCB1X2ludDE2X3QsIHVfaW50MTZfdCwKIAkJCQkgICAgdV9pbnQ4X3QpOwogCi0jaWZk ZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJl ZUJTRF9rZXJuZWxfXykKIFZORVRfREVDTEFSRShzdHJ1Y3QgaWZuZXQgKiwJCSBzeW5jX2lmcCk7 CiAjZGVmaW5lCVZfc3luY19pZnAJCSAJIFZORVQoc3luY19pZnApOwogVk5FVF9ERUNMQVJFKHN0 cnVjdCBwZl9ydWxlLAkJIHBmX2RlZmF1bHRfcnVsZSk7CkBAIC0xOTI0LDEyICsxOTI0LDEyIEBA CiAJCQkJICAgIHVfaW50OF90KTsKIHZvaWQJCQkJIHBmX3JtX3J1bGUoc3RydWN0IHBmX3J1bGVx dWV1ZSAqLAogCQkJCSAgICBzdHJ1Y3QgcGZfcnVsZSAqKTsKLSNpZm5kZWYgX19GcmVlQlNEX18K KyNpZiAhZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9f KQogc3RydWN0IHBmX2RpdmVydAkJKnBmX2ZpbmRfZGl2ZXJ0KHN0cnVjdCBtYnVmICopOwogI2Vu ZGlmCiAKICNpZmRlZiBJTkVUCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJl ZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIGludAlwZl90ZXN0KGludCwg c3RydWN0IGlmbmV0ICosIHN0cnVjdCBtYnVmICoqLCBzdHJ1Y3QgZXRoZXJfaGVhZGVyICosCiAg ICAgc3RydWN0IGlucGNiICopOwogI2Vsc2UKQEAgLTE5MzgsNyArMTkzOCw3IEBACiAjZW5kaWYg LyogSU5FVCAqLwogCiAjaWZkZWYgSU5FVDYKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmlu ZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogaW50CXBmX3Rl c3Q2KGludCwgc3RydWN0IGlmbmV0ICosIHN0cnVjdCBtYnVmICoqLCBzdHJ1Y3QgZXRoZXJfaGVh ZGVyICosCiAgICAgc3RydWN0IGlucGNiICopOwogI2Vsc2UKQEAgLTE5NDksNyArMTk0OSw3IEBA CiB2b2lkCXBmX2FkZHJfaW5jKHN0cnVjdCBwZl9hZGRyICosIHNhX2ZhbWlseV90KTsKICNlbmRp ZiAvKiBJTkVUNiAqLwogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJT RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHVfaW50MzJfdAlwZl9uZXdfaXNu KHN0cnVjdCBwZl9zdGF0ZSAqKTsKICNlbmRpZgogdm9pZCAgICpwZl9wdWxsX2hkcihzdHJ1Y3Qg bWJ1ZiAqLCBpbnQsIHZvaWQgKiwgaW50LCB1X3Nob3J0ICosIHVfc2hvcnQgKiwKQEAgLTE5ODYs NyArMTk4Niw3IEBACiB2b2lkCXBmX3B1cmdlX2V4cGlyZWRfZnJhZ21lbnRzKHZvaWQpOwogaW50 CXBmX3JvdXRhYmxlKHN0cnVjdCBwZl9hZGRyICphZGRyLCBzYV9mYW1pbHlfdCBhZiwgc3RydWN0 IHBmaV9raWYgKik7CiBpbnQJcGZfcnRsYWJlbF9tYXRjaChzdHJ1Y3QgcGZfYWRkciAqLCBzYV9m YW1pbHlfdCwgc3RydWN0IHBmX2FkZHJfd3JhcCAqKTsKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lm IGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogaW50 CXBmX3NvY2tldF9sb29rdXAoaW50LCBzdHJ1Y3QgcGZfcGRlc2MgKiwgIHN0cnVjdCBpbnBjYiAq KTsKICNlbHNlCiBpbnQJcGZfc29ja2V0X2xvb2t1cChpbnQsIHN0cnVjdCBwZl9wZGVzYyAqKTsK QEAgLTIwMzEsNyArMjAzMSw3IEBACiBpbnQJcGZyX2luYV9kZWZpbmUoc3RydWN0IHBmcl90YWJs ZSAqLCBzdHJ1Y3QgcGZyX2FkZHIgKiwgaW50LCBpbnQgKiwKIAkgICAgaW50ICosIHVfaW50MzJf dCwgaW50KTsKIAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykg fHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmaV9r aWYgKiwJCSBwZmlfYWxsKTsKICNkZWZpbmUJVl9wZmlfYWxsCSAJCSBWTkVUKHBmaV9hbGwpCiAj ZWxzZQpAQCAtMjAzOSw3ICsyMDM5LDcgQEAKICNlbmRpZgogCiB2b2lkCQkgcGZpX2luaXRpYWxp emUodm9pZCk7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8 fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHZvaWQJCSBwZmlfY2xlYW51cCh2b2lkKTsK ICNlbmRpZgogc3RydWN0IHBmaV9raWYJKnBmaV9raWZfZ2V0KGNvbnN0IGNoYXIgKik7CkBAIC0y MDYxLDcgKzIwNjEsNyBAQAogaW50CQkgcGZpX3NldF9mbGFncyhjb25zdCBjaGFyICosIGludCk7 CiBpbnQJCSBwZmlfY2xlYXJfZmxhZ3MoY29uc3QgY2hhciAqLCBpbnQpOwogCi0jaWZkZWYgX19G cmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r ZXJuZWxfXykKIGludAkJIHBmX21hdGNoX3RhZyhzdHJ1Y3QgbWJ1ZiAqLCBzdHJ1Y3QgcGZfcnVs ZSAqLCBpbnQgKiwKIAkJICAgIHN0cnVjdCBwZl9tdGFnICopOwogI2Vsc2UKQEAgLTIwNzEsNyAr MjA3MSw3IEBACiB2b2lkCQkgcGZfdGFnMnRhZ25hbWUodV9pbnQxNl90LCBjaGFyICopOwogdm9p ZAkJIHBmX3RhZ19yZWYodV9pbnQxNl90KTsKIHZvaWQJCSBwZl90YWdfdW5yZWYodV9pbnQxNl90 KTsKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmlu ZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogaW50CQkgcGZfdGFnX3BhY2tldChzdHJ1Y3QgbWJ1ZiAq LCBpbnQsIGludCwgc3RydWN0IHBmX210YWcgKik7CiAjZWxzZQogaW50CQkgcGZfdGFnX3BhY2tl dChzdHJ1Y3QgbWJ1ZiAqLCBpbnQsIGludCk7CkBAIC0yMDgwLDE0ICsyMDgwLDE0IEBACiB2b2lk CQkgcGZfcWlkMnFuYW1lKHVfaW50MzJfdCwgY2hhciAqKTsKIHZvaWQJCSBwZl9xaWRfdW5yZWYo dV9pbnQzMl90KTsKIAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0Rf XykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBm X3N0YXR1cywJCSBwZl9zdGF0dXMpOwogI2RlZmluZQlWX3BmX3N0YXR1cwkJCSBWTkVUKHBmX3N0 YXR1cykKICNlbHNlCiBleHRlcm4gc3RydWN0IHBmX3N0YXR1cwlwZl9zdGF0dXM7CiAjZW5kaWYK IAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5l ZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUodW1hX3pvbmVfdCwJCSBwZl9mcmVu dF9wbCk7CiAjZGVmaW5lCVZfcGZfZnJlbnRfcGwJCQkgVk5FVChwZl9mcmVudF9wbCkKIFZORVRf REVDTEFSRSh1bWFfem9uZV90LAkJIHBmX2ZyYWdfcGwpOwpAQCAtMjEwMywxNCArMjEwMywxNCBA QAogCXZvaWQJCSpwcDsKIAl1bnNpZ25lZAkgbGltaXQ7CiB9OwotI2lmZGVmIF9fRnJlZUJTRF9f CisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18p CiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmX3Bvb2xfbGltaXQsCQkgcGZfcG9vbF9saW1pdHNbUEZf TElNSVRfTUFYXSk7CiAjZGVmaW5lCVZfcGZfcG9vbF9saW1pdHMJCQkgVk5FVChwZl9wb29sX2xp bWl0cykKICNlbHNlCiBleHRlcm4gc3RydWN0IHBmX3Bvb2xfbGltaXQJcGZfcG9vbF9saW1pdHNb UEZfTElNSVRfTUFYXTsKICNlbmRpZgogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVk KF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHN0cnVjdCBwZl9m cmVudCB7CiAJTElTVF9FTlRSWShwZl9mcmVudCkgZnJfbmV4dDsKIAlzdHJ1Y3QgaXAgKmZyX2lw OwpAQCAtMjE0NCw3ICsyMTQ0LDcgQEAKIAogI2VuZGlmIC8qIF9LRVJORUwgKi8KIAotI2lmZGVm IF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVC U0Rfa2VybmVsX18pCiAjaWZkZWYgX0tFUk5FTAogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZl9hbmNo b3JfZ2xvYmFsLAkJIHBmX2FuY2hvcnMpOwogI2RlZmluZQlWX3BmX2FuY2hvcnMJCQkJIFZORVQo cGZfYW5jaG9ycykKQEAgLTIxNzIsNyArMjE3Miw3IEBACiBzdHJ1Y3QgcGZfcnVsZXNldAkqcGZf ZmluZF9vcl9jcmVhdGVfcnVsZXNldChjb25zdCBjaGFyICopOwogdm9pZAkJCSBwZl9yc19pbml0 aWFsaXplKHZvaWQpOwogCi0jaWZuZGVmIF9fRnJlZUJTRF9fCisjaWYgIWRlZmluZWQoX19GcmVl QlNEX18pICYmICFkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNpZmRlZiBfS0VSTkVMCiBp bnQJCQkgcGZfYW5jaG9yX2NvcHlvdXQoY29uc3Qgc3RydWN0IHBmX3J1bGVzZXQgKiwKIAkJCSAg ICBjb25zdCBzdHJ1Y3QgcGZfcnVsZSAqLCBzdHJ1Y3QgcGZpb2NfcnVsZSAqKTsKQEAgLTIxOTMs NyArMjE5Myw3IEBACiAJICAgIGNvbnN0IHN0cnVjdCB0Y3BoZHIgKik7CiB2b2lkCXBmX29zZnBf Zmx1c2godm9pZCk7CiBpbnQJcGZfb3NmcF9nZXQoc3RydWN0IHBmX29zZnBfaW9jdGwgKik7Ci0j aWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9f RnJlZUJTRF9rZXJuZWxfXykKIGludAlwZl9vc2ZwX2luaXRpYWxpemUodm9pZCk7CiB2b2lkCXBm X29zZnBfY2xlYW51cCh2b2lkKTsKICNlbHNlCmRpZmYgLXVyIHN5cy5vbGQvZGV2L2ZpcmV3aXJl L2ZpcmV3aXJlcmVnLmggc3lzL2Rldi9maXJld2lyZS9maXJld2lyZXJlZy5oCi0tLSBzeXMub2xk L2Rldi9maXJld2lyZS9maXJld2lyZXJlZy5oCTIwMDctMDctMjAgMDU6NDI6NTcuMDAwMDAwMDAw ICswMjAwCisrKyBzeXMvZGV2L2ZpcmV3aXJlL2ZpcmV3aXJlcmVnLmgJMjAxMS0xMS0xMyAxNDox Mjo0MS4xMjI5MDc2MDkgKzAxMDAKQEAgLTc1LDcgKzc1LDcgQEAKIH07CiAKIHN0cnVjdCBmaXJl d2lyZV9zb2Z0YyB7Ci0jaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgX19GcmVlQlNEX3ZlcnNp b24gPj0gNTAwMDAwCisjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVl QlNEX2tlcm5lbF9fKSkgJiYgX19GcmVlQlNEX3ZlcnNpb24gPj0gNTAwMDAwCiAJc3RydWN0IGNk ZXYgKmRldjsKICNlbmRpZgogCXN0cnVjdCBmaXJld2lyZV9jb21tICpmYzsKZGlmZiAtdXIgc3lz Lm9sZC9kZXYvbG1jL2lmX2xtYy5oIHN5cy9kZXYvbG1jL2lmX2xtYy5oCi0tLSBzeXMub2xkL2Rl di9sbWMvaWZfbG1jLmgJMjAwOS0xMS0xOSAxOToyMTo1MS4wMDAwMDAwMDAgKzAxMDAKKysrIHN5 cy9kZXYvbG1jL2lmX2xtYy5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI0OTA4MzAyICswMTAwCkBA IC05ODQsNyArOTg0LDcgQEAKICNlbmRpZgogICB1X2ludDMyX3QgYWRkcmVzczE7CQkvKiBidWZm ZXIxIGJ1cyBhZGRyZXNzICovCiAgIHVfaW50MzJfdCBhZGRyZXNzMjsJCS8qIGJ1ZmZlcjIgYnVz IGFkZHJlc3MgKi8KLSNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX05ldEJT RF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSkKKyNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykg fHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwg ZGVmaW5lZChfX09wZW5CU0RfXykpCiAgIGJ1c19kbWFtYXBfdCBtYXA7CQkvKiBidXMgZG1hbWFw IGZvciB0aGlzIGRlc2NyaXB0b3IgKi8KICMgZGVmaW5lIFRMUF9CVVNfRFNMX1ZBTAkoc2l6ZW9m KGJ1c19kbWFtYXBfdCkgJiBUTFBfQlVTX0RTTCkKICNlbHNlCkBAIC0xMDM1LDcgKzEwMzUsNyBA QAogI2VsaWYgQlNECiAgIHN0cnVjdCBtYnVmICpoZWFkOwkJLyogdGFpbC1xdWV1ZSBvZiBtYnVm cyAqLwogICBzdHJ1Y3QgbWJ1ZiAqdGFpbDsKLSMgaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8 IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykpCisjIGlmIChkZWZp bmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykgfHwgZGVmaW5l ZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSkKICAgYnVzX2RtYV90YWdfdCB0 YWc7CQkvKiBidXNfZG1hIHRhZyBmb3IgZGVzYyBhcnJheSAqLwogICBidXNfZG1hbWFwX3QgbWFw OwkJLyogYnVzX2RtYSBtYXAgZm9yIGRlc2MgYXJyYXkgKi8KICAgYnVzX2RtYV9zZWdtZW50X3Qg c2Vnc1syXTsJLyogYnVzX2RtYW1hcF9sb2FkKCkgb3IgYnVzX2RtYW1lbV9hbGxvYygpICovCkBA IC0xMDY4LDcgKzEwNjgsNyBAQAogICovCiAjZGVmaW5lIElPUkVGX0NTUiAxICAvKiBhY2Nlc3Mg VHVsaXAgQ1NScyB3aXRoIElPIGN5Y2xlcyBpZiAxICovCiAKLSNpZiAoZGVmaW5lZChfX0ZyZWVC U0RfXykgJiYgZGVmaW5lZChERVZJQ0VfUE9MTElORykpCisjaWYgKChkZWZpbmVkKF9fRnJlZUJT RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoREVWSUNFX1BP TExJTkcpKQogIyBkZWZpbmUgREVWX1BPTEwgMQogI2Vsc2UKICMgZGVmaW5lIERFVl9QT0xMIDAK QEAgLTExNTEsNyArMTE1MSw3IEBACiAjIGVuZGlmCiAjZW5kaWYKIAotI2lmZGVmIF9fRnJlZUJT RF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVs X18pCiAgIHN0cnVjdCBjYWxsb3V0IGNhbGxvdXQ7CS8qIHdhdGNoZG9nIG5lZWRzIHRoaXMgICAg ICAgICAgICAgICAgICAqLwogICBzdHJ1Y3QgZGV2aWNlCSpkZXY7CQkvKiBiYXNlIGRldmljZSBw b2ludGVyICAgICAgICAgICAgICAgICAgICAgKi8KICAgYnVzX3NwYWNlX3RhZ190IGNzcl90YWc7 CS8qIGJ1c19zcGFjZSBuZWVkcyB0aGlzICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMTIxMCw3 ICsxMjEwLDcgQEAKIAogLyogSGlkZSB0aGUgbWlub3IgZGlmZmVyZW5jZXMgYmV0d2VlbiBPUyB2 ZXJzaW9ucyAqLwogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9f KSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICAgdHlwZWRlZiB2b2lkIGludHJfcmV0 dXJuX3Q7CiAjIGRlZmluZSAgUkVBRF9QQ0lfQ0ZHKHNjLCBhZGRyKSAgICAgICBwY2lfcmVhZF9j b25maWcgKChzYyktPmRldiwgYWRkciwgNCkKICMgZGVmaW5lIFdSSVRFX1BDSV9DRkcoc2MsIGFk ZHIsIGRhdGEpIHBjaV93cml0ZV9jb25maWcoKHNjKS0+ZGV2LCBhZGRyLCBkYXRhLCA0KQpAQCAt MTQyOCw3ICsxNDI4LDcgQEAKICNlbmRpZgogCiAjaWYgKGRlZmluZWQoX19ic2RpX18pIHx8IC8q IHVuY29uZGl0aW9uYWxseSAqLyBcCi0gICAgKGRlZmluZWQoX19GcmVlQlNEX18pICYmIChfX0Zy ZWVCU0RfdmVyc2lvbiA8IDUwMzAwMCkpIHx8IFwKKyAgICAoKGRlZmluZWQoX19GcmVlQlNEX18p IHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSkgJiYgKF9fRnJlZUJTRF92ZXJzaW9uIDwg NTAzMDAwKSkgfHwgXAogICAgIChkZWZpbmVkKF9fTmV0QlNEX18pICAmJiAoX19OZXRCU0RfVmVy c2lvbl9fIDwgMTA2MDAwMDAwKSkgfHwgXAogICAgIChkZWZpbmVkKF9fT3BlbkJTRF9fKSAmJiAo ICBPcGVuQlNEIDwgMjAwMTExKSkpCiAjIGRlZmluZSBJRlFfRU5RVUVVRShpZnEsIG0sIHBhLCBl cnIpICAgXApAQCAtMTUzMSw3ICsxNTMxLDcgQEAKIHN0YXRpYyBpbnQgIHQxX2lvY3RsKHNvZnRj X3QgKiwgc3RydWN0IGlvY3RsICopOwogCiAjaWYgSUZORVQKLSMgaWYgKChkZWZpbmVkKF9fRnJl ZUJTRF9fKSAmJiAoX19GcmVlQlNEX3ZlcnNpb24gPCA1MDAwMDApKSB8fFwKKyMgaWYgKCgoZGVm aW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pKSAmJiBfX0Zy ZWVCU0RfdmVyc2lvbiA8IDUwMDAwMCkgfHxcCiAgICAgICAgIGRlZmluZWQoX19OZXRCU0RfXykg fHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX2JzZGlfXykpCiBzdGF0aWMgdm9p ZCBuZXRpc3JfZGlzcGF0Y2goaW50LCBzdHJ1Y3QgbWJ1ZiAqKTsKICMgZW5kaWYKQEAgLTE1NDEs NyArMTU0MSw3IEBACiAjaWYgQlNECiBzdGF0aWMgdm9pZCBtYnVmX2VucXVldWUoc3RydWN0IGRl c2NfcmluZyAqLCBzdHJ1Y3QgbWJ1ZiAqKTsKIHN0YXRpYyBzdHJ1Y3QgbWJ1ZiogbWJ1Zl9kZXF1 ZXVlKHN0cnVjdCBkZXNjX3JpbmcgKik7Ci0jIGlmZGVmIF9fRnJlZUJTRF9fCisjIGlmIGRlZmlu ZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogc3RhdGljIHZv aWQgZmJzZF9kbWFtYXBfbG9hZCh2b2lkICosIGJ1c19kbWFfc2VnbWVudF90ICosIGludCwgaW50 KTsKICMgZW5kaWYKIHN0YXRpYyBpbnQgY3JlYXRlX3Jpbmcoc29mdGNfdCAqLCBzdHJ1Y3QgZGVz Y19yaW5nICosIGludCk7CkBAIC0xNTcwLDcgKzE1NzAsNyBAQAogc3RhdGljIHZvaWQgY29yZV9p bnRlcnJ1cHQodm9pZCAqLCBpbnQpOwogc3RhdGljIHZvaWQgdXNlcl9pbnRlcnJ1cHQoc29mdGNf dCAqLCBpbnQpOwogI2lmIEJTRAotIyBpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgZGVmaW5l ZChERVZJQ0VfUE9MTElORykpCisjIGlmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk KF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoREVWSUNFX1BPTExJTkcpCiBzdGF0aWMg aW50IGZic2RfcG9sbChzdHJ1Y3QgaWZuZXQgKiwgZW51bSBwb2xsX2NtZCwgaW50KTsKICMgZW5k aWYKIHN0YXRpYyBpbnRyX3JldHVybl90IGJzZF9pbnRlcnJ1cHQodm9pZCAqKTsKQEAgLTE2Mzgs NyArMTYzOCw3IEBACiBzdGF0aWMgaW50IGF0dGFjaF9jYXJkKHNvZnRjX3QgKiwgY29uc3QgY2hh ciAqKTsKIHN0YXRpYyB2b2lkIGRldGFjaF9jYXJkKHNvZnRjX3QgKik7CiAKLSNpZmRlZiBfX0Zy ZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tl cm5lbF9fKQogc3RhdGljIGludCBmYnNkX3Byb2JlKGRldmljZV90KTsKIHN0YXRpYyBpbnQgZmJz ZF9kZXRhY2goZGV2aWNlX3QpOwogc3RhdGljIGludCBmYnNkX3NodXRkb3duKGRldmljZV90KTsK ZGlmZiAtdXIgc3lzLm9sZC9kZXYvbXB0L21waWxpYi9tcGlfdHlwZS5oIHN5cy9kZXYvbXB0L21w aWxpYi9tcGlfdHlwZS5oCi0tLSBzeXMub2xkL2Rldi9tcHQvbXBpbGliL21waV90eXBlLmgJMjAw Ni0wMi0yNiAyMzo1MDoxNC4wMDAwMDAwMDAgKzAxMDAKKysrIHN5cy9kZXYvbXB0L21waWxpYi9t cGlfdHlwZS5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI1OTA2NjkzICswMTAwCkBAIC03Nyw3ICs3 Nyw3IEBACiB0eXBlZGVmIHNpZ25lZCAgIHNob3J0ICBTMTY7CiB0eXBlZGVmIHVuc2lnbmVkIHNo b3J0ICBVMTY7CiAKLSNpZmRlZglfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18p IHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogCiB0eXBlZGVmIGludDMyX3QgIFMzMjsK IHR5cGVkZWYgdWludDMyX3QgVTMyOwpkaWZmIC11ciBzeXMub2xkL2Rldi93aS9pZl93aXJlZy5o IHN5cy9kZXYvd2kvaWZfd2lyZWcuaAotLS0gc3lzLm9sZC9kZXYvd2kvaWZfd2lyZWcuaAkyMDA5 LTA1LTIwIDIyOjAwOjQwLjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2Rldi93aS9pZl93aXJlZy5o CTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI3OTA2NTQ3ICswMTAwCkBAIC04NCw3ICs4NCw3IEBACiAj aWZkZWYgX19OZXRCU0RfXwogI2RlZmluZSBPU19TVFJJTkdfTkFNRQkiTmV0QlNEIgogI2VuZGlm Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk KF9fRnJlZUJTRF9rZXJuZWxfXykKICNkZWZpbmUgT1NfU1RSSU5HX05BTUUJIkZyZWVCU0QiCiAj ZW5kaWYKICNpZmRlZiBfX09wZW5CU0RfXwpkaWZmIC11ciBzeXMub2xkL2ZzL25mcy9uZnNfdmFy Lmggc3lzL2ZzL25mcy9uZnNfdmFyLmgKLS0tIHN5cy5vbGQvZnMvbmZzL25mc192YXIuaAkyMDEx LTA3LTE2IDEwOjA1OjE3LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2ZzL25mcy9uZnNfdmFyLmgJ MjAxMS0xMS0xMyAxNDoxMjo0MS4xMjg5MDY2MTUgKzAxMDAKQEAgLTc2LDcgKzc2LDcgQEAKIHN0 cnVjdCBuZnN2YXR0cjsKIHN0cnVjdCBuZnNfdmF0dHI7CiBzdHJ1Y3QgTkZTU1ZDQVJHUzsKLSNp ZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19G cmVlQlNEX2tlcm5lbF9fKQogTkZTX0FDQ0VTU19BUkdTOwogTkZTX09QRU5fQVJHUzsKIE5GU19H RVRBVFRSX0FSR1M7CmRpZmYgLXVyIHN5cy5vbGQvbmV0L2lmX2F0bS5oIHN5cy9uZXQvaWZfYXRt LmgKLS0tIHN5cy5vbGQvbmV0L2lmX2F0bS5oCTIwMDktMDQtMTYgMjI6MzA6MjguMDAwMDAwMDAw ICswMjAwCisrKyBzeXMvbmV0L2lmX2F0bS5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI5OTA2NDAy ICswMTAwCkBAIC0yMDIsNyArMjAyLDcgQEAKIAogI2lmIGRlZmluZWQoX19OZXRCU0RfXykgfHwg ZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX2JzZGlfXykKICNkZWZpbmUJUlRBTExP QzEoQSxCKQkJcnRhbGxvYzEoKEEpLChCKSkKLSNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisj ZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykK ICNkZWZpbmUJUlRBTExPQzEoQSxCKQkJcnRhbGxvYzEoKEEpLChCKSwwVUwpCiAjZW5kaWYKIApk aWZmIC11ciBzeXMub2xkL25ldC96bGliLmggc3lzL25ldC96bGliLmgKLS0tIHN5cy5vbGQvbmV0 L3psaWIuaAkyMDEwLTAzLTAyIDA3OjU4OjU4LjAwMDAwMDAwMCArMDEwMAorKysgc3lzL25ldC96 bGliLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xMzU5MDY1MjUgKzAxMDAKQEAgLTUxMCw3ICs1MTAs NyBAQAogICAgZG9uZSBieSBpbmZsYXRlKCkuCiAqLwogCi0jaWYgZGVmaW5lZChfX0ZyZWVCU0Rf XykgJiYgZGVmaW5lZChfS0VSTkVMKQorI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoX0tFUk5FTCkKICNkZWZpbmUgaW5m bGF0ZSAgICAgICBpbmZsYXRlX3BwcCAgICAgLyogRnJlZUJTRCBhbHJlYWR5IGhhcyBhbiBpbmZs YXRlIDotKCAqLwogI2VuZGlmCiAKZGlmZiAtdXIgc3lzLm9sZC9uZXQ4MDIxMS9pZWVlODAyMTFf aW9jdGwuaCBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX2lvY3RsLmgKLS0tIHN5cy5vbGQvbmV0ODAy MTEvaWVlZTgwMjExX2lvY3RsLmgJMjAxMS0wNi0xNiAxMTozNzoyMC4wMDAwMDAwMDAgKzAyMDAK KysrIHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaW9jdGwuaAkyMDExLTExLTEzIDE0OjEyOjQxLjEz NzkwNzc3NyArMDEwMApAQCAtNTY5LDcgKzU2OSw3IEBACiAJdWludDE2X3QJc3ZfdmxhbjsKIH07 CiAKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmlu ZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogLyoKICAqIEZyZWVCU0Qtc3R5bGUgaW9jdGxzLgogICov CmRpZmYgLXVyIHN5cy5vbGQvbmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oIHN5cy9uZXQ4MDIxMS9p ZWVlODAyMTFfdmFyLmgKLS0tIHN5cy5vbGQvbmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oCTIwMTEt MDYtMjAgMTM6NDY6MDMuMDAwMDAwMDAwICswMjAwCisrKyBzeXMvbmV0ODAyMTEvaWVlZTgwMjEx X3Zhci5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTQxOTA5NzIxICswMTAwCkBAIC0zNCw3ICszNCw3 IEBACiAvKiBOQjogcG9ydGFiaWxpdHkgZ2x1ZSBtdXN0IGdvIGZpcnN0ICovCiAjaWYgZGVmaW5l ZChfX05ldEJTRF9fKQogI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9uZXRic2QuaD4KLSNl bGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisjZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBk ZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNpbmNsdWRlIDxuZXQ4MDIxMS9pZWVlODAyMTFf ZnJlZWJzZC5oPgogI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pCiAjaW5jbHVkZSA8bmV0ODAyMTEv aWVlZTgwMjExX2xpbnV4Lmg+CmRpZmYgLXVyIHN5cy5vbGQvbmV0aW5ldC9zY3RwX2NvbnN0YW50 cy5oIHN5cy9uZXRpbmV0L3NjdHBfY29uc3RhbnRzLmgKLS0tIHN5cy5vbGQvbmV0aW5ldC9zY3Rw X2NvbnN0YW50cy5oCTIwMTEtMDktMTcgMTA6NTA6MjkuMDAwMDAwMDAwICswMjAwCisrKyBzeXMv bmV0aW5ldC9zY3RwX2NvbnN0YW50cy5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTQ1OTA4ODcyICsw MTAwCkBAIC0xMDIwLDcgKzEwMjAsNyBAQAogI2RlZmluZSBTQ1RQX0dFVFRJTUVfVElNRVZBTCh4 KQkoZ2V0bWljcm91cHRpbWUoeCkpCiAjZGVmaW5lIFNDVFBfR0VUUFRJTUVfVElNRVZBTCh4KQko bWljcm91cHRpbWUoeCkpCiAjZW5kaWYKLS8qI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRl ZmluZWQoX19BUFBMRV9fKSovCisvKiNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk KF9fRnJlZUJTRF9rZXJuZWxfXykgfHwgZGVmaW5lZChfX0FQUExFX18pKi8KIC8qI2RlZmluZSBT Q1RQX0dFVFRJTUVfVElNRVZBTCh4KSB7IFwqLwogLyoJKHgpLT50dl9zZWMgPSB0aWNrcyAvIDEw MDA7IFwqLwogLyoJKHgpLT50dl91c2VjID0gKHRpY2tzICUgMTAwMCkgKiAxMDAwOyBcKi8KZGlm ZiAtdXIgc3lzLm9sZC9uZXRpbmV0L3NjdHBfcGNiLmggc3lzL25ldGluZXQvc2N0cF9wY2IuaAot LS0gc3lzLm9sZC9uZXRpbmV0L3NjdHBfcGNiLmgJMjAxMS0wOS0xNCAxMDoxNToyMS4wMDAwMDAw MDAgKzAyMDAKKysrIHN5cy9uZXRpbmV0L3NjdHBfcGNiLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4x NDg5MDk2MzIgKzAxMDAKQEAgLTI0MCw3ICsyNDAsNyBAQAogCSAqIEFsbCBzdGF0aWMgc3RydWN0 dXJlcyB0aGF0IGFuY2hvciB0aGUgc3lzdGVtIG11c3QgYmUgaGVyZS4KIAkgKi8KIAlzdHJ1Y3Qg c2N0cF9lcGluZm8gc2N0cHBjYmluZm87Ci0jaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgZGVm aW5lZChTTVApICYmIGRlZmluZWQoU0NUUF9VU0VfUEVSQ1BVX1NUQVQpCisjaWYgKGRlZmluZWQo X19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSkgJiYgZGVmaW5lZChT TVApICYmIGRlZmluZWQoU0NUUF9VU0VfUEVSQ1BVX1NUQVQpCiAJc3RydWN0IHNjdHBzdGF0ICpz Y3Rwc3RhdDsKICNlbHNlCiAJc3RydWN0IHNjdHBzdGF0IHNjdHBzdGF0OwpAQCAtNjMyLDcgKzYz Miw3IEBACiAgICAgc3RydWN0IHNjdHBfaW5wY2IgKiwKICAgICB1aW50OF90IGNvX29mZik7CiAK LSNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBkZWZpbmVkKFNDVFBfTUNPUkVfSU5QVVQpICYm IGRlZmluZWQoU01QKQorI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJl ZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoU0NUUF9NQ09SRV9JTlBVVCkgJiYgZGVmaW5lZChT TVApCiB2b2lkCiAgICAgIHNjdHBfcXVldWVfdG9fbWNvcmUoc3RydWN0IG1idWYgKm0sIGludCBv ZmYsIGludCBjcHVfdG9fdXNlKTsKIApkaWZmIC11ciBzeXMub2xkL25ldGluZXQvc2N0cF9zdHJ1 Y3RzLmggc3lzL25ldGluZXQvc2N0cF9zdHJ1Y3RzLmgKLS0tIHN5cy5vbGQvbmV0aW5ldC9zY3Rw X3N0cnVjdHMuaAkyMDExLTEwLTEwIDE4OjMxOjE4LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL25l dGluZXQvc2N0cF9zdHJ1Y3RzLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xNTA5MDc1MzEgKzAxMDAK QEAgLTEwOCw3ICsxMDgsNyBAQAogdHlwZWRlZiBpbnQgKCppbnBfZnVuYykgKHN0cnVjdCBzY3Rw X2lucGNiICosIHZvaWQgKnB0ciwgdWludDMyX3QgdmFsKTsKIHR5cGVkZWYgdm9pZCAoKmVuZF9m dW5jKSAodm9pZCAqcHRyLCB1aW50MzJfdCB2YWwpOwogCi0jaWYgZGVmaW5lZChfX0ZyZWVCU0Rf XykgJiYgZGVmaW5lZChTQ1RQX01DT1JFX0lOUFVUKSAmJiBkZWZpbmVkKFNNUCkKKyNpZiAoZGVm aW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pKSAmJiBkZWZp bmVkKFNDVFBfTUNPUkVfSU5QVVQpICYmIGRlZmluZWQoU01QKQogLyogd2hhdHMgb24gdGhlIG1j b3JlIGNvbnRyb2wgc3RydWN0ICovCiBzdHJ1Y3Qgc2N0cF9tY29yZV9xdWV1ZSB7CiAJVEFJTFFf RU5UUlkoc2N0cF9tY29yZV9xdWV1ZSkgbmV4dDsKZGlmZiAtdXIgc3lzLm9sZC9uZXRpbmV0L3Nj dHBfdWlvLmggc3lzL25ldGluZXQvc2N0cF91aW8uaAotLS0gc3lzLm9sZC9uZXRpbmV0L3NjdHBf dWlvLmgJMjAxMS0wOC0xNCAyMjo1NTozMi4wMDAwMDAwMDAgKzAyMDAKKysrIHN5cy9uZXRpbmV0 L3NjdHBfdWlvLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xNTI5MDU5ODkgKzAxMDAKQEAgLTEwNTYs NyArMTA1Niw3IEBACiAKICNkZWZpbmUgU0NUUF9TVEFUX0lOQ1IoX3gpIFNDVFBfU1RBVF9JTkNS X0JZKF94LDEpCiAjZGVmaW5lIFNDVFBfU1RBVF9ERUNSKF94KSBTQ1RQX1NUQVRfREVDUl9CWShf eCwxKQotI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmIGRlZmluZWQoU01QKSAmJiBkZWZpbmVk KFNDVFBfVVNFX1BFUkNQVV9TVEFUKQorI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoU01QKSAmJiBkZWZpbmVkKFNDVFBf VVNFX1BFUkNQVV9TVEFUKQogI2RlZmluZSBTQ1RQX1NUQVRfSU5DUl9CWShfeCxfZCkgKFNDVFBf QkFTRV9TVEFUU1tQQ1BVX0dFVChjcHVpZCldLl94ICs9IF9kKQogI2RlZmluZSBTQ1RQX1NUQVRf REVDUl9CWShfeCxfZCkgKFNDVFBfQkFTRV9TVEFUU1tQQ1BVX0dFVChjcHVpZCldLl94IC09IF9k KQogI2Vsc2UKZGlmZiAtdXIgc3lzLm9sZC9zeXMvZGV2aWNlX3BvcnQuaCBzeXMvc3lzL2Rldmlj ZV9wb3J0LmgKLS0tIHN5cy5vbGQvc3lzL2RldmljZV9wb3J0LmgJMjAwNS0wMS0xOSAwMjozMToz My4wMDAwMDAwMDAgKzAxMDAKKysrIHN5cy9zeXMvZGV2aWNlX3BvcnQuaAkyMDExLTExLTEzIDE0 OjEyOjQxLjE1MzkwNzE3NCArMDEwMApAQCAtMjksNyArMjksNyBAQAogCiAjaWYgZGVmaW5lZChf X05ldEJTRF9fKQogIyBpbmNsdWRlIDxzeXMvZGV2aWNlLmg+Ci0jZWxpZiBkZWZpbmVkKF9fRnJl ZUJTRF9fKQorI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rf a2VybmVsX18pCiAjIGluY2x1ZGUgPHN5cy9tb2R1bGUuaD4KICMgaW5jbHVkZSA8c3lzL2J1cy5o PgogI2VuZGlmCkBAIC00Myw3ICs0Myw3IEBACiAjIGRlZmluZSBERVZQT1JUX0RFVk5BTUUoZGV2 KQkJKGRldikuZHZfeG5hbWUKICMgZGVmaW5lIERFVlBPUlRfREVWVU5JVChkZXYpCQkoZGV2KS5k dl91bml0CiAKLSNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisjZWxpZiBkZWZpbmVkKF9fRnJl ZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIC8qCiAgKiBGcmVlQlNEIChj b21wYXRpYmlsaXR5IGZvciBzdHJ1Y3QgZGV2aWNlKQogICovCmRpZmYgLXVyIHN5cy5vbGQvc3lz L3RpbWV4Lmggc3lzL3N5cy90aW1leC5oCi0tLSBzeXMub2xkL3N5cy90aW1leC5oCTIwMDUtMDEt MDcgMDM6Mjk6MjcuMDAwMDAwMDAwICswMTAwCisrKyBzeXMvc3lzL3RpbWV4LmgJMjAxMS0xMS0x MyAxNDoxMjo0MS4xNTU5MDc1ODcgKzAxMDAKQEAgLTIxOCw3ICsyMTgsNyBAQAogCWxvbmcJc3Ri Y250OwkJLyogc3RhYmlsaXR5IGxpbWl0IGV4Y2VlZGVkIChybykgKi8KIH07CiAKLSNpZmRlZiBf X0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNE X2tlcm5lbF9fKQogCiAjaWZkZWYgX0tFUk5FTAogdm9pZAludHBfdXBkYXRlX3NlY29uZChpbnQ2 NF90ICphZGp1c3RtZW50LCB0aW1lX3QgKm5ld3NlYyk7Cg== --bcaec5299f5938d4f804b27f9e42--