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.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,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 51BAAC33CAF for ; Wed, 22 Jan 2020 14:45:17 +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 1B26921835 for ; Wed, 22 Jan 2020 14:45:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="ThY0VgR8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B26921835 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.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 1iuHFg-0000Yp-4o; Wed, 22 Jan 2020 14:45:04 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iuHFe-0000Xr-Ov for xen-devel@lists.xenproject.org; Wed, 22 Jan 2020 14:45:02 +0000 X-Inumbo-ID: c2defb82-3d25-11ea-b833-bc764e2007e4 Received: from smtp-fw-2101.amazon.com (unknown [72.21.196.25]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id c2defb82-3d25-11ea-b833-bc764e2007e4; Wed, 22 Jan 2020 14:44:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1579704298; x=1611240298; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VY+t0g5bMV0wHRoLUTZQyG6LKBN/XosYy5gpoI6DSvc=; b=ThY0VgR8VrRKDlYlh2kkvs8X4bjR4ug8OnUnXmoG3CCCumCU9iO+Bv/J Yc3vI55wetb7RKIguIIc1CA4d/8eDZliRrwqbpMI68Gm7xr6x/J/Z7koN v909hRfXWyCJCY6s4Yx/1hgIYwvV19CDWkhEp23DU+phueAClaZWURUC1 E=; IronPort-SDR: mhS0QrjEDsW7xg4iT1/FkmmLDaY/9p5luFSoZpWKbkNt4rr/jxkczES7vXFuuRXAsFd+TXDtN+ BcCLsrmhUQIA== X-IronPort-AV: E=Sophos;i="5.70,350,1574121600"; d="scan'208";a="13689442" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1d-9ec21598.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 22 Jan 2020 14:44:57 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1d-9ec21598.us-east-1.amazon.com (Postfix) with ESMTPS id 131F0A256B; Wed, 22 Jan 2020 14:44:55 +0000 (UTC) Received: from EX13D32EUB003.ant.amazon.com (10.43.166.165) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Wed, 22 Jan 2020 14:44:55 +0000 Received: from EX13MTAUEE002.ant.amazon.com (10.43.62.24) by EX13D32EUB003.ant.amazon.com (10.43.166.165) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 22 Jan 2020 14:44:54 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.62.224) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Wed, 22 Jan 2020 14:44:52 +0000 From: Paul Durrant To: Date: Wed, 22 Jan 2020 14:44:42 +0000 Message-ID: <20200122144446.919-4-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200122144446.919-1-pdurrant@amazon.com> References: <20200122144446.919-1-pdurrant@amazon.com> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v4 3/7] libxl: generalise libxl__domain_userdata_lock() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Paul Durrant , Ian Jackson , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGEgZmlsZS1iYXNlZCBsb2NrIHdpdGggYSBmaWxlIG5h bWUgZ2VuZXJhdGVkCmZyb20gYSBkb21pZC4KClRoaXMgcGF0Y2ggc3BsaXRzIGl0IGludG8gdHdv LCBnZW5lcmFsaXNpbmcgdGhlIGNvcmUgb2YgdGhlIGxvY2tpbmcgY29kZQppbnRvIGEgbmV3IGxp YnhsX19sb2NrX2ZpbGUoKSBmdW5jdGlvbiB3aGljaCBvcGVyYXRlcyBvbiBhIHNwZWNpZmllZCBm aWxlLApsZWF2aW5nIGp1c3QgdGhlIGZpbGUgbmFtZSBnZW5lcmF0aW9uIGluIGxpYnhsX19kb21h aW5fdXNlcmRhdGFfbG9jaygpLgoKVGhpcyBwYXRjaCBhbHNvIGdlbmVyYWxpc2VzIGxpYnhsX191 bmxvY2tfZG9tYWluX3VzZXJkYXRhKCkgdG8KbGlieGxfX3VubG9ja19maWxlKCkgYW5kIG1vZGlm aWVzIGFsbCBjYWxsLXNpdGVzLgoKU3VnZ2VzdGVkLWJ5OiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwZHVycmFudEBh bWF6b24uY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29t PgpDYzogV2VpIExpdSA8d2xAeGVuLm9yZz4KQ2M6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBl cmFyZEBjaXRyaXguY29tPgoKdjQ6CiAtIE5ldyBpbiB2NC4KLS0tCiB0b29scy9saWJ4bC9saWJ4 bF9jcmVhdGUuYyAgIHwgIDQgKy0tCiB0b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYyAgIHwgIDQg Ky0tCiB0b29scy9saWJ4bC9saWJ4bF9kaXNrLmMgICAgIHwgMTIgKysrKy0tLS0KIHRvb2xzL2xp YnhsL2xpYnhsX2RvbS5jICAgICAgfCAxMiArKysrLS0tLQogdG9vbHMvbGlieGwvbGlieGxfZG9t YWluLmMgICB8IDE0ICsrKystLS0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuYyB8IDU1 ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaCB8IDEwICsrKystLS0KIHRvb2xzL2xpYnhsL2xpYnhsX21lbS5jICAgICAgfCAg OCArKystLS0KIHRvb2xzL2xpYnhsL2xpYnhsX3BjaS5jICAgICAgfCAgNCArLS0KIHRvb2xzL2xp YnhsL2xpYnhsX3VzYi5jICAgICAgfCAgOCArKystLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDcyIGlu c2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsX2NyZWF0ZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKaW5kZXggNzNhMjg4MzM1 Ny4uZTRhYWI0ZmQxYyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysr IGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKQEAgLTE3NTUsNyArMTc1NSw3IEBAIHN0YXRp YyB2b2lkIGRvbWNyZWF0ZV9jb21wbGV0ZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgYm9vbCByZXRh aW5fZG9tYWluID0gIXJjIHx8IHJjID09IEVSUk9SX0FCT1JURUQ7CiAKICAgICBpZiAocmV0YWlu X2RvbWFpbikgewotICAgICAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxvY2s7Cisg ICAgICAgIGxpYnhsX19mbG9jayAqbG9jazsKIAogICAgICAgICAvKiBOb3RlIHRoYXQgd2UgaG9s ZCBDVFggbG9jayBhdCB0aGlzIHBvaW50IHNvIG9ubHkgbmVlZCB0bwogICAgICAgICAgKiB0YWtl IGRhdGEgc3RvcmUgbG9jawpAQCAtMTc2OSw3ICsxNzY5LDcgQEAgc3RhdGljIHZvaWQgZG9tY3Jl YXRlX2NvbXBsZXRlKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAoZ2MsIGRjcy0+ Z3Vlc3RfZG9taWQsIGRfY29uZmlnX3NhdmVkKTsKICAgICAgICAgICAgIGlmICghcmMpCiAgICAg ICAgICAgICAgICAgcmMgPSBjZmdfcmM7Ci0gICAgICAgICAgICBsaWJ4bF9fdW5sb2NrX2RvbWFp bl91c2VyZGF0YShsb2NrKTsKKyAgICAgICAgICAgIGxpYnhsX191bmxvY2tfZmlsZShsb2NrKTsK ICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNl LmMgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwppbmRleCA5ZDA1ZDJmZDEzLi4wMzgxYzVk NTA5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYworKysgYi90b29scy9s aWJ4bC9saWJ4bF9kZXZpY2UuYwpAQCAtMTg1MCw3ICsxODUwLDcgQEAgdm9pZCBsaWJ4bF9fZGV2 aWNlX2FkZF9hc3luYyhsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIHhzX3Ry YW5zYWN0aW9uX3QgdCA9IFhCVF9OVUxMOwogICAgIGxpYnhsX2RvbWFpbl9jb25maWcgZF9jb25m aWc7CiAgICAgdm9pZCAqdHlwZV9zYXZlZDsKLSAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xv Y2sgKmxvY2sgPSBOVUxMOworICAgIGxpYnhsX19mbG9jayAqbG9jayA9IE5VTEw7CiAgICAgaW50 IHJjOwogCiAgICAgbGlieGxfZG9tYWluX2NvbmZpZ19pbml0KCZkX2NvbmZpZyk7CkBAIC0xOTQ2 LDcgKzE5NDYsNyBAQCB2b2lkIGxpYnhsX19kZXZpY2VfYWRkX2FzeW5jKGxpYnhsX19lZ2MgKmVn YywgdWludDMyX3QgZG9taWQsCiAKIG91dDoKICAgICBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJv cnQoZ2MsICZ0KTsKLSAgICBpZiAobG9jaykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEo bG9jayk7CisgICAgaWYgKGxvY2spIGxpYnhsX191bmxvY2tfZmlsZShsb2NrKTsKICAgICBkdC0+ ZGlzcG9zZSh0eXBlX3NhdmVkKTsKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2Rpc3Bvc2UoJmRf Y29uZmlnKTsKICAgICBhb2Rldi0+cmMgPSByYzsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xp YnhsX2Rpc2suYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYwppbmRleCA2NGE2NjkxNDI0Li5l MGRlMWM1NzgxIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kaXNrLmMKKysrIGIvdG9v bHMvbGlieGwvbGlieGxfZGlzay5jCkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RhdGljIHZvaWQgZGV2 aWNlX2Rpc2tfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3QgZG9taWQsCiAgICAgeHNfdHJh bnNhY3Rpb25fdCB0ID0gWEJUX05VTEw7CiAgICAgbGlieGxfZG9tYWluX2NvbmZpZyBkX2NvbmZp ZzsKICAgICBsaWJ4bF9kZXZpY2VfZGlzayBkaXNrX3NhdmVkOwotICAgIGxpYnhsX19kb21haW5f dXNlcmRhdGFfbG9jayAqbG9jayA9IE5VTEw7CisgICAgbGlieGxfX2Zsb2NrICpsb2NrID0gTlVM TDsKIAogICAgIGxpYnhsX2RvbWFpbl9jb25maWdfaW5pdCgmZF9jb25maWcpOwogICAgIGxpYnhs X2RldmljZV9kaXNrX2luaXQoJmRpc2tfc2F2ZWQpOwpAQCAtNDM2LDcgKzQzNiw3IEBAIHN0YXRp YyB2b2lkIGRldmljZV9kaXNrX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAog CiBvdXQ6CiAgICAgbGlieGxfX3hzX3RyYW5zYWN0aW9uX2Fib3J0KGdjLCAmdCk7Ci0gICAgaWYg KGxvY2spIGxpYnhsX191bmxvY2tfZG9tYWluX3VzZXJkYXRhKGxvY2spOworICAgIGlmIChsb2Nr KSBsaWJ4bF9fdW5sb2NrX2ZpbGUobG9jayk7CiAgICAgbGlieGxfZGV2aWNlX2Rpc2tfZGlzcG9z ZSgmZGlza19zYXZlZCk7CiAgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNwb3NlKCZkX2NvbmZp Zyk7CiAgICAgYW9kZXYtPnJjID0gcmM7CkBAIC03OTQsNyArNzk0LDcgQEAgc3RhdGljIHZvaWQg Y2Ryb21faW5zZXJ0X2VqZWN0ZWQobGlieGxfX2VnYyAqZWdjLAogewogICAgIEVHQ19HQzsKICAg ICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMgPSBDT05UQUlORVJfT0YocW1wLCAqY2lz LCBxbXApOwotICAgIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAqZGF0YV9sb2NrID0gTlVM TDsKKyAgICBsaWJ4bF9fZmxvY2sgKmRhdGFfbG9jayA9IE5VTEw7CiAgICAgbGlieGxfX2Rldmlj ZSBkZXZpY2U7CiAgICAgY29uc3QgY2hhciAqYmVfcGF0aCwgKmxpYnhsX3BhdGg7CiAgICAgZmxl eGFycmF5X3QgKmVtcHR5ID0gTlVMTDsKQEAgLTg5Niw3ICs4OTYsNyBAQCBzdGF0aWMgdm9pZCBj ZHJvbV9pbnNlcnRfZWplY3RlZChsaWJ4bF9fZWdjICplZ2MsCiBvdXQ6CiAgICAgbGlieGxfX3hz X3RyYW5zYWN0aW9uX2Fib3J0KGdjLCAmdCk7CiAgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNw b3NlKCZkX2NvbmZpZyk7Ci0gICAgaWYgKGRhdGFfbG9jaykgbGlieGxfX3VubG9ja19kb21haW5f dXNlcmRhdGEoZGF0YV9sb2NrKTsKKyAgICBpZiAoZGF0YV9sb2NrKSBsaWJ4bF9fdW5sb2NrX2Zp bGUoZGF0YV9sb2NrKTsKICAgICBpZiAocmMpIHsKICAgICAgICAgY2Ryb21faW5zZXJ0X2RvbmUo ZWdjLCBjaXMsIHJjKTsgLyogbXVzdCBiZSBsYXN0ICovCiAgICAgfSBlbHNlIGlmICghaGFzX2Nh bGxiYWNrKSB7CkBAIC05NTEsNyArOTUxLDcgQEAgc3RhdGljIHZvaWQgY2Ryb21faW5zZXJ0X2lu c2VydGVkKGxpYnhsX19lZ2MgKmVnYywKIHsKICAgICBFR0NfR0M7CiAgICAgbGlieGxfX2Nkcm9t X2luc2VydF9zdGF0ZSAqY2lzID0gQ09OVEFJTkVSX09GKHFtcCwgKmNpcywgcW1wKTsKLSAgICBs aWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmRhdGFfbG9jayA9IE5VTEw7CisgICAgbGlieGxf X2Zsb2NrICpkYXRhX2xvY2sgPSBOVUxMOwogICAgIGxpYnhsX2RvbWFpbl9jb25maWcgZF9jb25m aWc7CiAgICAgZmxleGFycmF5X3QgKmluc2VydCA9IE5VTEw7CiAgICAgeHNfdHJhbnNhY3Rpb25f dCB0ID0gWEJUX05VTEw7CkBAIC0xMDI5LDcgKzEwMjksNyBAQCBzdGF0aWMgdm9pZCBjZHJvbV9p bnNlcnRfaW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAogb3V0OgogICAgIGxpYnhsX194c190cmFu c2FjdGlvbl9hYm9ydChnYywgJnQpOwogICAgIGxpYnhsX2RvbWFpbl9jb25maWdfZGlzcG9zZSgm ZF9jb25maWcpOwotICAgIGlmIChkYXRhX2xvY2spIGxpYnhsX191bmxvY2tfZG9tYWluX3VzZXJk YXRhKGRhdGFfbG9jayk7CisgICAgaWYgKGRhdGFfbG9jaykgbGlieGxfX3VubG9ja19maWxlKGRh dGFfbG9jayk7CiAgICAgY2Ryb21faW5zZXJ0X2RvbmUoZWdjLCBjaXMsIHJjKTsgLyogbXVzdCBi ZSBsYXN0ICovCiB9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9v bHMvbGlieGwvbGlieGxfZG9tLmMKaW5kZXggZTBiNmQ0YThkMy4uMDIxY2JiNGUxYyAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9t LmMKQEAgLTE1MjAsNyArMTUyMCw3IEBAIGludCBsaWJ4bF91c2VyZGF0YV9zdG9yZShsaWJ4bF9j dHggKmN0eCwgdWludDMyX3QgZG9taWQsCiB7CiAgICAgR0NfSU5JVChjdHgpOwogICAgIGludCBy YzsKLSAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxvY2s7CisgICAgbGlieGxfX2Zs b2NrICpsb2NrOwogCiAgICAgQ1RYX0xPQ0s7CiAgICAgbG9jayA9IGxpYnhsX19sb2NrX2RvbWFp bl91c2VyZGF0YShnYywgZG9taWQpOwpAQCAtMTUzMiw3ICsxNTMyLDcgQEAgaW50IGxpYnhsX3Vz ZXJkYXRhX3N0b3JlKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICByYyA9IGxp YnhsX191c2VyZGF0YV9zdG9yZShnYywgZG9taWQsIHVzZXJkYXRhX3VzZXJpZCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBkYXRhbGVuKTsKIAotICAgIGxpYnhsX191bmxv Y2tfZG9tYWluX3VzZXJkYXRhKGxvY2spOworICAgIGxpYnhsX191bmxvY2tfZmlsZShsb2NrKTsK IAogb3V0OgogICAgIENUWF9VTkxPQ0s7CkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBpbnQgbGlieGxf dXNlcmRhdGFfcmV0cmlldmUobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogewogICAg IEdDX0lOSVQoY3R4KTsKICAgICBpbnQgcmM7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9s b2NrICpsb2NrOworICAgIGxpYnhsX19mbG9jayAqbG9jazsKIAogICAgIENUWF9MT0NLOwogICAg IGxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2MsIGRvbWlkKTsKQEAgLTE1OTQs NyArMTU5NCw3IEBAIGludCBsaWJ4bF91c2VyZGF0YV9yZXRyaWV2ZShsaWJ4bF9jdHggKmN0eCwg dWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9y LCBkYXRhbGVuX3IpOwogCiAKLSAgICBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsb2Nr KTsKKyAgICBsaWJ4bF9fdW5sb2NrX2ZpbGUobG9jayk7CiBvdXQ6CiAgICAgQ1RYX1VOTE9DSzsK ICAgICBHQ19GUkVFOwpAQCAtMTYwOCw3ICsxNjA4LDcgQEAgaW50IGxpYnhsX3VzZXJkYXRhX3Vu bGluayhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgQ1RYX0xPQ0s7CiAKICAg ICBpbnQgcmM7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrID0gTlVMTDsK KyAgICBsaWJ4bF9fZmxvY2sgKmxvY2sgPSBOVUxMOwogICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1l OwogCiAgICAgbG9jayA9IGxpYnhsX19sb2NrX2RvbWFpbl91c2VyZGF0YShnYywgZG9taWQpOwpA QCAtMTYzMSw3ICsxNjMxLDcgQEAgaW50IGxpYnhsX3VzZXJkYXRhX3VubGluayhsaWJ4bF9jdHgg KmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgcmMgPSAwOwogb3V0OgogICAgIGlmIChsb2NrKQot ICAgICAgICBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsb2NrKTsKKyAgICAgICAgbGli eGxfX3VubG9ja19maWxlKGxvY2spOwogICAgIENUWF9VTkxPQ0s7CiAgICAgR0NfRlJFRTsKICAg ICByZXR1cm4gcmM7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyBiL3Rv b2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCmluZGV4IDU3MTQ1MDE3NzguLjFiZGIxNjE1ZDggMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2RvbWFpbi5jCkBAIC0xMjc4LDcgKzEyNzgsNyBAQCBzdGF0aWMgdm9pZCBkZXZpY2VzX2Rl c3Ryb3lfY2IobGlieGxfX2VnYyAqZWdjLAogICAgIHVpbnQzMl90IGRvbWlkID0gZGlzLT5kb21p ZDsKICAgICBjaGFyICpkb21fcGF0aDsKICAgICBjaGFyICp2bV9wYXRoOwotICAgIGxpYnhsX19k b21haW5fdXNlcmRhdGFfbG9jayAqbG9jazsKKyAgICBsaWJ4bF9fZmxvY2sgKmxvY2s7CiAKICAg ICBkb21fcGF0aCA9IGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgZG9taWQpOwogICAgIGlmICgh ZG9tX3BhdGgpIHsKQEAgLTEzMDgsNyArMTMwOCw3IEBAIHN0YXRpYyB2b2lkIGRldmljZXNfZGVz dHJveV9jYihsaWJ4bF9fZWdjICplZ2MsCiAgICAgfQogICAgIGxpYnhsX191c2VyZGF0YV9kZXN0 cm95YWxsKGdjLCBkb21pZCk7CiAKLSAgICBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShs b2NrKTsKKyAgICBsaWJ4bF9fdW5sb2NrX2ZpbGUobG9jayk7CiAKICAgICAvKiBDbGVhbiB1cCBx ZW11LXNhdmUgYW5kIHFlbXUtcmVzdW1lIGZpbGVzLiBUaGV5IGFyZQogICAgICAqIGludGVybWVk aWF0ZSBmaWxlcyBjcmVhdGVkIGJ5IGxpYnhjLiBVbmZvcnR1bmF0ZWx5IHRoZXkKQEAgLTE5MTcs NyArMTkxNyw3IEBAIHN0YXRpYyB2b2lkIHJldHJpZXZlX2RvbWFpbl9jb25maWd1cmF0aW9uX2xv Y2tfYWNxdWlyZWQoCiAgICAgcmV0cmlldmVfZG9tYWluX2NvbmZpZ3VyYXRpb25fc3RhdGUgKnJk Y3MgPQogICAgICAgICBDT05UQUlORVJfT0YoZGV2bG9jaywgKnJkY3MsIGRldmxvY2spOwogICAg IFNUQVRFX0FPX0dDKHJkY3MtPnFtcC5hbyk7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9s b2NrICpsb2NrID0gTlVMTDsKKyAgICBsaWJ4bF9fZmxvY2sgKmxvY2sgPSBOVUxMOwogICAgIGJv b2wgaGFzX2NhbGxiYWNrID0gZmFsc2U7CiAKICAgICAvKiBDb252ZW5pZW5jZSBhbGlhc2VzICov CkBAIC0xOTM5LDcgKzE5MzksNyBAQCBzdGF0aWMgdm9pZCByZXRyaWV2ZV9kb21haW5fY29uZmln dXJhdGlvbl9sb2NrX2FjcXVpcmVkKAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBs aWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsb2NrKTsKKyAgICBsaWJ4bF9fdW5sb2NrX2Zp bGUobG9jayk7CiAgICAgbG9jayA9IE5VTEw7CiAKICAgICAvKiBXZSBzdGFydCBieSBxdWVyeWlu ZyBRRU1VLCBpZiBpdCBpcyBydW5uaW5nLCBmb3IgaXRzIGNwdW1hcCBhcyB0aGlzCkBAIC0xOTY0 LDcgKzE5NjQsNyBAQCBzdGF0aWMgdm9pZCByZXRyaWV2ZV9kb21haW5fY29uZmlndXJhdGlvbl9s b2NrX2FjcXVpcmVkKAogICAgIH0KIAogb3V0OgotICAgIGlmIChsb2NrKSBsaWJ4bF9fdW5sb2Nr X2RvbWFpbl91c2VyZGF0YShsb2NrKTsKKyAgICBpZiAobG9jaykgbGlieGxfX3VubG9ja19maWxl KGxvY2spOwogICAgIGlmICghaGFzX2NhbGxiYWNrKQogICAgICAgICByZXRyaWV2ZV9kb21haW5f Y29uZmlndXJhdGlvbl9lbmQoZWdjLCByZGNzLCByYyk7CiB9CkBAIC0xOTk4LDcgKzE5OTgsNyBA QCBzdGF0aWMgdm9pZCByZXRyaWV2ZV9kb21haW5fY29uZmlndXJhdGlvbl9lbmQobGlieGxfX2Vn YyAqZWdjLAogICAgIHJldHJpZXZlX2RvbWFpbl9jb25maWd1cmF0aW9uX3N0YXRlICpyZGNzLCBp bnQgcmMpCiB7CiAgICAgU1RBVEVfQU9fR0MocmRjcy0+cW1wLmFvKTsKLSAgICBsaWJ4bF9fZG9t YWluX3VzZXJkYXRhX2xvY2sgKmxvY2sgPSBOVUxMOworICAgIGxpYnhsX19mbG9jayAqbG9jayA9 IE5VTEw7CiAKICAgICAvKiBDb252ZW5pZW5jZSBhbGlhc2VzICovCiAgICAgbGlieGxfZG9tYWlu X2NvbmZpZyAqY29uc3QgZF9jb25maWcgPSByZGNzLT5kX2NvbmZpZzsKQEAgLTIyMDUsNyArMjIw NSw3IEBAIHN0YXRpYyB2b2lkIHJldHJpZXZlX2RvbWFpbl9jb25maWd1cmF0aW9uX2VuZChsaWJ4 bF9fZWdjICplZ2MsCiAKIG91dDoKICAgICBsaWJ4bF9fZXZfc2xvd2xvY2tfdW5sb2NrKGdjLCAm cmRjcy0+ZGV2bG9jayk7Ci0gICAgaWYgKGxvY2spIGxpYnhsX191bmxvY2tfZG9tYWluX3VzZXJk YXRhKGxvY2spOworICAgIGlmIChsb2NrKSBsaWJ4bF9fdW5sb2NrX2ZpbGUobG9jayk7CiAgICAg bGlieGxfYml0bWFwX2Rpc3Bvc2UoJnJkY3MtPnFlbXV1X2NwdXMpOwogICAgIGxpYnhsX19ldl9x bXBfZGlzcG9zZShnYywgJnJkY3MtPnFtcCk7CiAgICAgbGlieGxfX2V2X3RpbWVfZGVyZWdpc3Rl cihnYywgJnJkY3MtPnRpbWVvdXQpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmMKaW5kZXggYmE1NjM3MzU4ZS4u MjExMjM2ZGM5OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuYworKysg Yi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5jCkBAIC00MDAsMjYgKzQwMCwyMiBAQCBpbnQg bGlieGxfX2RldmljZV9tb2RlbF92ZXJzaW9uX3J1bm5pbmcobGlieGxfX2djICpnYywgdWludDMy X3QgZG9taWQpCiAvKiBQb3J0YWJpbGl0eSBub3RlOiB0aGlzIGxvY2sgdXRpbGlzZXMgZmxvY2so Mikgc28gYSBwcm9wZXIgaW1wbGVtZW50YXRpb24gb2YKICAqIGZsb2NrKDIpIGlzIHJlcXVpcmVk LgogICovCi1saWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxpYnhsX19sb2NrX2RvbWFpbl91 c2VyZGF0YShsaWJ4bF9fZ2MgKmdjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQpCitsaWJ4bF9fZmxvY2sgKmxp YnhsX19sb2NrX2ZpbGUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqbG9ja2ZpbGUpCiB7Ci0g ICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrID0gTlVMTDsKLSAgICBjb25zdCBj aGFyICpsb2NrZmlsZTsKKyAgICBsaWJ4bF9fZmxvY2sgKmxvY2s7CiAgICAgaW50IGZkOwogICAg IHN0cnVjdCBzdGF0IHN0YWIsIGZzdGFiOwogCi0gICAgbG9ja2ZpbGUgPSBsaWJ4bF9fdXNlcmRh dGFfcGF0aChnYywgZG9taWQsICJkb21haW4tdXNlcmRhdGEtbG9jayIsICJsIik7Ci0gICAgaWYg KCFsb2NrZmlsZSkgZ290byBvdXQ7Ci0KLSAgICBsb2NrID0gbGlieGxfX3phbGxvYyhOT0dDLCBz aXplb2YobGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrKSk7CisgICAgbG9jayA9IGxpYnhsX196 YWxsb2MoTk9HQywgc2l6ZW9mKGxpYnhsX19mbG9jaykpOwogICAgIGxvY2stPnBhdGggPSBsaWJ4 bF9fc3RyZHVwKE5PR0MsIGxvY2tmaWxlKTsKIAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg IGxpYnhsX19jYXJlZmRfYmVnaW4oKTsKICAgICAgICAgZmQgPSBvcGVuKGxvY2tmaWxlLCBPX1JE V1J8T19DUkVBVCwgMDY2Nik7CiAgICAgICAgIGlmIChmZCA8IDApCi0gICAgICAgICAgICBMT0dF RChFUlJPUiwgZG9taWQsCi0gICAgICAgICAgICAgICAgICAiY2Fubm90IG9wZW4gbG9ja2ZpbGUg JXMsIGVycm5vPSVkIiwgbG9ja2ZpbGUsIGVycm5vKTsKKyAgICAgICAgICAgIExPR0UoRVJST1Is CisgICAgICAgICAgICAgICAgICJjYW5ub3Qgb3BlbiBsb2NrZmlsZSAlcywgZXJybm89JWQiLAor ICAgICAgICAgICAgICAgICBsb2NrZmlsZSwgZXJybm8pOwogICAgICAgICBsb2NrLT5jYXJlZmQg PSBsaWJ4bF9fY2FyZWZkX29wZW5lZChDVFgsIGZkKTsKICAgICAgICAgaWYgKGZkIDwgMCkgZ290 byBvdXQ7CiAKQEAgLTQzMywyMSArNDI5LDIxIEBAIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9j ayAqbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAg ICAgICAgY29udGludWU7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIC8q IEFsbCBvdGhlciBlcnJubzogRUJBREYsIEVJTlZBTCwgRU5PTENLLCBFV09VTERCTE9DSyAqLwot ICAgICAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAidW5leHBlY3RlZCBlcnJvciB3aGlsZSB0cnlpbmcgdG8gbG9jayAlcywgZmQ9JWQsIGVycm5v PSVkIiwKKyAgICAgICAgICAgICAgICBMT0dFKEVSUk9SLAorICAgICAgICAgICAgICAgICAgICAg InVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgdHJ5aW5nIHRvIGxvY2sgJXMsIGZkPSVkLCBlcnJubz0l ZCIsCiAgICAgICAgICAgICAgICAgICAgICAgbG9ja2ZpbGUsIGZkLCBlcnJubyk7CiAgICAgICAg ICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBp ZiAoZnN0YXQoZmQsICZmc3RhYikpIHsKLSAgICAgICAgICAgIExPR0VEKEVSUk9SLCBkb21pZCwg ImNhbm5vdCBmc3RhdCAlcywgZmQ9JWQsIGVycm5vPSVkIiwKKyAgICAgICAgICAgIExPR0UoRVJS T1IsICJjYW5ub3QgZnN0YXQgJXMsIGZkPSVkLCBlcnJubz0lZCIsCiAgICAgICAgICAgICAgICAg ICBsb2NrZmlsZSwgZmQsIGVycm5vKTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9 CiAgICAgICAgIGlmIChzdGF0KGxvY2tmaWxlLCAmc3RhYikpIHsKICAgICAgICAgICAgIGlmIChl cnJubyAhPSBFTk9FTlQpIHsKLSAgICAgICAgICAgICAgICBMT0dFRChFUlJPUiwgZG9taWQsICJj YW5ub3Qgc3RhdCAlcywgZXJybm89JWQiLCBsb2NrZmlsZSwgZXJybm8pOworICAgICAgICAgICAg ICAgIExPR0UoRVJST1IsICJjYW5ub3Qgc3RhdCAlcywgZXJybm89JWQiLCBsb2NrZmlsZSwgZXJy bm8pOwogICAgICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICAgICAgfQogICAgICAgICB9 IGVsc2UgewpAQCAtNDU4LDIwICs0NTQsMTQgQEAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2Nr ICpsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEobGlieGxfX2djICpnYywKICAgICAgICAgbGli eGxfX2NhcmVmZF9jbG9zZShsb2NrLT5jYXJlZmQpOwogICAgIH0KIAotICAgIC8qIENoZWNrIHRo ZSBkb21haW4gaXMgc3RpbGwgdGhlcmUsIGlmIG5vdCB3ZSBzaG91bGQgcmVsZWFzZSB0aGUKLSAg ICAgKiBsb2NrIGFuZCBjbGVhbiB1cC4KLSAgICAgKi8KLSAgICBpZiAobGlieGxfZG9tYWluX2lu Zm8oQ1RYLCBOVUxMLCBkb21pZCkpCi0gICAgICAgIGdvdG8gb3V0OwotCiAgICAgcmV0dXJuIGxv Y2s7CiAKIG91dDoKLSAgICBpZiAobG9jaykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEo bG9jayk7CisgICAgaWYgKGxvY2spIGxpYnhsX191bmxvY2tfZmlsZShsb2NrKTsKICAgICByZXR1 cm4gTlVMTDsKIH0KIAotdm9pZCBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsaWJ4bF9f ZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxvY2spCit2b2lkIGxpYnhsX191bmxvY2tfZmlsZShsaWJ4 bF9fZmxvY2sgKmxvY2spCiB7CiAgICAgLyogSXQncyBpbXBvcnRhbnQgdG8gdW5saW5rIHRoZSBm aWxlIGJlZm9yZSBjbG9zaW5nIGZkIHRvIGF2b2lkCiAgICAgICogdGhlIGZvbGxvd2luZyByYWNl IChpZiBjbG9zZSBiZWZvcmUgdW5saW5rKToKQEAgLTQ5Myw2ICs0ODMsMjcgQEAgdm9pZCBsaWJ4 bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxv Y2spCiAgICAgZnJlZShsb2NrKTsKIH0KIAorbGlieGxfX2Zsb2NrICpsaWJ4bF9fbG9ja19kb21h aW5fdXNlcmRhdGEobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQpCit7CisgICAgY29uc3Qg Y2hhciAqbG9ja2ZpbGU7CisgICAgbGlieGxfX2Zsb2NrICpsb2NrOworCisgICAgbG9ja2ZpbGUg PSBsaWJ4bF9fdXNlcmRhdGFfcGF0aChnYywgZG9taWQsICJkb21haW4tdXNlcmRhdGEtbG9jayIs ICJsIik7CisgICAgaWYgKCFsb2NrZmlsZSkgcmV0dXJuIE5VTEw7CisKKyAgICBsb2NrID0gbGli eGxfX2xvY2tfZmlsZShnYywgbG9ja2ZpbGUpOworCisgICAgLyogQ2hlY2sgdGhlIGRvbWFpbiBp cyBzdGlsbCB0aGVyZSwgaWYgbm90IHdlIHNob3VsZCByZWxlYXNlIHRoZQorICAgICAqIGxvY2sg YW5kIGNsZWFuIHVwLgorICAgICAqLworICAgIGlmIChsaWJ4bF9kb21haW5faW5mbyhDVFgsIE5V TEwsIGRvbWlkKSkgeworICAgICAgICBsaWJ4bF9fdW5sb2NrX2ZpbGUobG9jayk7CisgICAgICAg IHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBsb2NrOworfQorCiBpbnQgbGlieGxf X2dldF9kb21haW5fY29uZmlndXJhdGlvbihsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcg KmRfY29uZmlnKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBi L3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggM2EwMGJkYjhiNC4uM2ZiMzgyMjBl NSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9s aWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC00NjI0LDExICs0NjI0LDEzIEBAIGludCBsaWJ4bF9f Y3B1aWRfcG9saWN5X2lzX2VtcHR5KGxpYnhsX2NwdWlkX3BvbGljeV9saXN0ICpwbCk7CiB0eXBl ZGVmIHN0cnVjdCB7CiAgICAgbGlieGxfX2NhcmVmZCAqY2FyZWZkOwogICAgIGNoYXIgKnBhdGg7 IC8qIHBhdGggb2YgdGhlIGxvY2sgZmlsZSBpdHNlbGYgKi8KLX0gbGlieGxfX2RvbWFpbl91c2Vy ZGF0YV9sb2NrOworfSBsaWJ4bF9fZmxvY2s7CiAvKiBUaGUgQ1RYX0xPQ0sgbXVzdCBiZSBoZWxk IGFyb3VuZCB1c2VzIG9mIHRoaXMgbG9jayAqLwotbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2Nr ICpsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEobGlieGxfX2djICpnYywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRv bWlkKTsKLXZvaWQgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEobGlieGxfX2RvbWFpbl91 c2VyZGF0YV9sb2NrICpsb2NrKTsKKworbGlieGxfX2Zsb2NrICpsaWJ4bF9fbG9ja19maWxlKGxp YnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKK3ZvaWQgbGlieGxfX3VubG9ja19m aWxlKGxpYnhsX19mbG9jayAqbG9jayk7CisKK2xpYnhsX19mbG9jayAqbGlieGxfX2xvY2tfZG9t YWluX3VzZXJkYXRhKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkKTsKIAogLyoKICAqIFJl dHJpZXZlIC8gc3RvcmUgZG9tYWluIGNvbmZpZ3VyYXRpb24gZnJvbSAvIHRvIGxpYnhsIHByaXZh dGUKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX21lbS5jIGIvdG9vbHMvbGlieGwvbGli eGxfbWVtLmMKaW5kZXggN2MwMWZhYzdlNS4uYmM3Yjk1YWE3NCAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfbWVtLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfbWVtLmMKQEAgLTMwLDcg KzMwLDcgQEAgaW50IGxpYnhsX2RvbWFpbl9zZXRtYXhtZW0obGlieGxfY3R4ICpjdHgsIHVpbnQz Ml90IGRvbWlkLCB1aW50NjRfdCBtYXhfbWVta2IpCiAgICAgdWludDY0X3QgbWVtb3J5a2IsIHNp emU7CiAgICAgY2hhciAqZG9tcGF0aCA9IGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgZG9taWQp OwogICAgIGludCByYyA9IDE7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2Nr ID0gTlVMTDsKKyAgICBsaWJ4bF9fZmxvY2sgKmxvY2sgPSBOVUxMOwogICAgIGxpYnhsX2RvbWFp bl9jb25maWcgZF9jb25maWc7CiAKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQoJmRfY29u ZmlnKTsKQEAgLTg1LDcgKzg1LDcgQEAgaW50IGxpYnhsX2RvbWFpbl9zZXRtYXhtZW0obGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCB1aW50NjRfdCBtYXhfbWVta2IpCiAgICAgcmMgPSAw Owogb3V0OgogICAgIGxpYnhsX2RvbWFpbl9jb25maWdfZGlzcG9zZSgmZF9jb25maWcpOwotICAg IGlmIChsb2NrKSBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsb2NrKTsKKyAgICBpZiAo bG9jaykgbGlieGxfX3VubG9ja19maWxlKGxvY2spOwogICAgIENUWF9VTkxPQ0s7CiAgICAgR0Nf RlJFRTsKICAgICByZXR1cm4gcmM7CkBAIC0xODQsNyArMTg0LDcgQEAgaW50IGxpYnhsX3NldF9t ZW1vcnlfdGFyZ2V0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICBsaWJ4bF9k b21pbmZvIHB0cjsKICAgICBjaGFyICp1dWlkOwogICAgIHhzX3RyYW5zYWN0aW9uX3QgdDsKLSAg ICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxvY2s7CisgICAgbGlieGxfX2Zsb2NrICps b2NrOwogICAgIGxpYnhsX2RvbWFpbl9jb25maWcgZF9jb25maWc7CiAKICAgICBsaWJ4bF9kb21h aW5fY29uZmlnX2luaXQoJmRfY29uZmlnKTsKQEAgLTMzOCw3ICszMzgsNyBAQCBvdXQ6CiAKIG91 dF9ub190cmFuc2FjdGlvbjoKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2Rpc3Bvc2UoJmRfY29u ZmlnKTsKLSAgICBpZiAobG9jaykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEobG9jayk7 CisgICAgaWYgKGxvY2spIGxpYnhsX191bmxvY2tfZmlsZShsb2NrKTsKICAgICBDVFhfVU5MT0NL OwogICAgIEdDX0ZSRUU7CiAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfcGNpLmMgYi90b29scy9saWJ4bC9saWJ4bF9wY2kuYwppbmRleCA2NjRkNzRjNDc4Li5m OTFiY2UwN2VjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9wY2kuYworKysgYi90b29s cy9saWJ4bC9saWJ4bF9wY2kuYwpAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbnQgbGlieGxf X2RldmljZV9wY2lfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsCiAgICAgeHNfdHJhbnNhY3Rp b25fdCB0ID0gWEJUX05VTEw7CiAgICAgaW50IHJjOwogICAgIGxpYnhsX2RvbWFpbl9jb25maWcg ZF9jb25maWc7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrID0gTlVMTDsK KyAgICBsaWJ4bF9fZmxvY2sgKmxvY2sgPSBOVUxMOwogICAgIGJvb2wgaXNfc3R1YmRvbWFpbiA9 IGxpYnhsX2lzX3N0dWJkb20oQ1RYLCBkb21pZCwgTlVMTCk7CiAKICAgICAvKiBTdHViZG9tYWlu IGRvZXNuJ3QgaGF2ZSBvd24gY29uZmlnLiAqLwpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBp bnQgbGlieGxfX2RldmljZV9wY2lfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsCiAKIG91dDoK ICAgICBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ0KTsKLSAgICBpZiAobG9jaykg bGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEobG9jayk7CisgICAgaWYgKGxvY2spIGxpYnhs X191bmxvY2tfZmlsZShsb2NrKTsKICAgICBpZiAoIWlzX3N0dWJkb21haW4pCiAgICAgICAgIGxp YnhsX2RvbWFpbl9jb25maWdfZGlzcG9zZSgmZF9jb25maWcpOwogICAgIHJldHVybiByYzsKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3VzYi5jIGIvdG9vbHMvbGlieGwvbGlieGxfdXNi LmMKaW5kZXggZGE1ZTM3MDhlNi4uMTcxYmIwNDQzOSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfdXNiLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdXNiLmMKQEAgLTIwMiw3ICsyMDIs NyBAQCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiY3RybF9hZGRfeGVuc3RvcmUobGlieGxf X2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgaW50IGksIHJjOwogICAgIGxpYnhsX2RvbWFp bl9jb25maWcgZF9jb25maWc7CiAgICAgbGlieGxfZGV2aWNlX3VzYmN0cmwgdXNiY3RybF9zYXZl ZDsKLSAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmxvY2sgPSBOVUxMOworICAgIGxp YnhsX19mbG9jayAqbG9jayA9IE5VTEw7CiAKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQo JmRfY29uZmlnKTsKICAgICBsaWJ4bF9kZXZpY2VfdXNiY3RybF9pbml0KCZ1c2JjdHJsX3NhdmVk KTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiY3RybF9h ZGRfeGVuc3RvcmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAKIG91dDoKICAgICBs aWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ0KTsKLSAgICBpZiAobG9jaykgbGlieGxf X3VubG9ja19kb21haW5fdXNlcmRhdGEobG9jayk7CisgICAgaWYgKGxvY2spIGxpYnhsX191bmxv Y2tfZmlsZShsb2NrKTsKICAgICBsaWJ4bF9kZXZpY2VfdXNiY3RybF9kaXNwb3NlKCZ1c2JjdHJs X3NhdmVkKTsKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2Rpc3Bvc2UoJmRfY29uZmlnKTsKICAg ICByZXR1cm4gcmM7CkBAIC0xMjY2LDcgKzEyNjYsNyBAQCBzdGF0aWMgaW50IGxpYnhsX19kZXZp Y2VfdXNiZGV2X2FkZF94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAg ICB4c190cmFuc2FjdGlvbl90IHQgPSBYQlRfTlVMTDsKICAgICBsaWJ4bF9kb21haW5fY29uZmln IGRfY29uZmlnOwogICAgIGxpYnhsX2RldmljZV91c2JkZXYgdXNiZGV2X3NhdmVkOwotICAgIGxp YnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAqbG9jayA9IE5VTEw7CisgICAgbGlieGxfX2Zsb2Nr ICpsb2NrID0gTlVMTDsKIAogICAgIGxpYnhsX2RvbWFpbl9jb25maWdfaW5pdCgmZF9jb25maWcp OwogICAgIGxpYnhsX2RldmljZV91c2JkZXZfaW5pdCgmdXNiZGV2X3NhdmVkKTsKQEAgLTEzMjMs NyArMTMyMyw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3Jl KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIHJjID0gMDsKIAogb3V0OgotICAg IGlmIChsb2NrKSBsaWJ4bF9fdW5sb2NrX2RvbWFpbl91c2VyZGF0YShsb2NrKTsKKyAgICBpZiAo bG9jaykgbGlieGxfX3VubG9ja19maWxlKGxvY2spOwogICAgIGxpYnhsX2RldmljZV91c2JkZXZf ZGlzcG9zZSgmdXNiZGV2X3NhdmVkKTsKICAgICBsaWJ4bF9kb21haW5fY29uZmlnX2Rpc3Bvc2Uo JmRfY29uZmlnKTsKICAgICByZXR1cm4gcmM7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs