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,URIBL_BLOCKED,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 DAEACC04AB3 for ; Thu, 9 May 2019 17:26:03 +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 A44EF21019 for ; Thu, 9 May 2019 17:26:03 +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="wCNbEOUd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A44EF21019 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 1hOmno-0000jV-7I; Thu, 09 May 2019 17:25:52 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOmnm-0000hm-Je for xen-devel@lists.xenproject.org; Thu, 09 May 2019 17:25:50 +0000 X-Inumbo-ID: 7c5c9d97-727f-11e9-8980-bc764e045a96 Received: from userp2120.oracle.com (unknown [156.151.31.85]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 7c5c9d97-727f-11e9-8980-bc764e045a96; Thu, 09 May 2019 17:25:48 +0000 (UTC) Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x49HJSKw169534; Thu, 9 May 2019 17:25:47 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=8eeODQeRuwFmGZ13uOTkhbpPMHGCcBqOBjA3QDlEv1g=; b=wCNbEOUdHJ8UsozLmEVCQ0dJGFhXGSCJArCTfyRrdJaXxGMzvSJ/xRrClddffLN/DWBd C4+I0u/cCKKVqxeIwroqWu+SxbephLrkHR9FLSUAmY+qz7Zc1XrPSTiQFw0B6q8ZgWeK OrZ3Gw9zGCOsu30hyxUiCnFeB6hBxXRisLuj/QNudKRMNajMOl+5WIHAaKePRnW54PXT jg5YYaJBwdaxRr4xdJszyXMebkum3dXhlQQfobGMBDsWQqLz+a/Wb5G5WtZzyqjyEUPQ 0G6lN3j+A1Huc237lTDm+d/x/eOQ+TrynHGDBrSE7ihHlJWZckKbR8iS24vS6hmJagav DQ== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2s94b14e3r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 May 2019 17:25:47 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x49HPhkW086661; Thu, 9 May 2019 17:25:46 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3020.oracle.com with ESMTP id 2s94agwu3f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 May 2019 17:25:46 +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 x49HPjEO019355; Thu, 9 May 2019 17:25:45 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:45 -0700 From: Ankur Arora To: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org Date: Thu, 9 May 2019 10:25:37 -0700 Message-Id: <20190509172540.12398-14-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=2 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 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=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1905090100 Subject: [Xen-devel] [RFC PATCH 13/16] drivers/xen: gnttab, evtchn, xenbus API changes 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" TWVjaGFuaWNhbCBjaGFuZ2VzLCBub3cgbW9zdCBvZiB0aGVzZSBjYWxscyB0YWtlIHhlbmhvc3Rf dCAqCmFzIHBhcmFtZXRlci4KCkNvLWRldmVsb3BlZC1ieTogSm9hbyBNYXJ0aW5zIDxqb2FvLm0u bWFydGluc0BvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmt1ciBBcm9yYSA8YW5rdXIuYS5h cm9yYUBvcmFjbGUuY29tPgotLS0KIGRyaXZlcnMveGVuL2NwdV9ob3RwbHVnLmMgICAgIHwgMTQg KysrKysrLS0tLS0tLQogZHJpdmVycy94ZW4vZ250YWxsb2MuYyAgICAgICAgfCAxMyArKysrKysr Ky0tLS0KIGRyaXZlcnMveGVuL2dudGRldi5jICAgICAgICAgIHwgMTYgKysrKysrKysrKystLS0t CiBkcml2ZXJzL3hlbi9tYW5hZ2UuYyAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL3hlbi9wbGF0Zm9ybS1wY2kuYyAgICB8IDEyICsrKysr KystLS0tLQogZHJpdmVycy94ZW4vc3lzLWh5cGVydmlzb3IuYyAgfCAxMiArKysrKysrKy0tLS0K IGRyaXZlcnMveGVuL3hlbi1iYWxsb29uLmMgICAgIHwgMTAgKysrKysrKy0tLQogZHJpdmVycy94 ZW4veGVuZnMveGVuc3RvcmVkLmMgfCAgNyArKysrLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDczIGlu c2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2Nw dV9ob3RwbHVnLmMgYi9kcml2ZXJzL3hlbi9jcHVfaG90cGx1Zy5jCmluZGV4IGFmZWI5NDQ0NmQz NC4uNGEwNWJjMDI4OTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9jcHVfaG90cGx1Zy5jCisr KyBiL2RyaXZlcnMveGVuL2NwdV9ob3RwbHVnLmMKQEAgLTMxLDEzICszMSwxMyBAQCBzdGF0aWMg dm9pZCBkaXNhYmxlX2hvdHBsdWdfY3B1KGludCBjcHUpCiAJdW5sb2NrX2RldmljZV9ob3RwbHVn KCk7CiB9CiAKLXN0YXRpYyBpbnQgdmNwdV9vbmxpbmUodW5zaWduZWQgaW50IGNwdSkKK3N0YXRp YyBpbnQgdmNwdV9vbmxpbmUoeGVuaG9zdF90ICp4aCwgdW5zaWduZWQgaW50IGNwdSkKIHsKIAlp bnQgZXJyOwogCWNoYXIgZGlyWzE2XSwgc3RhdGVbMTZdOwogCiAJc3ByaW50ZihkaXIsICJjcHUv JXUiLCBjcHUpOwotCWVyciA9IHhlbmJ1c19zY2FuZih4aF9kZWZhdWx0LCBYQlRfTklMLCBkaXIs ICJhdmFpbGFiaWxpdHkiLCAiJTE1cyIsIHN0YXRlKTsKKwllcnIgPSB4ZW5idXNfc2NhbmYoeGgs IFhCVF9OSUwsIGRpciwgImF2YWlsYWJpbGl0eSIsICIlMTVzIiwgc3RhdGUpOwogCWlmIChlcnIg IT0gMSkgewogCQlpZiAoIXhlbl9pbml0aWFsX2RvbWFpbigpKQogCQkJcHJfZXJyKCJVbmFibGUg dG8gcmVhZCBjcHUgc3RhdGVcbiIpOwpAQCAtNTIsMTIgKzUyLDEyIEBAIHN0YXRpYyBpbnQgdmNw dV9vbmxpbmUodW5zaWduZWQgaW50IGNwdSkKIAlwcl9lcnIoInVua25vd24gc3RhdGUoJXMpIG9u IENQVSVkXG4iLCBzdGF0ZSwgY3B1KTsKIAlyZXR1cm4gLUVJTlZBTDsKIH0KLXN0YXRpYyB2b2lk IHZjcHVfaG90cGx1Zyh1bnNpZ25lZCBpbnQgY3B1KQorc3RhdGljIHZvaWQgdmNwdV9ob3RwbHVn KHhlbmhvc3RfdCAqeGgsIHVuc2lnbmVkIGludCBjcHUpCiB7CiAJaWYgKCFjcHVfcG9zc2libGUo Y3B1KSkKIAkJcmV0dXJuOwogCi0Jc3dpdGNoICh2Y3B1X29ubGluZShjcHUpKSB7CisJc3dpdGNo ICh2Y3B1X29ubGluZSh4aCwgY3B1KSkgewogCWNhc2UgMToKIAkJZW5hYmxlX2hvdHBsdWdfY3B1 KGNwdSk7CiAJCWJyZWFrOwpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfdmNw dV9ob3RwbHVnX2V2ZW50KHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLAogCWNwdXN0ciA9IHN0 cnN0cihwYXRoLCAiY3B1LyIpOwogCWlmIChjcHVzdHIgIT0gTlVMTCkgewogCQlzc2NhbmYoY3B1 c3RyLCAiY3B1LyV1IiwgJmNwdSk7Ci0JCXZjcHVfaG90cGx1ZyhjcHUpOworCQl2Y3B1X2hvdHBs dWcod2F0Y2gtPnhoLCBjcHUpOwogCX0KIH0KIApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgaW50 IHNldHVwX2NwdV93YXRjaGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbm90aWZpZXIsCiAJKHZv aWQpcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKHhoX2RlZmF1bHQsICZjcHVfd2F0Y2gpOwogCiAJZm9y X2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotCQlpZiAodmNwdV9vbmxpbmUoY3B1KSA9PSAwKSB7 CisJCWlmICh2Y3B1X29ubGluZShjcHVfd2F0Y2gueGgsIGNwdSkgPT0gMCkgewogCQkJKHZvaWQp Y3B1X2Rvd24oY3B1KTsKIAkJCXNldF9jcHVfcHJlc2VudChjcHUsIGZhbHNlKTsKIAkJfQpAQCAt MTE0LDcgKzExNCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHNldHVwX3ZjcHVfaG90cGx1Z19ldmVu dCh2b2lkKQogI2VuZGlmCiAJCXJldHVybiAtRU5PREVWOwogCi0JcmVnaXN0ZXJfeGVuc3RvcmVf bm90aWZpZXIoJnhzbl9jcHUpOworCXJlZ2lzdGVyX3hlbnN0b3JlX25vdGlmaWVyKHhoX2RlZmF1 bHQsICZ4c25fY3B1KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4v Z250YWxsb2MuYyBiL2RyaXZlcnMveGVuL2dudGFsbG9jLmMKaW5kZXggZTA3ODIzODg2ZmE4Li5h NDkwZTRlOGM4NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2dudGFsbG9jLmMKKysrIGIvZHJp dmVycy94ZW4vZ250YWxsb2MuYwpAQCAtNzksNiArNzksOCBAQCBzdGF0aWMgTElTVF9IRUFEKGdy ZWZfbGlzdCk7CiBzdGF0aWMgREVGSU5FX01VVEVYKGdyZWZfbXV0ZXgpOwogc3RhdGljIGludCBn cmVmX3NpemU7CiAKK3N0YXRpYyB4ZW5ob3N0X3QgKnhoOworCiBzdHJ1Y3Qgbm90aWZ5X2luZm8g ewogCXVpbnQxNl90IHBnb2ZmOjEyOyAgICAvKiBCaXRzIDAtMTE6IE9mZnNldCBvZiB0aGUgYnl0 ZSB0byBjbGVhciAqLwogCXVpbnQxNl90IGZsYWdzOjI7ICAgICAvKiBCaXRzIDEyLTEzOiBVbm1h cCBub3RpZmljYXRpb24gZmxhZ3MgKi8KQEAgLTE0NCw3ICsxNDYsNyBAQCBzdGF0aWMgaW50IGFk ZF9ncmVmcyhzdHJ1Y3QgaW9jdGxfZ250YWxsb2NfYWxsb2NfZ3JlZiAqb3AsCiAJCX0KIAogCQkv KiBHcmFudCBmb3JlaWduIGFjY2VzcyB0byB0aGUgcGFnZS4gKi8KLQkJcmMgPSBnbnR0YWJfZ3Jh bnRfZm9yZWlnbl9hY2Nlc3Mob3AtPmRvbWlkLAorCQlyYyA9IGdudHRhYl9ncmFudF9mb3JlaWdu X2FjY2Vzcyh4aCwgb3AtPmRvbWlkLAogCQkJCQkJIHhlbl9wYWdlX3RvX2dmbihncmVmLT5wYWdl KSwKIAkJCQkJCSByZWFkb25seSk7CiAJCWlmIChyYyA8IDApCkBAIC0xOTYsMTMgKzE5OCwxMyBA QCBzdGF0aWMgdm9pZCBfX2RlbF9ncmVmKHN0cnVjdCBnbnRhbGxvY19ncmVmICpncmVmKQogCWdy ZWYtPm5vdGlmeS5mbGFncyA9IDA7CiAKIAlpZiAoZ3JlZi0+Z3JlZl9pZCkgewotCQlpZiAoZ250 dGFiX3F1ZXJ5X2ZvcmVpZ25fYWNjZXNzKGdyZWYtPmdyZWZfaWQpKQorCQlpZiAoZ250dGFiX3F1 ZXJ5X2ZvcmVpZ25fYWNjZXNzKHhoLCBncmVmLT5ncmVmX2lkKSkKIAkJCXJldHVybjsKIAotCQlp ZiAoIWdudHRhYl9lbmRfZm9yZWlnbl9hY2Nlc3NfcmVmKGdyZWYtPmdyZWZfaWQsIDApKQorCQlp ZiAoIWdudHRhYl9lbmRfZm9yZWlnbl9hY2Nlc3NfcmVmKHhoLCBncmVmLT5ncmVmX2lkLCAwKSkK IAkJCXJldHVybjsKIAotCQlnbnR0YWJfZnJlZV9ncmFudF9yZWZlcmVuY2UoZ3JlZi0+Z3JlZl9p ZCk7CisJCWdudHRhYl9mcmVlX2dyYW50X3JlZmVyZW5jZSh4aCwgZ3JlZi0+Z3JlZl9pZCk7CiAJ fQogCiAJZ3JlZl9zaXplLS07CkBAIC01ODYsNiArNTg4LDkgQEAgc3RhdGljIGludCBfX2luaXQg Z250YWxsb2NfaW5pdCh2b2lkKQogCWlmICgheGVuX2RvbWFpbigpKQogCQlyZXR1cm4gLUVOT0RF VjsKIAorCS8qIExpbWl0IHRvIGRlZmF1bHQgeGVuaG9zdCBmb3Igbm93LiAqLworCXhoID0geGhf ZGVmYXVsdDsKKwogCWVyciA9IG1pc2NfcmVnaXN0ZXIoJmdudGFsbG9jX21pc2NkZXYpOwogCWlm IChlcnIgIT0gMCkgewogCQlwcl9lcnIoIkNvdWxkIG5vdCByZWdpc3RlciBtaXNjIGdudGFsbG9j IGRldmljZVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMv eGVuL2dudGRldi5jCmluZGV4IDBmMGM5NTFjZDViMS4uNDBhNDJhYmUyZGQwIDEwMDY0NAotLS0g YS9kcml2ZXJzL3hlbi9nbnRkZXYuYworKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYuYwpAQCAtNjcs NiArNjcsOCBAQCBzdGF0aWMgYXRvbWljX3QgcGFnZXNfbWFwcGVkID0gQVRPTUlDX0lOSVQoMCk7 CiBzdGF0aWMgaW50IHVzZV9wdGVtb2Q7CiAjZGVmaW5lIHBvcHVsYXRlX2ZyZWVhYmxlX21hcHMg dXNlX3B0ZW1vZAogCitzdGF0aWMgeGVuaG9zdF90ICp4aDsKKwogc3RhdGljIGludCB1bm1hcF9n cmFudF9wYWdlcyhzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwLAogCQkJICAgICBpbnQgb2Zm c2V0LCBpbnQgcGFnZXMpOwogCkBAIC0xMTQsNyArMTE2LDcgQEAgc3RhdGljIHZvaWQgZ250ZGV2 X2ZyZWVfbWFwKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXApCiAJfSBlbHNlCiAjZW5kaWYK IAlpZiAobWFwLT5wYWdlcykKLQkJZ250dGFiX2ZyZWVfcGFnZXMobWFwLT5jb3VudCwgbWFwLT5w YWdlcyk7CisJCWdudHRhYl9mcmVlX3BhZ2VzKHhoLCBtYXAtPmNvdW50LCBtYXAtPnBhZ2VzKTsK IAogI2lmZGVmIENPTkZJR19YRU5fR1JBTlRfRE1BX0FMTE9DCiAJa2ZyZWUobWFwLT5mcmFtZXMp OwpAQCAtMTgzLDcgKzE4NSw3IEBAIHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICpnbnRkZXZfYWxs b2NfbWFwKHN0cnVjdCBnbnRkZXZfcHJpdiAqcHJpdiwgaW50IGNvdW50LAogCQlhZGQtPmRtYV9i dXNfYWRkciA9IGFyZ3MuZGV2X2J1c19hZGRyOwogCX0gZWxzZQogI2VuZGlmCi0JaWYgKGdudHRh Yl9hbGxvY19wYWdlcyhjb3VudCwgYWRkLT5wYWdlcykpCisJaWYgKGdudHRhYl9hbGxvY19wYWdl cyh4aCwgY291bnQsIGFkZC0+cGFnZXMpKQogCQlnb3RvIGVycjsKIAogCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgaSsrKSB7CkBAIC0zMzksNyArMzQxLDcgQEAgaW50IGdudGRldl9tYXBfZ3JhbnRf cGFnZXMoc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1hcCkKIAl9CiAKIAlwcl9kZWJ1ZygibWFw ICVkKyVkXG4iLCBtYXAtPmluZGV4LCBtYXAtPmNvdW50KTsKLQllcnIgPSBnbnR0YWJfbWFwX3Jl ZnMobWFwLT5tYXBfb3BzLCB1c2VfcHRlbW9kID8gbWFwLT5rbWFwX29wcyA6IE5VTEwsCisJZXJy ID0gZ250dGFiX21hcF9yZWZzKHhoLCBtYXAtPm1hcF9vcHMsIHVzZV9wdGVtb2QgPyBtYXAtPmtt YXBfb3BzIDogTlVMTCwKIAkJCW1hcC0+cGFnZXMsIG1hcC0+Y291bnQpOwogCWlmIChlcnIpCiAJ CXJldHVybiBlcnI7CkBAIC0zODUsNiArMzg3LDcgQEAgc3RhdGljIGludCBfX3VubWFwX2dyYW50 X3BhZ2VzKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAsIGludCBvZmZzZXQsCiAJdW5tYXBf ZGF0YS5rdW5tYXBfb3BzID0gdXNlX3B0ZW1vZCA/IG1hcC0+a3VubWFwX29wcyArIG9mZnNldCA6 IE5VTEw7CiAJdW5tYXBfZGF0YS5wYWdlcyA9IG1hcC0+cGFnZXMgKyBvZmZzZXQ7CiAJdW5tYXBf ZGF0YS5jb3VudCA9IHBhZ2VzOworCXVubWFwX2RhdGEueGggPSB4aDsKIAogCWVyciA9IGdudHRh Yl91bm1hcF9yZWZzX3N5bmMoJnVubWFwX2RhdGEpOwogCWlmIChlcnIpCkBAIC04NzcsNyArODgw LDcgQEAgc3RhdGljIGludCBnbnRkZXZfY29weShzdHJ1Y3QgZ250ZGV2X2NvcHlfYmF0Y2ggKmJh dGNoKQogewogCXVuc2lnbmVkIGludCBpOwogCi0JZ250dGFiX2JhdGNoX2NvcHkoYmF0Y2gtPm9w cywgYmF0Y2gtPm5yX29wcyk7CisJZ250dGFiX2JhdGNoX2NvcHkoeGgsIGJhdGNoLT5vcHMsIGJh dGNoLT5ucl9vcHMpOwogCWdudGRldl9wdXRfcGFnZXMoYmF0Y2gpOwogCiAJLyoKQEAgLTEyMTAs OCArMTIxMywxMyBAQCBzdGF0aWMgaW50IF9faW5pdCBnbnRkZXZfaW5pdCh2b2lkKQogCWlmICgh eGVuX2RvbWFpbigpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAorCS8qCisJICogVXNlIGZvciBtYXBw aW5ncyBncmFudHMgcmVsYXRlZCB0byB0aGUgZGVmYXVsdCB4ZW5ob3N0LgorCSAqLworCXhoID0g eGhfZGVmYXVsdDsKIAl1c2VfcHRlbW9kID0gIXhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFu c2xhdGVkX3BoeXNtYXApOwogCisKIAllcnIgPSBtaXNjX3JlZ2lzdGVyKCZnbnRkZXZfbWlzY2Rl dik7CiAJaWYgKGVyciAhPSAwKSB7CiAJCXByX2VycigiQ291bGQgbm90IHJlZ2lzdGVyIGdudGRl diBkZXZpY2VcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vbWFuYWdlLmMgYi9kcml2ZXJz L3hlbi9tYW5hZ2UuYwppbmRleCA5YTY5ZDk1NWRkNWMuLjE2NTVkMGEwMzlmZCAxMDA2NDQKLS0t IGEvZHJpdmVycy94ZW4vbWFuYWdlLmMKKysrIGIvZHJpdmVycy94ZW4vbWFuYWdlLmMKQEAgLTIy NywxNCArMjI3LDE0IEBAIHN0YXRpYyB2b2lkIHNodXRkb3duX2hhbmRsZXIoc3RydWN0IHhlbmJ1 c193YXRjaCAqd2F0Y2gsCiAJCXJldHVybjsKIAogIGFnYWluOgotCWVyciA9IHhlbmJ1c190cmFu c2FjdGlvbl9zdGFydCh4aF9kZWZhdWx0LCAmeGJ0KTsKKwllcnIgPSB4ZW5idXNfdHJhbnNhY3Rp b25fc3RhcnQod2F0Y2gtPnhoLCAmeGJ0KTsKIAlpZiAoZXJyKQogCQlyZXR1cm47CiAKLQlzdHIg PSAoY2hhciAqKXhlbmJ1c19yZWFkKHhoX2RlZmF1bHQsIHhidCwgImNvbnRyb2wiLCAic2h1dGRv d24iLCBOVUxMKTsKKwlzdHIgPSAoY2hhciAqKXhlbmJ1c19yZWFkKHdhdGNoLT54aCwgeGJ0LCAi Y29udHJvbCIsICJzaHV0ZG93biIsIE5VTEwpOwogCS8qIElnbm9yZSByZWFkIGVycm9ycyBhbmQg ZW1wdHkgcmVhZHMuICovCiAJaWYgKFhFTkJVU19JU19FUlJfUkVBRChzdHIpKSB7Ci0JCXhlbmJ1 c190cmFuc2FjdGlvbl9lbmQoeGhfZGVmYXVsdCwgeGJ0LCAxKTsKKwkJeGVuYnVzX3RyYW5zYWN0 aW9uX2VuZCh3YXRjaC0+eGgsIHhidCwgMSk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTI0NSw5ICsy NDUsOSBAQCBzdGF0aWMgdm9pZCBzaHV0ZG93bl9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2gg KndhdGNoLAogCiAJLyogT25seSBhY2tub3dsZWRnZSBjb21tYW5kcyB3aGljaCB3ZSBhcmUgcHJl cGFyZWQgdG8gaGFuZGxlLiAqLwogCWlmIChpZHggPCBBUlJBWV9TSVpFKHNodXRkb3duX2hhbmRs ZXJzKSkKLQkJeGVuYnVzX3dyaXRlKHhoX2RlZmF1bHQsIHhidCwgImNvbnRyb2wiLCAic2h1dGRv d24iLCAiIik7CisJCXhlbmJ1c193cml0ZSh3YXRjaC0+eGgsIHhidCwgImNvbnRyb2wiLCAic2h1 dGRvd24iLCAiIik7CiAKLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhoX2RlZmF1bHQs IHhidCwgMCk7CisJZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh3YXRjaC0+eGgsIHhidCwg MCk7CiAJaWYgKGVyciA9PSAtRUFHQUlOKSB7CiAJCWtmcmVlKHN0cik7CiAJCWdvdG8gYWdhaW47 CkBAIC0yNzIsMTAgKzI3MiwxMCBAQCBzdGF0aWMgdm9pZCBzeXNycV9oYW5kbGVyKHN0cnVjdCB4 ZW5idXNfd2F0Y2ggKndhdGNoLCBjb25zdCBjaGFyICpwYXRoLAogCWludCBlcnI7CiAKICBhZ2Fp bjoKLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fc3RhcnQoeGhfZGVmYXVsdCwgJnhidCk7CisJ ZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KHdhdGNoLT54aCwgJnhidCk7CiAJaWYgKGVy cikKIAkJcmV0dXJuOwotCWVyciA9IHhlbmJ1c19zY2FuZih4aF9kZWZhdWx0LCB4YnQsICJjb250 cm9sIiwgInN5c3JxIiwgIiVjIiwgJnN5c3JxX2tleSk7CisJZXJyID0geGVuYnVzX3NjYW5mKHdh dGNoLT54aCwgeGJ0LCAiY29udHJvbCIsICJzeXNycSIsICIlYyIsICZzeXNycV9rZXkpOwogCWlm IChlcnIgPCAwKSB7CiAJCS8qCiAJCSAqIFRoZSBYZW5zdG9yZSB3YXRjaCBmaXJlcyBkaXJlY3Rs eSBhZnRlciByZWdpc3RlcmluZyBpdCBhbmQKQEAgLTI4NywyMSArMjg3LDIxIEBAIHN0YXRpYyB2 b2lkIHN5c3JxX2hhbmRsZXIoc3RydWN0IHhlbmJ1c193YXRjaCAqd2F0Y2gsIGNvbnN0IGNoYXIg KnBhdGgsCiAJCWlmIChlcnIgIT0gLUVOT0VOVCAmJiBlcnIgIT0gLUVSQU5HRSkKIAkJCXByX2Vy cigiRXJyb3IgJWQgcmVhZGluZyBzeXNycSBjb2RlIGluIGNvbnRyb2wvc3lzcnFcbiIsCiAJCQkg ICAgICAgZXJyKTsKLQkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4aF9kZWZhdWx0LCB4YnQsIDEp OworCQl4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHdhdGNoLT54aCwgeGJ0LCAxKTsKIAkJcmV0dXJu OwogCX0KIAogCWlmIChzeXNycV9rZXkgIT0gJ1wwJykgewotCQllcnIgPSB4ZW5idXNfcHJpbnRm KHhoX2RlZmF1bHQsIHhidCwgImNvbnRyb2wiLCAic3lzcnEiLCAiJWMiLCAnXDAnKTsKKwkJZXJy ID0geGVuYnVzX3ByaW50Zih3YXRjaC0+eGgsIHhidCwgImNvbnRyb2wiLCAic3lzcnEiLCAiJWMi LCAnXDAnKTsKIAkJaWYgKGVycikgewogCQkJcHJfZXJyKCIlczogRXJyb3IgJWQgd3JpdGluZyBz eXNycSBpbiBjb250cm9sL3N5c3JxXG4iLAogCQkJICAgICAgIF9fZnVuY19fLCBlcnIpOwotCQkJ eGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4aF9kZWZhdWx0LCB4YnQsIDEpOworCQkJeGVuYnVzX3Ry YW5zYWN0aW9uX2VuZCh3YXRjaC0+eGgsIHhidCwgMSk7CiAJCQlyZXR1cm47CiAJCX0KIAl9CiAK LQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhoX2RlZmF1bHQsIHhidCwgMCk7CisJZXJy ID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh3YXRjaC0+eGgsIHhidCwgMCk7CiAJaWYgKGVyciA9 PSAtRUFHQUlOKQogCQlnb3RvIGFnYWluOwogCkBAIC0zMjQsMTQgKzMyNCwxNCBAQCBzdGF0aWMg c3RydWN0IG5vdGlmaWVyX2Jsb2NrIHhlbl9yZWJvb3RfbmIgPSB7CiAJLm5vdGlmaWVyX2NhbGwg PSBwb3dlcm9mZl9uYiwKIH07CiAKLXN0YXRpYyBpbnQgc2V0dXBfc2h1dGRvd25fd2F0Y2hlcih2 b2lkKQorc3RhdGljIGludCBzZXR1cF9zaHV0ZG93bl93YXRjaGVyKHhlbmhvc3RfdCAqeGgpCiB7 CiAJaW50IGVycjsKIAlpbnQgaWR4OwogI2RlZmluZSBGRUFUVVJFX1BBVEhfU0laRSAoU0hVVERP V05fQ01EX1NJWkUgKyBzaXplb2YoImZlYXR1cmUtIikpCiAJY2hhciBub2RlW0ZFQVRVUkVfUEFU SF9TSVpFXTsKIAotCWVyciA9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCh4aF9kZWZhdWx0LCAmc2h1 dGRvd25fd2F0Y2gpOworCWVyciA9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCh4aCwgJnNodXRkb3du X3dhdGNoKTsKIAlpZiAoZXJyKSB7CiAJCXByX2VycigiRmFpbGVkIHRvIHNldCBzaHV0ZG93biB3 YXRjaGVyXG4iKTsKIAkJcmV0dXJuIGVycjsKQEAgLTMzOSw3ICszMzksNyBAQCBzdGF0aWMgaW50 IHNldHVwX3NodXRkb3duX3dhdGNoZXIodm9pZCkKIAogCiAjaWZkZWYgQ09ORklHX01BR0lDX1NZ U1JRCi0JZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKHhoX2RlZmF1bHQsICZzeXNycV93YXRj aCk7CisJZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKHhoLCAmc3lzcnFfd2F0Y2gpOwogCWlm IChlcnIpIHsKIAkJcHJfZXJyKCJGYWlsZWQgdG8gc2V0IHN5c3JxIHdhdGNoZXJcbiIpOwogCQly ZXR1cm4gZXJyOwpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBpbnQgc2V0dXBfc2h1dGRvd25f d2F0Y2hlcih2b2lkKQogCQkJY29udGludWU7CiAJCXNucHJpbnRmKG5vZGUsIEZFQVRVUkVfUEFU SF9TSVpFLCAiZmVhdHVyZS0lcyIsCiAJCQkgc2h1dGRvd25faGFuZGxlcnNbaWR4XS5jb21tYW5k KTsKLQkJZXJyID0geGVuYnVzX3ByaW50Zih4aF9kZWZhdWx0LCBYQlRfTklMLCAiY29udHJvbCIs IG5vZGUsICIldSIsIDEpOworCQllcnIgPSB4ZW5idXNfcHJpbnRmKHhoLCBYQlRfTklMLCAiY29u dHJvbCIsIG5vZGUsICIldSIsIDEpOwogCQlpZiAoZXJyKSB7CiAJCQlwcl9lcnIoIiVzOiBFcnJv ciAlZCB3cml0aW5nICVzXG4iLCBfX2Z1bmNfXywKIAkJCQllcnIsIG5vZGUpOwpAQCAtMzY0LDkg KzM2NCw5IEBAIHN0YXRpYyBpbnQgc2V0dXBfc2h1dGRvd25fd2F0Y2hlcih2b2lkKQogCiBzdGF0 aWMgaW50IHNodXRkb3duX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbm90aWZpZXIsCiAJ CQkgIHVuc2lnbmVkIGxvbmcgZXZlbnQsCi0JCQkgIHZvaWQgKmRhdGEpCisJCQkgIHZvaWQgKnho KQogewotCXNldHVwX3NodXRkb3duX3dhdGNoZXIoKTsKKwlzZXR1cF9zaHV0ZG93bl93YXRjaGVy KCh4ZW5ob3N0X3QgKikgeGgpOwogCXJldHVybiBOT1RJRllfRE9ORTsKIH0KIApAQCAtMzc4LDcg KzM3OCw4IEBAIGludCB4ZW5fc2V0dXBfc2h1dGRvd25fZXZlbnQodm9pZCkKIAogCWlmICgheGVu X2RvbWFpbigpKQogCQlyZXR1cm4gLUVOT0RFVjsKLQlyZWdpc3Rlcl94ZW5zdG9yZV9ub3RpZmll cigmeGVuc3RvcmVfbm90aWZpZXIpOworCisJcmVnaXN0ZXJfeGVuc3RvcmVfbm90aWZpZXIoeGhf ZGVmYXVsdCwgJnhlbnN0b3JlX25vdGlmaWVyKTsKIAlyZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIo Jnhlbl9yZWJvb3RfbmIpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9w bGF0Zm9ybS1wY2kuYyBiL2RyaXZlcnMveGVuL3BsYXRmb3JtLXBjaS5jCmluZGV4IDVkN2RjYWQw YjBhMC4uOGZkYjAxYzRhNjEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9wbGF0Zm9ybS1wY2ku YworKysgYi9kcml2ZXJzL3hlbi9wbGF0Zm9ybS1wY2kuYwpAQCAtMTU0LDE4ICsxNTQsMjAgQEAg c3RhdGljIGludCBwbGF0Zm9ybV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCX0K IAl9CiAKLQltYXhfbnJfZ2ZyYW1lcyA9IGdudHRhYl9tYXhfZ3JhbnRfZnJhbWVzKCk7CisJbWF4 X25yX2dmcmFtZXMgPSBnbnR0YWJfbWF4X2dyYW50X2ZyYW1lcyh4aF9kZWZhdWx0KTsKIAlncmFu dF9mcmFtZXMgPSBhbGxvY194ZW5fbW1pbyhQQUdFX1NJWkUgKiBtYXhfbnJfZ2ZyYW1lcyk7Ci0J cmV0ID0gZ250dGFiX3NldHVwX2F1dG9feGxhdF9mcmFtZXMoZ3JhbnRfZnJhbWVzKTsKKwlyZXQg PSBnbnR0YWJfc2V0dXBfYXV0b194bGF0X2ZyYW1lcyh4aF9kZWZhdWx0LCBncmFudF9mcmFtZXMp OwogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwotCXJldCA9IGdudHRhYl9pbml0KCk7CisKKwkvKiBI Vk0gb25seSwgd2UgZG9uJ3QgbmVlZCB4aF9yZW1vdGUgKi8KKwlyZXQgPSBnbnR0YWJfaW5pdCh4 aF9kZWZhdWx0KTsKIAlpZiAocmV0KQogCQlnb3RvIGdyYW50X291dDsKLQl4ZW5idXNfcHJvYmUo TlVMTCk7CisJX194ZW5idXNfcHJvYmUoeGhfZGVmYXVsdC0+eGVuc3RvcmVfcHJpdmF0ZSk7CiAJ cmV0dXJuIDA7CiBncmFudF9vdXQ6Ci0JZ250dGFiX2ZyZWVfYXV0b194bGF0X2ZyYW1lcygpOwor CWdudHRhYl9mcmVlX2F1dG9feGxhdF9mcmFtZXMoeGhfZGVmYXVsdCk7CiBvdXQ6CiAJcGNpX3Jl bGVhc2VfcmVnaW9uKHBkZXYsIDApOwogbWVtX291dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVu L3N5cy1oeXBlcnZpc29yLmMgYi9kcml2ZXJzL3hlbi9zeXMtaHlwZXJ2aXNvci5jCmluZGV4IDAw NWE4OThlN2EyMy4uZDY5YzA3OTA2OTJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9zeXMtaHlw ZXJ2aXNvci5jCisrKyBiL2RyaXZlcnMveGVuL3N5cy1oeXBlcnZpc29yLmMKQEAgLTE0LDYgKzE0 LDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2Uv eGVuLmg+CisjaW5jbHVkZSA8eGVuL3hlbmhvc3QuaD4KICNpbmNsdWRlIDxhc20veGVuL2h5cGVy dmlzb3IuaD4KICNpbmNsdWRlIDxhc20veGVuL2h5cGVyY2FsbC5oPgogCkBAIC0xNDEsMTUgKzE0 MiwxNSBAQCBzdGF0aWMgc3NpemVfdCB1dWlkX3Nob3dfZmFsbGJhY2soc3RydWN0IGh5cF9zeXNm c19hdHRyICphdHRyLCBjaGFyICpidWZmZXIpCiB7CiAJY2hhciAqdm0sICp2YWw7CiAJaW50IHJl dDsKLQlleHRlcm4gaW50IHhlbnN0b3JlZF9yZWFkeTsKIAorCS8qIERpc2FibGUgZm9yIG5vdzog eGVuc3RvcmVkX3JlYWR5IGlzIHByaXZhdGUgdG8geGVuYnVzCiAJaWYgKCF4ZW5zdG9yZWRfcmVh ZHkpCi0JCXJldHVybiAtRUJVU1k7CisJCXJldHVybiAtRUJVU1k7Ki8KIAotCXZtID0geGVuYnVz X3JlYWQoWEJUX05JTCwgInZtIiwgIiIsIE5VTEwpOworCXZtID0geGVuYnVzX3JlYWQoeGhfZGVm YXVsdCwgWEJUX05JTCwgInZtIiwgIiIsIE5VTEwpOwogCWlmIChJU19FUlIodm0pKQogCQlyZXR1 cm4gUFRSX0VSUih2bSk7Ci0JdmFsID0geGVuYnVzX3JlYWQoWEJUX05JTCwgdm0sICJ1dWlkIiwg TlVMTCk7CisJdmFsID0geGVuYnVzX3JlYWQoeGhfZGVmYXVsdCwgWEJUX05JTCwgdm0sICJ1dWlk IiwgTlVMTCk7CiAJa2ZyZWUodm0pOwogCWlmIChJU19FUlIodmFsKSkKIAkJcmV0dXJuIFBUUl9F UlIodmFsKTsKQEAgLTYwMiw2ICs2MDMsOSBAQCBzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSBoeXBf c3lzZnNfa29ial90eXBlID0gewogCS5zeXNmc19vcHMgPSAmaHlwX3N5c2ZzX29wcywKIH07CiAK Ky8qCisgKiBGb3Igbm93LCBkZWZhdWx0IHhlbmhvc3Qgb25seS4KKyAqLwogc3RhdGljIGludCBf X2luaXQgaHlwZXJ2aXNvcl9zdWJzeXNfaW5pdCh2b2lkKQogewogCWlmICgheGVuX2RvbWFpbigp KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuLWJhbGxvb24uYyBiL2RyaXZlcnMveGVuL3hl bi1iYWxsb29uLmMKaW5kZXggZDM0ZDliMWFmN2E4Li45ZDQ0OGRkN2ZmMTcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMveGVuL3hlbi1iYWxsb29uLmMKKysrIGIvZHJpdmVycy94ZW4veGVuLWJhbGxvb24u YwpAQCAtNDAsNiArNDAsNyBAQAogCiAjaW5jbHVkZSA8eGVuL3hlbi5oPgogI2luY2x1ZGUgPHhl bi9pbnRlcmZhY2UveGVuLmg+CisjaW5jbHVkZSA8eGVuL3hlbmhvc3QuaD4KICNpbmNsdWRlIDx4 ZW4vYmFsbG9vbi5oPgogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KICNpbmNsdWRlIDx4ZW4vZmVh dHVyZXMuaD4KQEAgLTk5LDExICsxMDAsMTEgQEAgc3RhdGljIHN0cnVjdCB4ZW5idXNfd2F0Y2gg dGFyZ2V0X3dhdGNoID0gewogCiBzdGF0aWMgaW50IGJhbGxvb25faW5pdF93YXRjaGVyKHN0cnVj dCBub3RpZmllcl9ibG9jayAqbm90aWZpZXIsCiAJCQkJdW5zaWduZWQgbG9uZyBldmVudCwKLQkJ CQl2b2lkICpkYXRhKQorCQkJCXZvaWQgKnhoKQogewogCWludCBlcnI7CiAKLQllcnIgPSByZWdp c3Rlcl94ZW5idXNfd2F0Y2goeGhfZGVmYXVsdCwgJnRhcmdldF93YXRjaCk7CisJZXJyID0gcmVn aXN0ZXJfeGVuYnVzX3dhdGNoKHhoLCAmdGFyZ2V0X3dhdGNoKTsKIAlpZiAoZXJyKQogCQlwcl9l cnIoIkZhaWxlZCB0byBzZXQgYmFsbG9vbiB3YXRjaGVyXG4iKTsKIApAQCAtMTIwLDcgKzEyMSwx MCBAQCB2b2lkIHhlbl9iYWxsb29uX2luaXQodm9pZCkKIAogCXJlZ2lzdGVyX3hlbl9zZWxmYmFs bG9vbmluZygmYmFsbG9vbl9kZXYpOwogCi0JcmVnaXN0ZXJfeGVuc3RvcmVfbm90aWZpZXIoJnhl bnN0b3JlX25vdGlmaWVyKTsKKwkvKgorCSAqIGJhbGxvb25pbmcgaXMgb25seSBjb25jZXJuZWQg d2l0aCB0aGUgZGVmYXVsdCB4ZW5ob3N0LgorCSAqLworCXJlZ2lzdGVyX3hlbnN0b3JlX25vdGlm aWVyKHhoX2RlZmF1bHQsICZ4ZW5zdG9yZV9ub3RpZmllcik7CiB9CiBFWFBPUlRfU1lNQk9MX0dQ TCh4ZW5fYmFsbG9vbl9pbml0KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuZnMveGVu c3RvcmVkLmMgYi9kcml2ZXJzL3hlbi94ZW5mcy94ZW5zdG9yZWQuYwppbmRleCBmNTkyMzVmOWY4 YTIuLjFkNjY5NzRhZTczMCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4veGVuZnMveGVuc3RvcmVk LmMKKysrIGIvZHJpdmVycy94ZW4veGVuZnMveGVuc3RvcmVkLmMKQEAgLTgsNiArOCw3IEBACiAj aW5jbHVkZSA8eGVuL3hlbmJ1cy5oPgogCiAjaW5jbHVkZSAieGVuZnMuaCIKKyNpbmNsdWRlICIu Li94ZW5idXMveGVuYnVzLmgiIC8qIEZJWE1FICovCiAKIHN0YXRpYyBzc2l6ZV90IHhzZF9yZWFk KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAogCQkJICAgIHNpemVfdCBzaXpl LCBsb2ZmX3QgKm9mZikKQEAgLTI1LDcgKzI2LDcgQEAgc3RhdGljIGludCB4c2RfcmVsZWFzZShz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHN0YXRpYyBpbnQgeHNkX2t2 YV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCWZpbGUt PnByaXZhdGVfZGF0YSA9ICh2b2lkICopa2FzcHJpbnRmKEdGUF9LRVJORUwsICIweCVwIiwKLQkJ CQkJICAgICAgIHhlbl9zdG9yZV9pbnRlcmZhY2UpOworCQkJCQkgICAgICAgeHNfcHJpdih4aF9k ZWZhdWx0KS0+c3RvcmVfaW50ZXJmYWNlKTsKIAlpZiAoIWZpbGUtPnByaXZhdGVfZGF0YSkKIAkJ cmV0dXJuIC1FTk9NRU07CiAJcmV0dXJuIDA7CkBAIC0zOSw3ICs0MCw3IEBAIHN0YXRpYyBpbnQg eHNkX2t2YV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAocmVtYXBfcGZuX3JhbmdlKHZtYSwgdm1hLT52 bV9zdGFydCwKLQkJCSAgICB2aXJ0X3RvX3Bmbih4ZW5fc3RvcmVfaW50ZXJmYWNlKSwKKwkJCSAg ICB2aXJ0X3RvX3Bmbih4c19wcml2KHhoX2RlZmF1bHQpLT5zdG9yZV9pbnRlcmZhY2UpLAogCQkJ ICAgIHNpemUsIHZtYS0+dm1fcGFnZV9wcm90KSkKIAkJcmV0dXJuIC1FQUdBSU47CiAKQEAgLTU2 LDcgKzU3LDcgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB4c2Rfa3ZhX2ZpbGVfb3Bz ID0gewogc3RhdGljIGludCB4c2RfcG9ydF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVj dCBmaWxlICpmaWxlKQogewogCWZpbGUtPnByaXZhdGVfZGF0YSA9ICh2b2lkICopa2FzcHJpbnRm KEdGUF9LRVJORUwsICIlZCIsCi0JCQkJCSAgICAgICB4ZW5fc3RvcmVfZXZ0Y2huKTsKKwkJCQkJ ICAgICAgIHhzX3ByaXYoeGhfZGVmYXVsdCktPnN0b3JlX2V2dGNobik7CiAJaWYgKCFmaWxlLT5w cml2YXRlX2RhdGEpCiAJCXJldHVybiAtRU5PTUVNOwogCXJldHVybiAwOwotLSAKMi4yMC4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==