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.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_GIT 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 49DDEC04AB3 for ; Thu, 9 May 2019 17:25:58 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0FDC620656 for ; Thu, 9 May 2019 17:25:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="spVuxRCI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FDC620656 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOmnh-0000cO-0G; Thu, 09 May 2019 17:25:45 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOmng-0000bQ-2J for xen-devel@lists.xenproject.org; Thu, 09 May 2019 17:25:44 +0000 X-Inumbo-ID: 7872d6e5-727f-11e9-8980-bc764e045a96 Received: from aserp2130.oracle.com (unknown [141.146.126.79]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 7872d6e5-727f-11e9-8980-bc764e045a96; Thu, 09 May 2019 17:25:42 +0000 (UTC) Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x49HJOuG162294; Thu, 9 May 2019 17:25:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=corp-2018-07-02; bh=xKaWUTPxoAdRgRwrnAu0b/RxKcJyVaoRHJ5cOvwh/Bo=; b=spVuxRCIt6FBa+0E0VI7CYTUJpSoqEXh7t8i5ftOhVY7z0dGkqeDr3G54nGCco1X6h4z iKH8E8975z1S8UYyfIgx5SNQyvjBGPSZ+JIb1EVC1j0mg1Y8jhVPNVHmLWWYQxgyR7kX lOCDyjMZXoRfzyYdut/56U0I+9B1e0BEfjGoYLfi4QILMdN0EI1qhyKUmyc4aSZAulcp wB3ssIRmxZ84RGGBXkBuM5bGzx2s2kfLmzsRpM/isosTsKY/ilQ6msZCbRYfo3NwhoQV 9ZEe1pMiS45WQxDrFoO4+MZ53sVtUjx81BIGnS0x9uJpN2VK2mraZGTjpR7njbBtkGw6 7Q== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 2s94b6ceyp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 May 2019 17:25:40 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x49HP7wF152264; Thu, 9 May 2019 17:25:40 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3020.oracle.com with ESMTP id 2schvyy7vg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 May 2019 17:25:40 +0000 Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x49HPdhC019240; Thu, 9 May 2019 17:25:39 GMT Received: from aa1-ca-oracle-com.ca.oracle.com (/10.156.75.204) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 May 2019 10:25:39 -0700 From: Ankur Arora To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org Date: Thu, 9 May 2019 10:25:30 -0700 Message-Id: <20190509172540.12398-7-ankur.a.arora@oracle.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190509172540.12398-1-ankur.a.arora@oracle.com> References: <20190509172540.12398-1-ankur.a.arora@oracle.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9252 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=553 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1905090100 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9252 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=585 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1905090100 Subject: [Xen-devel] [RFC PATCH 06/16] x86/xen: add shared_info support to xenhost_t X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: jgross@suse.com, sstabellini@kernel.org, konrad.wilk@oracle.com, ankur.a.arora@oracle.com, pbonzini@redhat.com, boris.ostrovsky@oracle.com, joao.m.martins@oracle.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SFlQRVJWSVNPUl9zaGFyZWRfaW5mbyBpcyB1c2VkIGZvciBpcnEvZXZ0Y2huIGNvbW11bmljYXRp b24gYmV0d2VlbiB0aGUKZ3Vlc3QgYW5kIHRoZSBob3N0LiBBYnN0cmFjdCBvdXQgdGhlIHNldHVw L3Jlc2V0IGluIHhlbmhvc3RfdCBzdWNoIHRoYXQKbmVzdGVkIGNvbmZpZ3VyYXRpb25zIGNhbiB1 c2UgYm90aCB4ZW5ob3N0cyBzaW11bHRhbmVvdXNseS4KCkluIGFkZGl0aW9uIHRvIGlycS9ldnRj aG4gY29tbXVuaWNhdGlvbiwgc2hhcmVkX2luZm8gaXMgYWxzbyB1c2VkIGZvcgpwdmNsb2NrIGFu ZCBwMm0gcmVsYXRlZCBzdGF0ZS4gRm9yIGJvdGggb2YgdGhvc2UsIHJlbW90ZSB4ZW5ob3N0IGlz IG5vdApvZiBpbnRlcmVzdCBzbyB3ZSBvbmx5IHVzZSB0aGUgZGVmYXVsdCB4ZW5ob3N0LgoKU2ln bmVkLW9mZi1ieTogQW5rdXIgQXJvcmEgPGFua3VyLmEuYXJvcmFAb3JhY2xlLmNvbT4KLS0tCiBh cmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJ2aXNvci5oIHwgIDEgLQogYXJjaC94ODYveGVu L2VubGlnaHRlbi5jICAgICAgICAgICAgICB8IDEwICsrLS0tLS0KIGFyY2gveDg2L3hlbi9lbmxp Z2h0ZW5faHZtLmMgICAgICAgICAgfCAzOCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogYXJj aC94ODYveGVuL2VubGlnaHRlbl9wdi5jICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKyst LS0KIGFyY2gveDg2L3hlbi9wMm0uYyAgICAgICAgICAgICAgICAgICAgfCAyNCArKysrKysrKy0t LS0tLS0tLQogYXJjaC94ODYveGVuL3N1c3BlbmRfaHZtLmMgICAgICAgICAgICB8ICA2ICsrKyst CiBhcmNoL3g4Ni94ZW4vc3VzcGVuZF9wdi5jICAgICAgICAgICAgIHwgMTQgKysrKystLS0tLQog YXJjaC94ODYveGVuL3RpbWUuYyAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogYXJjaC94ODYv eGVuL3hlbi1vcHMuaCAgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL3g4Ni94ZW4veGVuaG9z dC5jICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKystCiBkcml2ZXJzL3hlbi9ldmVudHMvZXZl bnRzXzJsLmMgICAgICAgIHwgMTYgKysrKystLS0tLS0KIGluY2x1ZGUveGVuL3hlbmhvc3QuaCAg ICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEyIGZpbGVz IGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJ2aXNvci5oIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20veGVuL2h5cGVydmlzb3IuaAppbmRleCA2YzRjZGNkZjk5N2QuLjNlNmJkNDU1ZmJkMCAx MDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2h5cGVydmlzb3IuaAorKysgYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJ2aXNvci5oCkBAIC0zMyw3ICszMyw2IEBACiAj aWZuZGVmIF9BU01fWDg2X1hFTl9IWVBFUlZJU09SX0gKICNkZWZpbmUgX0FTTV9YODZfWEVOX0hZ UEVSVklTT1JfSAogCi1leHRlcm4gc3RydWN0IHNoYXJlZF9pbmZvICpIWVBFUlZJU09SX3NoYXJl ZF9pbmZvOwogZXh0ZXJuIHN0cnVjdCBzdGFydF9pbmZvICp4ZW5fc3RhcnRfaW5mbzsKIAogI2lu Y2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0 ZW4uYyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYwppbmRleCBmODhiYjE0ZGEzZjIuLjIwZTBk ZTg0NDQ0MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jCisrKyBiL2FyY2gv eDg2L3hlbi9lbmxpZ2h0ZW4uYwpAQCAtNzIsMTIgKzcyLDYgQEAgRVhQT1JUX1NZTUJPTF9HUEwo eGVuX2hhdmVfdmVjdG9yX2NhbGxiYWNrKTsKIHVpbnQzMl90IHhlbl9zdGFydF9mbGFncyBfX2F0 dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YSIpKSkgPSAwOwogRVhQT1JUX1NZTUJPTCh4ZW5fc3Rh cnRfZmxhZ3MpOwogCi0vKgotICogUG9pbnQgYXQgc29tZSBlbXB0eSBtZW1vcnkgdG8gc3RhcnQg d2l0aC4gV2UgbWFwIHRoZSByZWFsIHNoYXJlZF9pbmZvCi0gKiBwYWdlIGFzIHNvb24gYXMgZml4 bWFwIGlzIHVwIGFuZCBydW5uaW5nLgotICovCi1zdHJ1Y3Qgc2hhcmVkX2luZm8gKkhZUEVSVklT T1Jfc2hhcmVkX2luZm8gPSAmeGVuX2R1bW15X3NoYXJlZF9pbmZvOwotCiAvKgogICogRmxhZyB0 byBkZXRlcm1pbmUgd2hldGhlciB2Y3B1IGluZm8gcGxhY2VtZW50IGlzIGF2YWlsYWJsZSBvbiBh bGwKICAqIFZDUFVzLiAgV2UgYXNzdW1lIGl0IGlzIHRvIHN0YXJ0IHdpdGgsIGFuZCB0aGVuIHNl dCBpdCB0byB6ZXJvIG9uCkBAIC0xODcsNyArMTgxLDcgQEAgdm9pZCB4ZW5fdmNwdV9pbmZvX3Jl c2V0KGludCBjcHUpCiB7CiAJaWYgKHhlbl92Y3B1X25yKGNwdSkgPCBNQVhfVklSVF9DUFVTKSB7 CiAJCXBlcl9jcHUoeGVuX3ZjcHUsIGNwdSkgPQotCQkJJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8t PnZjcHVfaW5mb1t4ZW5fdmNwdV9ucihjcHUpXTsKKwkJCSZ4aF9kZWZhdWx0LT5IWVBFUlZJU09S X3NoYXJlZF9pbmZvLT52Y3B1X2luZm9beGVuX3ZjcHVfbnIoY3B1KV07CiAJfSBlbHNlIHsKIAkJ LyogU2V0IHRvIE5VTEwgc28gdGhhdCBpZiBzb21lYm9keSBhY2Nlc3NlcyBpdCB3ZSBnZXQgYW4g T09QUyAqLwogCQlwZXJfY3B1KHhlbl92Y3B1LCBjcHUpID0gTlVMTDsKQEAgLTIwMCw3ICsxOTQs NyBAQCBpbnQgeGVuX3ZjcHVfc2V0dXAoaW50IGNwdSkKIAlpbnQgZXJyOwogCXN0cnVjdCB2Y3B1 X2luZm8gKnZjcHVwOwogCi0JQlVHX09OKEhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJnhlbl9k dW1teV9zaGFyZWRfaW5mbyk7CisJQlVHX09OKHhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVk X2luZm8gPT0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbyk7CiAKIAkvKgogCSAqIFRoaXMgcGF0aCBp cyBjYWxsZWQgb24gUFZIVk0gYXQgYm9vdHVwICh4ZW5faHZtX3NtcF9wcmVwYXJlX2Jvb3RfY3B1 KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbl9odm0uYyBiL2FyY2gveDg2L3hl bi9lbmxpZ2h0ZW5faHZtLmMKaW5kZXggYTExOGI2MWExYThhLi4wZTUzMzYzZjlkMWYgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW5faHZtLmMKKysrIGIvYXJjaC94ODYveGVuL2Vu bGlnaHRlbl9odm0uYwpAQCAtMjYsMjEgKzI2LDI1IEBACiAjaW5jbHVkZSAibW11LmgiCiAjaW5j bHVkZSAic21wLmgiCiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHNoYXJlZF9pbmZvX3BmbjsKLQot dm9pZCB4ZW5faHZtX2luaXRfc2hhcmVkX2luZm8odm9pZCkKK3N0YXRpYyB2b2lkIHhlbl9odm1f aW5pdF9zaGFyZWRfaW5mbyh4ZW5ob3N0X3QgKnhoKQogewogCXN0cnVjdCB4ZW5fYWRkX3RvX3Bo eXNtYXAgeGF0cDsKIAogCXhhdHAuZG9taWQgPSBET01JRF9TRUxGOwogCXhhdHAuaWR4ID0gMDsK IAl4YXRwLnNwYWNlID0gWEVOTUFQU1BBQ0Vfc2hhcmVkX2luZm87Ci0JeGF0cC5ncGZuID0gc2hh cmVkX2luZm9fcGZuOwotCWlmIChIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fYWRkX3RvX3Bo eXNtYXAsICZ4YXRwKSkKKwl4YXRwLmdwZm4gPSB4aC0+c2hhcmVkX2luZm9fcGZuOworCWlmICho eXBlcnZpc29yX21lbW9yeV9vcCh4aCwgWEVOTUVNX2FkZF90b19waHlzbWFwLCAmeGF0cCkpCiAJ CUJVRygpOwogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9zaGFyZWRfaW5mbyh2b2lk KQorc3RhdGljIHZvaWQgeGVuX2h2bV9yZXNldF9zaGFyZWRfaW5mbyh4ZW5ob3N0X3QgKnhoKQor eworCWVhcmx5X21lbXVubWFwKHhoLT5IWVBFUlZJU09SX3NoYXJlZF9pbmZvLCBQQUdFX1NJWkUp OworCXhoLT5IWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gX192YShQRk5fUEhZUyh4aC0+c2hhcmVk X2luZm9fcGZuKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX3NoYXJlZF9pbmZv KHhlbmhvc3RfdCAqeGgpCiB7CiAJdTY0IHBhOwogCkBAIC01OCwxNiArNjIsMTggQEAgc3RhdGlj IHZvaWQgX19pbml0IHJlc2VydmVfc2hhcmVkX2luZm8odm9pZCkKIAkgICAgIHBhICs9IFBBR0Vf U0laRSkKIAkJOwogCi0Jc2hhcmVkX2luZm9fcGZuID0gUEhZU19QRk4ocGEpOworCXhoLT5zaGFy ZWRfaW5mb19wZm4gPSBQSFlTX1BGTihwYSk7CiAKIAltZW1ibG9ja19yZXNlcnZlKHBhLCBQQUdF X1NJWkUpOwotCUhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPSBlYXJseV9tZW1yZW1hcChwYSwgUEFH RV9TSVpFKTsKKwl4aC0+SFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9IGVhcmx5X21lbXJlbWFwKHBh LCBQQUdFX1NJWkUpOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2h2bV9pbml0X21lbV9t YXBwaW5nKHZvaWQpCiB7Ci0JZWFybHlfbWVtdW5tYXAoSFlQRVJWSVNPUl9zaGFyZWRfaW5mbywg UEFHRV9TSVpFKTsKLQlIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gX192YShQRk5fUEhZUyhzaGFy ZWRfaW5mb19wZm4pKTsKKwl4ZW5ob3N0X3QgKip4aDsKKworCWZvcl9lYWNoX3hlbmhvc3QoeGgp CisJCXhlbmhvc3RfcmVzZXRfc2hhcmVkX2luZm8oKnhoKTsKIAogCS8qCiAJICogVGhlIHZpcnR1 YWwgYWRkcmVzcyBvZiB0aGUgc2hhcmVkX2luZm8gcGFnZSBoYXMgY2hhbmdlZCwgc28KQEAgLTc5 LDYgKzg1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHhlbl9odm1faW5pdF9tZW1fbWFwcGluZyh2 b2lkKQogCSAqCiAJICogSXQgaXMsIGluIGFueSBjYXNlLCBiYWQgdG8gaGF2ZSBhIHN0YWxlIHZj cHVfaW5mbyBwb2ludGVyCiAJICogc28gcmVzZXQgaXQgbm93LgorCSAqIEZvciBub3csIHRoaXMg dXNlcyB4aF9kZWZhdWx0IGltcGxpY3RseS4KIAkgKi8KIAl4ZW5fdmNwdV9pbmZvX3Jlc2V0KDAp OwogfQpAQCAtOTksNiArMTA2LDggQEAgdm9pZCB4ZW5faHZtX3NldHVwX2h5cGVyY2FsbF9wYWdl KHhlbmhvc3RfdCAqeGgpCiB4ZW5ob3N0X29wc190IHhoX2h2bV9vcHMgPSB7CiAJLmNwdWlkX2Jh c2UgPSB4ZW5fcHZfY3B1aWRfYmFzZSwKIAkuc2V0dXBfaHlwZXJjYWxsX3BhZ2UgPSB4ZW5faHZt X3NldHVwX2h5cGVyY2FsbF9wYWdlLAorCS5zZXR1cF9zaGFyZWRfaW5mbyA9IHhlbl9odm1faW5p dF9zaGFyZWRfaW5mbywKKwkucmVzZXRfc2hhcmVkX2luZm8gPSB4ZW5faHZtX3Jlc2V0X3NoYXJl ZF9pbmZvLAogfTsKIAogeGVuaG9zdF9vcHNfdCB4aF9odm1fbmVzdGVkX29wcyA9IHsKQEAgLTIw NCw2ICsyMTMsOCBAQCBzdGF0aWMgaW50IHhlbl9jcHVfZGVhZF9odm0odW5zaWduZWQgaW50IGNw dSkKIAogc3RhdGljIHZvaWQgX19pbml0IHhlbl9odm1fZ3Vlc3RfaW5pdCh2b2lkKQogeworCXhl bmhvc3RfdCAqKnhoOworCiAJaWYgKHhlbl9wdl9kb21haW4oKSkKIAkJcmV0dXJuOwogCS8qCkBA IC0yMTUsMTMgKzIyNiwxNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2h2bV9ndWVzdF9pbml0 KHZvaWQpCiAKIAlpbml0X2h2bV9wdl9pbmZvKCk7CiAKLQlyZXNlcnZlX3NoYXJlZF9pbmZvKCk7 Ci0JeGVuX2h2bV9pbml0X3NoYXJlZF9pbmZvKCk7CisJZm9yX2VhY2hfeGVuaG9zdCh4aCkgewor CQlyZXNlcnZlX3NoYXJlZF9pbmZvKCp4aCk7CisJCXhlbmhvc3Rfc2V0dXBfc2hhcmVkX2luZm8o KnhoKTsKKwl9CiAKIAkvKgogCSAqIHhlbl92Y3B1IGlzIGEgcG9pbnRlciB0byB0aGUgdmNwdV9p bmZvIHN0cnVjdCBpbiB0aGUgc2hhcmVkX2luZm8KIAkgKiBwYWdlLCB3ZSB1c2UgaXQgaW4gdGhl IGV2ZW50IGNoYW5uZWwgdXBjYWxsIGFuZCBpbiBzb21lIHB2Y2xvY2sKIAkgKiByZWxhdGVkIGZ1 bmN0aW9ucy4KKwkgKiBGb3Igbm93LCB0aGlzIHVzZXMgeGhfZGVmYXVsdCBpbXBsaWN0bHkuCiAJ ICovCiAJeGVuX3ZjcHVfaW5mb19yZXNldCgwKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVu L2VubGlnaHRlbl9wdi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jCmluZGV4IDQ4NDk2 OGZmMTZhNC4uMWE5ZWRlZDRiNzZiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVu X3B2LmMKKysrIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jCkBAIC0xMjIsMTIgKzEyMiwx NSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2Jhbm5lcih2b2lkKQogCiBzdGF0aWMgdm9pZCBf X2luaXQgeGVuX3B2X2luaXRfcGxhdGZvcm0odm9pZCkKIHsKKwl4ZW5ob3N0X3QgKip4aDsKKwog CXBvcHVsYXRlX2V4dHJhX3B0ZShmaXhfdG9fdmlydChGSVhfUEFSQVZJUlRfQk9PVE1BUCkpOwog Ci0Jc2V0X2ZpeG1hcChGSVhfUEFSQVZJUlRfQk9PVE1BUCwgeGVuX3N0YXJ0X2luZm8tPnNoYXJl ZF9pbmZvKTsKLQlIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gKHZvaWQgKilmaXhfdG9fdmlydChG SVhfUEFSQVZJUlRfQk9PVE1BUCk7CisJZm9yX2VhY2hfeGVuaG9zdCh4aCkKKwkJeGVuaG9zdF9z ZXR1cF9zaGFyZWRfaW5mbygqeGgpOwogCiAJLyogeGVuIGNsb2NrIHVzZXMgcGVyLWNwdSB2Y3B1 X2luZm8sIG5lZWQgdG8gaW5pdCBpdCBmb3IgYm9vdCBjcHUgKi8KKwkvKiBGb3Igbm93IHRoaXMg dXNlcyB4aF9kZWZhdWx0IGltcGxpY2l0bHkuICovCiAJeGVuX3ZjcHVfaW5mb19yZXNldCgwKTsK IAogCS8qIHB2Y2xvY2sgaXMgaW4gc2hhcmVkIGluZm8gYXJlYSAqLwpAQCAtMTEwOSwxMCArMTEx MiwxMCBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciB4ZW5fZ2V0X25taV9yZWFzb24odm9pZCkKIAog CS8qIENvbnN0cnVjdCBhIHZhbHVlIHdoaWNoIGxvb2tzIGxpa2UgaXQgY2FtZSBmcm9tIHBvcnQg MHg2MS4gKi8KIAlpZiAodGVzdF9iaXQoX1hFTl9OTUlSRUFTT05faW9fZXJyb3IsCi0JCSAgICAg JkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gubm1pX3JlYXNvbikpCisJCSAgICAgJnhoX2Rl ZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gubm1pX3JlYXNvbikpCiAJCXJlYXNv biB8PSBOTUlfUkVBU09OX0lPQ0hLOwogCWlmICh0ZXN0X2JpdChfWEVOX05NSVJFQVNPTl9wY2lf c2VyciwKLQkJICAgICAmSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5ubWlfcmVhc29uKSkK KwkJICAgICAmeGhfZGVmYXVsdC0+SFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5ubWlfcmVh c29uKSkKIAkJcmVhc29uIHw9IE5NSV9SRUFTT05fU0VSUjsKIAogCXJldHVybiByZWFzb247CkBA IC0xMjA1LDEwICsxMjA4LDI3IEBAIHN0YXRpYyB2b2lkIHhlbl9wdl9zZXR1cF9oeXBlcmNhbGxf cGFnZSh4ZW5ob3N0X3QgKnhoKQogCXhoLT5oeXBlcmNhbGxfcGFnZSA9IHhlbl9oeXBlcmNhbGxf cGFnZTsKIH0KIAorc3RhdGljIHZvaWQgeGVuX3B2X3NldHVwX3NoYXJlZF9pbmZvKHhlbmhvc3Rf dCAqeGgpCit7CisJc2V0X2ZpeG1hcChGSVhfUEFSQVZJUlRfQk9PVE1BUCwgeGVuX3N0YXJ0X2lu Zm8tPnNoYXJlZF9pbmZvKTsKKwl4aC0+SFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9ICh2b2lkICop Zml4X3RvX3ZpcnQoRklYX1BBUkFWSVJUX0JPT1RNQVApOworfQorCitzdGF0aWMgdm9pZCB4ZW5f cHZfcmVzZXRfc2hhcmVkX2luZm8oeGVuaG9zdF90ICp4aCkKK3sKKwl4aC0+SFlQRVJWSVNPUl9z aGFyZWRfaW5mbyA9ICZ4ZW5fZHVtbXlfc2hhcmVkX2luZm87CisJaWYgKGh5cGVydmlzb3JfdXBk YXRlX3ZhX21hcHBpbmcoeGgsIGZpeF90b192aXJ0KEZJWF9QQVJBVklSVF9CT09UTUFQKSwKKwkJ CQkJCSBfX3B0ZV9tYSgwKSwgMCkpCisJCUJVRygpOworfQorCiB4ZW5ob3N0X29wc190IHhoX3B2 X29wcyA9IHsKIAkuY3B1aWRfYmFzZSA9IHhlbl9wdl9jcHVpZF9iYXNlLAogCiAJLnNldHVwX2h5 cGVyY2FsbF9wYWdlID0geGVuX3B2X3NldHVwX2h5cGVyY2FsbF9wYWdlLAorCisJLnNldHVwX3No YXJlZF9pbmZvID0geGVuX3B2X3NldHVwX3NoYXJlZF9pbmZvLAorCS5yZXNldF9zaGFyZWRfaW5m byA9IHhlbl9wdl9yZXNldF9zaGFyZWRfaW5mbywKIH07CiAKIHhlbmhvc3Rfb3BzX3QgeGhfcHZf bmVzdGVkX29wcyA9IHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9wMm0uYyBiL2FyY2gveDg2 L3hlbi9wMm0uYwppbmRleCAwNTVlMzdlNDM1NDEuLjgyMDBhOTU4MjI0NiAxMDA2NDQKLS0tIGEv YXJjaC94ODYveGVuL3AybS5jCisrKyBiL2FyY2gveDg2L3hlbi9wMm0uYwpAQCAtMjcwLDE3ICsy NzAsMTcgQEAgdm9pZCBfX3JlZiB4ZW5fYnVpbGRfbWZuX2xpc3RfbGlzdCh2b2lkKQogCiB2b2lk IHhlbl9zZXR1cF9tZm5fbGlzdF9saXN0KHZvaWQpCiB7Ci0JQlVHX09OKEhZUEVSVklTT1Jfc2hh cmVkX2luZm8gPT0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbyk7CisJQlVHX09OKHhoX2RlZmF1bHQt PkhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbyk7CiAKIAlp ZiAoeGVuX3N0YXJ0X2luZm8tPmZsYWdzICYgU0lGX1ZJUlRfUDJNXzRUT09MUykKLQkJSFlQRVJW SVNPUl9zaGFyZWRfaW5mby0+YXJjaC5wZm5fdG9fbWZuX2ZyYW1lX2xpc3RfbGlzdCA9IH4wVUw7 CisJCXhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gucGZuX3RvX21mbl9m cmFtZV9saXN0X2xpc3QgPSB+MFVMOwogCWVsc2UKLQkJSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+ YXJjaC5wZm5fdG9fbWZuX2ZyYW1lX2xpc3RfbGlzdCA9CisJCXhoX2RlZmF1bHQtPkhZUEVSVklT T1Jfc2hhcmVkX2luZm8tPmFyY2gucGZuX3RvX21mbl9mcmFtZV9saXN0X2xpc3QgPQogCQkJdmly dF90b19tZm4ocDJtX3RvcF9tZm4pOwotCUhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gubWF4 X3BmbiA9IHhlbl9wMm1fbGFzdF9wZm47Ci0JSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5w Mm1fZ2VuZXJhdGlvbiA9IDA7Ci0JSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5wMm1fdmFk ZHIgPSAodW5zaWduZWQgbG9uZyl4ZW5fcDJtX2FkZHI7Ci0JSFlQRVJWSVNPUl9zaGFyZWRfaW5m by0+YXJjaC5wMm1fY3IzID0KKwl4aF9kZWZhdWx0LT5IWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5h cmNoLm1heF9wZm4gPSB4ZW5fcDJtX2xhc3RfcGZuOworCXhoX2RlZmF1bHQtPkhZUEVSVklTT1Jf c2hhcmVkX2luZm8tPmFyY2gucDJtX2dlbmVyYXRpb24gPSAwOworCXhoX2RlZmF1bHQtPkhZUEVS VklTT1Jfc2hhcmVkX2luZm8tPmFyY2gucDJtX3ZhZGRyID0gKHVuc2lnbmVkIGxvbmcpeGVuX3Ay bV9hZGRyOworCXhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gucDJtX2Ny MyA9CiAJCXhlbl9wZm5fdG9fY3IzKHZpcnRfdG9fbWZuKHN3YXBwZXJfcGdfZGlyKSk7CiB9CiAK QEAgLTQ5NiwxMiArNDk2LDEyIEBAIHN0YXRpYyBwdGVfdCAqYWxsb2NfcDJtX3BtZCh1bnNpZ25l ZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVfcGcpCiAKIAkJcHRlY2hrID0gbG9va3VwX2FkZHJlc3Mo dmFkZHIsICZsZXZlbCk7CiAJCWlmIChwdGVjaGsgPT0gcHRlX3BnKSB7Ci0JCQlIWVBFUlZJU09S X3NoYXJlZF9pbmZvLT5hcmNoLnAybV9nZW5lcmF0aW9uKys7CisJCQl4aF9kZWZhdWx0LT5IWVBF UlZJU09SX3NoYXJlZF9pbmZvLT5hcmNoLnAybV9nZW5lcmF0aW9uKys7CiAJCQl3bWIoKTsgLyog VG9vbHMgYXJlIHN5bmNocm9uaXppbmcgdmlhIHAybV9nZW5lcmF0aW9uLiAqLwogCQkJc2V0X3Bt ZChwbWRwLAogCQkJCV9fcG1kKF9fcGEocHRlX25ld3BnW2ldKSB8IF9LRVJOUEdfVEFCTEUpKTsK IAkJCXdtYigpOyAvKiBUb29scyBhcmUgc3luY2hyb25pemluZyB2aWEgcDJtX2dlbmVyYXRpb24u ICovCi0JCQlIWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5hcmNoLnAybV9nZW5lcmF0aW9uKys7CisJ CQl4aF9kZWZhdWx0LT5IWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5hcmNoLnAybV9nZW5lcmF0aW9u Kys7CiAJCQlwdGVfbmV3cGdbaV0gPSBOVUxMOwogCQl9CiAKQEAgLTU5NywxMiArNTk3LDEyIEBA IGludCB4ZW5fYWxsb2NfcDJtX2VudHJ5KHVuc2lnbmVkIGxvbmcgcGZuKQogCQlzcGluX2xvY2tf aXJxc2F2ZSgmcDJtX3VwZGF0ZV9sb2NrLCBmbGFncyk7CiAKIAkJaWYgKHB0ZV9wZm4oKnB0ZXAp ID09IHAybV9wZm4pIHsKLQkJCUhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gucDJtX2dlbmVy YXRpb24rKzsKKwkJCXhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPmFyY2gucDJt X2dlbmVyYXRpb24rKzsKIAkJCXdtYigpOyAvKiBUb29scyBhcmUgc3luY2hyb25pemluZyB2aWEg cDJtX2dlbmVyYXRpb24uICovCiAJCQlzZXRfcHRlKHB0ZXAsCiAJCQkJcGZuX3B0ZShQRk5fRE9X TihfX3BhKHAybSkpLCBQQUdFX0tFUk5FTCkpOwogCQkJd21iKCk7IC8qIFRvb2xzIGFyZSBzeW5j aHJvbml6aW5nIHZpYSBwMm1fZ2VuZXJhdGlvbi4gKi8KLQkJCUhZUEVSVklTT1Jfc2hhcmVkX2lu Zm8tPmFyY2gucDJtX2dlbmVyYXRpb24rKzsKKwkJCXhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hh cmVkX2luZm8tPmFyY2gucDJtX2dlbmVyYXRpb24rKzsKIAkJCWlmIChtaWRfbWZuKQogCQkJCW1p ZF9tZm5bcDJtX21pZF9pbmRleChwZm4pXSA9IHZpcnRfdG9fbWZuKHAybSk7CiAJCQlwMm0gPSBO VUxMOwpAQCAtNjE3LDcgKzYxNyw3IEBAIGludCB4ZW5fYWxsb2NfcDJtX2VudHJ5KHVuc2lnbmVk IGxvbmcgcGZuKQogCS8qIEV4cGFuZGVkIHRoZSBwMm0/ICovCiAJaWYgKHBmbiA+IHhlbl9wMm1f bGFzdF9wZm4pIHsKIAkJeGVuX3AybV9sYXN0X3BmbiA9IHBmbjsKLQkJSFlQRVJWSVNPUl9zaGFy ZWRfaW5mby0+YXJjaC5tYXhfcGZuID0geGVuX3AybV9sYXN0X3BmbjsKKwkJeGhfZGVmYXVsdC0+ SFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5tYXhfcGZuID0geGVuX3AybV9sYXN0X3BmbjsK IAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zdXNwZW5kX2h2bS5j IGIvYXJjaC94ODYveGVuL3N1c3BlbmRfaHZtLmMKaW5kZXggZTY2NmI2MTRjZjZkLi5jYzlhMDE2 Mzg0NWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9zdXNwZW5kX2h2bS5jCisrKyBiL2FyY2gv eDg2L3hlbi9zdXNwZW5kX2h2bS5jCkBAIC0yLDYgKzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CiAKICNpbmNsdWRlIDx4ZW4veGVuLmg+CisjaW5jbHVkZSA8eGVuL3hlbmhvc3QuaD4K ICNpbmNsdWRlIDx4ZW4vZmVhdHVyZXMuaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL2ZlYXR1 cmVzLmg+CiAKQEAgLTEwLDcgKzExLDEwIEBACiB2b2lkIHhlbl9odm1fcG9zdF9zdXNwZW5kKGlu dCBzdXNwZW5kX2NhbmNlbGxlZCkKIHsKIAlpZiAoIXN1c3BlbmRfY2FuY2VsbGVkKSB7Ci0JCXhl bl9odm1faW5pdF9zaGFyZWRfaW5mbygpOworCQl4ZW5ob3N0X3QgKip4aDsKKworCQlmb3JfZWFj aF94ZW5ob3N0KHhoKQorCQkJeGVuaG9zdF9zZXR1cF9zaGFyZWRfaW5mbygqeGgpOwogCQl4ZW5f dmNwdV9yZXN0b3JlKCk7CiAJfQogCXhlbl9jYWxsYmFja192ZWN0b3IoKTsKZGlmZiAtLWdpdCBh L2FyY2gveDg2L3hlbi9zdXNwZW5kX3B2LmMgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZF9wdi5jCmlu ZGV4IDgzMDNiNThjNzlhOS4uODdhZjBjMGNjNjZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4v c3VzcGVuZF9wdi5jCisrKyBiL2FyY2gveDg2L3hlbi9zdXNwZW5kX3B2LmMKQEAgLTEwLDYgKzEw LDggQEAKIAogdm9pZCB4ZW5fcHZfcHJlX3N1c3BlbmQodm9pZCkKIHsKKwl4ZW5ob3N0X3QgKip4 aDsKKwogCXhlbl9tbV9waW5fYWxsKCk7CiAKIAl4ZW5fc3RhcnRfaW5mby0+c3RvcmVfbWZuID0g bWZuX3RvX3Bmbih4ZW5fc3RhcnRfaW5mby0+c3RvcmVfbWZuKTsKQEAgLTE4LDE3ICsyMCwxNyBA QCB2b2lkIHhlbl9wdl9wcmVfc3VzcGVuZCh2b2lkKQogCiAJQlVHX09OKCFpcnFzX2Rpc2FibGVk KCkpOwogCi0JSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9ICZ4ZW5fZHVtbXlfc2hhcmVkX2luZm87 Ci0JaWYgKEhZUEVSVklTT1JfdXBkYXRlX3ZhX21hcHBpbmcoZml4X3RvX3ZpcnQoRklYX1BBUkFW SVJUX0JPT1RNQVApLAotCQkJCQkgX19wdGVfbWEoMCksIDApKQotCQlCVUcoKTsKKwlmb3JfZWFj aF94ZW5ob3N0KHhoKQorCQl4ZW5ob3N0X3Jlc2V0X3NoYXJlZF9pbmZvKCp4aCk7CiB9CiAKIHZv aWQgeGVuX3B2X3Bvc3Rfc3VzcGVuZChpbnQgc3VzcGVuZF9jYW5jZWxsZWQpCiB7CisJeGVuaG9z dF90ICoqeGg7CisKIAl4ZW5fYnVpbGRfbWZuX2xpc3RfbGlzdCgpOwotCXNldF9maXhtYXAoRklY X1BBUkFWSVJUX0JPT1RNQVAsIHhlbl9zdGFydF9pbmZvLT5zaGFyZWRfaW5mbyk7Ci0JSFlQRVJW SVNPUl9zaGFyZWRfaW5mbyA9ICh2b2lkICopZml4X3RvX3ZpcnQoRklYX1BBUkFWSVJUX0JPT1RN QVApOworCWZvcl9lYWNoX3hlbmhvc3QoeGgpCisJCXhlbmhvc3Rfc2V0dXBfc2hhcmVkX2luZm8o KnhoKTsKIAl4ZW5fc2V0dXBfbWZuX2xpc3RfbGlzdCgpOwogCiAJaWYgKHN1c3BlbmRfY2FuY2Vs bGVkKSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vdGltZS5jIGIvYXJjaC94ODYveGVuL3Rp bWUuYwppbmRleCA2ZTI5Nzk0NTczYjcuLmQ0YmIxZjhiNGY1OCAxMDA2NDQKLS0tIGEvYXJjaC94 ODYveGVuL3RpbWUuYworKysgYi9hcmNoL3g4Ni94ZW4vdGltZS5jCkBAIC0zNyw3ICszNyw3IEBA IHN0YXRpYyB1NjQgeGVuX3NjaGVkX2Nsb2NrX29mZnNldCBfX3JlYWRfbW9zdGx5Owogc3RhdGlj IHVuc2lnbmVkIGxvbmcgeGVuX3RzY19raHoodm9pZCkKIHsKIAlzdHJ1Y3QgcHZjbG9ja192Y3B1 X3RpbWVfaW5mbyAqaW5mbyA9Ci0JCSZIWVBFUlZJU09SX3NoYXJlZF9pbmZvLT52Y3B1X2luZm9b MF0udGltZTsKKwkJJnhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5m b1swXS50aW1lOwogCiAJcmV0dXJuIHB2Y2xvY2tfdHNjX2toeihpbmZvKTsKIH0KQEAgLTY2LDcg KzY2LDcgQEAgc3RhdGljIHU2NCB4ZW5fc2NoZWRfY2xvY2sodm9pZCkKIAogc3RhdGljIHZvaWQg eGVuX3JlYWRfd2FsbGNsb2NrKHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKIHsKLQlzdHJ1Y3Qgc2hh cmVkX2luZm8gKnMgPSBIWVBFUlZJU09SX3NoYXJlZF9pbmZvOworCXN0cnVjdCBzaGFyZWRfaW5m byAqcyA9IHhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm87CiAJc3RydWN0IHB2Y2xv Y2tfd2FsbF9jbG9jayAqd2FsbF9jbG9jayA9ICYocy0+d2MpOwogICAgICAgICBzdHJ1Y3QgcHZj bG9ja192Y3B1X3RpbWVfaW5mbyAqdmNwdV90aW1lOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94 ZW4veGVuLW9wcy5oIGIvYXJjaC94ODYveGVuL3hlbi1vcHMuaAppbmRleCAwZTYwYmQ5MTg2OTUu LjUwODVjZTg4YThkNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL3hlbi1vcHMuaAorKysgYi9h cmNoL3g4Ni94ZW4veGVuLW9wcy5oCkBAIC0yOCw3ICsyOCw2IEBAIERFQ0xBUkVfUEVSX0NQVSh1 bnNpZ25lZCBsb25nLCB4ZW5fY3VycmVudF9jcjMpOwogCiBleHRlcm4gc3RydWN0IHN0YXJ0X2lu Zm8gKnhlbl9zdGFydF9pbmZvOwogZXh0ZXJuIHN0cnVjdCBzaGFyZWRfaW5mbyB4ZW5fZHVtbXlf c2hhcmVkX2luZm87Ci1leHRlcm4gc3RydWN0IHNoYXJlZF9pbmZvICpIWVBFUlZJU09SX3NoYXJl ZF9pbmZvOwogCiB2b2lkIHhlbl9zZXR1cF9tZm5fbGlzdF9saXN0KHZvaWQpOwogdm9pZCB4ZW5f YnVpbGRfbWZuX2xpc3RfbGlzdCh2b2lkKTsKQEAgLTU2LDcgKzU1LDYgQEAgdm9pZCB4ZW5fZW5h YmxlX3N5c2NhbGwodm9pZCk7CiB2b2lkIHhlbl92Y3B1X3Jlc3RvcmUodm9pZCk7CiAKIHZvaWQg eGVuX2NhbGxiYWNrX3ZlY3Rvcih2b2lkKTsKLXZvaWQgeGVuX2h2bV9pbml0X3NoYXJlZF9pbmZv KHZvaWQpOwogdm9pZCB4ZW5fdW5wbHVnX2VtdWxhdGVkX2RldmljZXModm9pZCk7CiAKIHZvaWQg X19pbml0IHhlbl9idWlsZF9keW5hbWljX3BoeXNfdG9fbWFjaGluZSh2b2lkKTsKZGlmZiAtLWdp dCBhL2FyY2gveDg2L3hlbi94ZW5ob3N0LmMgYi9hcmNoL3g4Ni94ZW4veGVuaG9zdC5jCmluZGV4 IGNhOTBhY2Q3Njg3ZS4uM2Q4Y2NlZjg5ZGNkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4veGVu aG9zdC5jCisrKyBiL2FyY2gveDg2L3hlbi94ZW5ob3N0LmMKQEAgLTIsOCArMiwxOSBAQAogI2lu Y2x1ZGUgPGxpbnV4L2J1Zy5oPgogI2luY2x1ZGUgPHhlbi94ZW4uaD4KICNpbmNsdWRlIDx4ZW4v eGVuaG9zdC5oPgorI2luY2x1ZGUgInhlbi1vcHMuaCIKIAoteGVuaG9zdF90IHhlbmhvc3RzWzJd OworLyoKKyAqIFBvaW50IGF0IHNvbWUgZW1wdHkgbWVtb3J5IHRvIHN0YXJ0IHdpdGguIE9uIFBW LCB3ZSBtYXAgdGhlIHJlYWwgc2hhcmVkX2luZm8KKyAqIHBhZ2UgYXMgc29vbiBhcyBmaXhtYXAg aXMgdXAgYW5kIHJ1bm5pbmcgYW5kIFBWSCogZG9lc24ndCB1c2UgdGhpcy4KKyAqLworeGVuaG9z dF90IHhlbmhvc3RzWzJdID0geworCS8qCisJICogV2Ugc2hvdWxkIHByb2JhYmx5IGhhdmUgdHdv IHNlcGFyYXRlIGR1bW15IHNoYXJlZF9pbmZvIHBhZ2VzLgorCSAqLworCVswXS5IWVBFUlZJU09S X3NoYXJlZF9pbmZvID0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbywKKwlbMV0uSFlQRVJWSVNPUl9z aGFyZWRfaW5mbyA9ICZ4ZW5fZHVtbXlfc2hhcmVkX2luZm8sCit9OwogLyoKICAqIHhoX2RlZmF1 bHQ6IGludGVyZmFjZSB0byB0aGUgcmVndWxhciBoeXBlcnZpc29yLiB4ZW5ob3N0X3R5cGUgaXMg eGVuaG9zdF9yMAogICogb3IgeGVuaG9zdF9yMS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2V2 ZW50cy9ldmVudHNfMmwuYyBiL2RyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNfMmwuYwppbmRleCA4 ZWRlZjUxYzkyZTUuLmYwOWRiZTRlOWMzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vZXZlbnRz L2V2ZW50c18ybC5jCisrKyBiL2RyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNfMmwuYwpAQCAtNTUs MzcgKzU1LDM3IEBAIHN0YXRpYyB2b2lkIGV2dGNobl8ybF9iaW5kX3RvX2NwdShzdHJ1Y3QgaXJx X2luZm8gKmluZm8sIHVuc2lnbmVkIGNwdSkKIAogc3RhdGljIHZvaWQgZXZ0Y2huXzJsX2NsZWFy X3BlbmRpbmcodW5zaWduZWQgcG9ydCkKIHsKLQlzdHJ1Y3Qgc2hhcmVkX2luZm8gKnMgPSBIWVBF UlZJU09SX3NoYXJlZF9pbmZvOworCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9IHhoX2RlZmF1bHQt PkhZUEVSVklTT1Jfc2hhcmVkX2luZm87CiAJc3luY19jbGVhcl9iaXQocG9ydCwgQk0oJnMtPmV2 dGNobl9wZW5kaW5nWzBdKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGV2dGNobl8ybF9zZXRfcGVuZGlu Zyh1bnNpZ25lZCBwb3J0KQogewotCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9IEhZUEVSVklTT1Jf c2hhcmVkX2luZm87CisJc3RydWN0IHNoYXJlZF9pbmZvICpzID0geGhfZGVmYXVsdC0+SFlQRVJW SVNPUl9zaGFyZWRfaW5mbzsKIAlzeW5jX3NldF9iaXQocG9ydCwgQk0oJnMtPmV2dGNobl9wZW5k aW5nWzBdKSk7CiB9CiAKIHN0YXRpYyBib29sIGV2dGNobl8ybF9pc19wZW5kaW5nKHVuc2lnbmVk IHBvcnQpCiB7Ci0Jc3RydWN0IHNoYXJlZF9pbmZvICpzID0gSFlQRVJWSVNPUl9zaGFyZWRfaW5m bzsKKwlzdHJ1Y3Qgc2hhcmVkX2luZm8gKnMgPSB4aF9kZWZhdWx0LT5IWVBFUlZJU09SX3NoYXJl ZF9pbmZvOwogCXJldHVybiBzeW5jX3Rlc3RfYml0KHBvcnQsIEJNKCZzLT5ldnRjaG5fcGVuZGlu Z1swXSkpOwogfQogCiBzdGF0aWMgYm9vbCBldnRjaG5fMmxfdGVzdF9hbmRfc2V0X21hc2sodW5z aWduZWQgcG9ydCkKIHsKLQlzdHJ1Y3Qgc2hhcmVkX2luZm8gKnMgPSBIWVBFUlZJU09SX3NoYXJl ZF9pbmZvOworCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9IHhoX2RlZmF1bHQtPkhZUEVSVklTT1Jf c2hhcmVkX2luZm87CiAJcmV0dXJuIHN5bmNfdGVzdF9hbmRfc2V0X2JpdChwb3J0LCBCTSgmcy0+ ZXZ0Y2huX21hc2tbMF0pKTsKIH0KIAogc3RhdGljIHZvaWQgZXZ0Y2huXzJsX21hc2sodW5zaWdu ZWQgcG9ydCkKIHsKLQlzdHJ1Y3Qgc2hhcmVkX2luZm8gKnMgPSBIWVBFUlZJU09SX3NoYXJlZF9p bmZvOworCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9IHhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hh cmVkX2luZm87CiAJc3luY19zZXRfYml0KHBvcnQsIEJNKCZzLT5ldnRjaG5fbWFza1swXSkpOwog fQogCiBzdGF0aWMgdm9pZCBldnRjaG5fMmxfdW5tYXNrKHVuc2lnbmVkIHBvcnQpCiB7Ci0Jc3Ry dWN0IHNoYXJlZF9pbmZvICpzID0gSFlQRVJWSVNPUl9zaGFyZWRfaW5mbzsKKwlzdHJ1Y3Qgc2hh cmVkX2luZm8gKnMgPSB4aF9kZWZhdWx0LT5IWVBFUlZJU09SX3NoYXJlZF9pbmZvOwogCXVuc2ln bmVkIGludCBjcHUgPSBnZXRfY3B1KCk7CiAJaW50IGRvX2h5cGVyY2FsbCA9IDAsIGV2dGNobl9w ZW5kaW5nID0gMDsKIApAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyB2b2lkIGV2dGNobl8ybF9o YW5kbGVfZXZlbnRzKHVuc2lnbmVkIGNwdSkKIAlpbnQgc3RhcnRfd29yZF9pZHgsIHN0YXJ0X2Jp dF9pZHg7CiAJaW50IHdvcmRfaWR4LCBiaXRfaWR4OwogCWludCBpOwotCXN0cnVjdCBzaGFyZWRf aW5mbyAqcyA9IEhZUEVSVklTT1Jfc2hhcmVkX2luZm87CisJc3RydWN0IHNoYXJlZF9pbmZvICpz ID0geGhfZGVmYXVsdC0+SFlQRVJWSVNPUl9zaGFyZWRfaW5mbzsKIAlzdHJ1Y3QgdmNwdV9pbmZv ICp2Y3B1X2luZm8gPSBfX3RoaXNfY3B1X3JlYWQoeGVuX3ZjcHUpOwogCiAJLyogVGltZXIgaW50 ZXJydXB0IGhhcyBoaWdoZXN0IHByaW9yaXR5LiAqLwpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRp YyB2b2lkIGV2dGNobl8ybF9oYW5kbGVfZXZlbnRzKHVuc2lnbmVkIGNwdSkKIAogaXJxcmV0dXJu X3QgeGVuX2RlYnVnX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7Ci0Jc3RydWN0 IHNoYXJlZF9pbmZvICpzaCA9IEhZUEVSVklTT1Jfc2hhcmVkX2luZm87CisJc3RydWN0IHNoYXJl ZF9pbmZvICpzaCA9IHhoX2RlZmF1bHQtPkhZUEVSVklTT1Jfc2hhcmVkX2luZm87CiAJaW50IGNw dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAl4ZW5fdWxvbmdfdCAqY3B1X2V2dGNobiA9IHBlcl9j cHUoY3B1X2V2dGNobl9tYXNrLCBjcHUpOwogCWludCBpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94 ZW4veGVuaG9zdC5oIGIvaW5jbHVkZS94ZW4veGVuaG9zdC5oCmluZGV4IGRkMWUyYjY0ZjUwZC4u N2MxOWMzNjFkMTZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi94ZW5ob3N0LmgKKysrIGIvaW5j bHVkZS94ZW4veGVuaG9zdC5oCkBAIC04Miw2ICs4MiwxNCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAJ ICogYm91bmNlIGNhbGxiYWNrcyB2aWEgTDEtWGVuLgogCSAqLwogCXU4IGZlYXR1cmVzW1hFTkZF QVRfTlJfU1VCTUFQUyAqIDMyXTsKKworCS8qCisJICogc2hhcmVkLWluZm8gdG8gY29tbXVuaWNh dGUgd2l0aCB0aGlzIHhlbmhvc3QgaW5zdGFuY2UuCisJICovCisJc3RydWN0IHsKKwkJc3RydWN0 IHNoYXJlZF9pbmZvICpIWVBFUlZJU09SX3NoYXJlZF9pbmZvOworCQl1bnNpZ25lZCBsb25nIHNo YXJlZF9pbmZvX3BmbjsKKwl9OwogfSB4ZW5ob3N0X3Q7CiAKIHR5cGVkZWYgc3RydWN0IHhlbmhv c3Rfb3BzIHsKQEAgLTExMSw2ICsxMTksMjYgQEAgdHlwZWRlZiBzdHJ1Y3QgeGVuaG9zdF9vcHMg ewogCSAqICAgIHRvIGRlY2lkZSB3aGljaCBwYXJ0aWN1bGFyIEwxLWd1ZXN0IHdhcyB0aGUgY2Fs bGVyLgogCSAqLwogCXZvaWQgKCpzZXR1cF9oeXBlcmNhbGxfcGFnZSkoeGVuaG9zdF90ICp4ZW5o b3N0KTsKKworCS8qCisJICogc2hhcmVkX2luZm86IG5lZWRlZCBiZWZvcmUgdmNwdS1pbmZvIHNl dHVwLgorCSAqCisJICogTmVlZGVkIGVhcmx5IGJlY2F1c2UgWGVuIG5lZWRzIGl0IGZvciBpcnFf ZGlzYWJsZSgpIGFuZCBzdWNoLgorCSAqIE9uIFBWIGZpcnN0IGEgZHVtbXlfc2hhcmVkX2luZm8g aXMgc2V0dXAgd2hpY2ggZXZlbnR1YWxseSBnZXRzCisJICogc3dpdGNoZWQgdG8gdGhlIHJlYWwg b25lIHNvIHRoaXMgbmVlZHMgdG8gc3VwcG9ydCBzd2l0Y2hpbmcKKwkgKiB4ZW5ob3N0LgorCSAq CisJICogUmVzZXQgZm9yIFBWIGlzIGRvbmUgZGlmZmVyZW50bHkgZnJvbSBIVk0sIHNvIHByb3Zp ZGUgYQorCSAqIHNlcGFyYXRlIGludGVyZmFjZS4KKwkgKgorCSAqICB4ZW5ob3N0X3IwOiBwb2lu dCB4ZW5ob3N0LT5IWVBFUlZJU09SX3NoYXJlZF9pbmZvIHRvIGEKKwkgKiAgICBuZXdseSBhbGxv Y2F0ZWQgc2hhcmVkX2luZm8gcGFnZS4KKwkgKiAgeGVuaG9zdF9yMTogc2ltaWxhciB0byB3aGF0 IHdlIGRvIG5vdy4KKwkgKiAgeGVuaG9zdF9yMjogbmV3IHJlbW90ZSBoeXBlcmNhbGwgdG8gc2V0 dXAgYSBzaGFyZWRfaW5mbyBwYWdlLgorCSAqICAgIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgbm93 IGhhbmRsZSBMMC1YZW4gaXJxL2V2dGNobnMuCisJICovCisJdm9pZCAoKnNldHVwX3NoYXJlZF9p bmZvKSh4ZW5ob3N0X3QgKnhlbmhvc3QpOworCXZvaWQgKCpyZXNldF9zaGFyZWRfaW5mbykoeGVu aG9zdF90ICp4ZW5ob3N0KTsKIH0geGVuaG9zdF9vcHNfdDsKIAogZXh0ZXJuIHhlbmhvc3RfdCAq eGhfZGVmYXVsdCwgKnhoX3JlbW90ZTsKQEAgLTE0Niw0ICsxNzQsMTUgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHhlbmhvc3Rfc2V0dXBfaHlwZXJjYWxsX3BhZ2UoeGVuaG9zdF90ICp4aCkKIAkoeGgt Pm9wcy0+c2V0dXBfaHlwZXJjYWxsX3BhZ2UpKHhoKTsKIH0KIAorCitzdGF0aWMgaW5saW5lIHZv aWQgeGVuaG9zdF9zZXR1cF9zaGFyZWRfaW5mbyh4ZW5ob3N0X3QgKnhoKQoreworCSh4aC0+b3Bz LT5zZXR1cF9zaGFyZWRfaW5mbykoeGgpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuaG9z dF9yZXNldF9zaGFyZWRfaW5mbyh4ZW5ob3N0X3QgKnhoKQoreworCSh4aC0+b3BzLT5yZXNldF9z aGFyZWRfaW5mbykoeGgpOworfQorCiAjZW5kaWYgLyogX19YRU5IT1NUX0ggKi8KLS0gCjIuMjAu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=