From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 9423B3858C60 for ; Mon, 29 Jan 2024 17:48:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9423B3858C60 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9423B3858C60 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::32a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706550536; cv=none; b=hSHwlOW3oZVnz09JYh2b2apBCR3JC2wEUvLKi9n+gwsmRPpkEUUkiozMSsjQoZUgdmn6hdk+xdZLN7Ai9GjUzKZX3Iy8xwOrHBxThF2yseJBdAJyO/7kG85398OpNqoDn7hxMnVxRiuq5Om2LWFOeuPOHdJjyOjyaAhj8A2GDa8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706550536; c=relaxed/simple; bh=X9kw/s9HW8xtoMK3Xk3sVg9KULwFmtkG46mdBlho6xI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:Subject:From; b=kNe27rWZ5GBpcjlK+v2wMeYj9hOEHDC5/ATy56XLAdTzK1rtQNwdCKcWvHQMJalIokGtQHIJk4zkNVL1J8caom4AHzMbyEBc+lkKfMJhjXXImczorJKd8KcJB6eED4vCnavOL25HCAiD4xjO+n08yBhpU0JpnQUVfmirkJM0eYE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-40eb033c1b0so36899815e9.2 for ; Mon, 29 Jan 2024 09:48:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1706550531; x=1707155331; darn=gcc.gnu.org; h=in-reply-to:from:cc:content-language:subject:references:to :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=QE0BSiWOcPvwEaRLScIYTKGEijnY38ZhTD+5937APJ4=; b=uvEJjnF6YCJETZSytuxDZrwAxDoW7VpClfB2rqD7yAwmtyYvdQEIaUjjVghaI6ks/X uGH1YsDM20KMTOPz2TkeKO6N2KyYj5MjuYZAPv9AotF7E0XDPvMftyogU7QQWYmmA9t7 tbDJ2f8KXKN/AORjZitrFH2asLPLuFBlGvKFiLwQFTnz7ipqVHN3sg+9WEr/hkaQohQX JLh1fKAiPJxqVcyHk8ABPeASuL9yDsBqfLADQTnKwBfkhPIcfG5GrcRoz9OhR6dOwYEM PaNFSXDC9yxQSGG/FtOANIu/mT9ivu3gz9ZO+8iw8IcIn8TVdcRyuzPqwdFeh9SVooVs /D3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706550531; x=1707155331; h=in-reply-to:from:cc:content-language:subject:references:to :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=QE0BSiWOcPvwEaRLScIYTKGEijnY38ZhTD+5937APJ4=; b=I9LarXfG8K1lrvx18VCLLGjtC8mCHihPAfFeXL0U/scbIkNcd+4SIxMs8+iVW1Cx8t pX65Xyy4Zj7wUa7fzvy7cXmuJEdnRrFxfA5yga8nCpklFMAzqg6z+4jmU/Ku4RT6tJuH nXfzosqXLY2D6Gvppt1zK3xWA+AzIYUPxpuSyTDlE7L9hZUoyhlgjiX9XDBDtDYJHGIp Lf25YmjVu6Ge/7PRSSfcb1Di7daahT5WDfSxOzT5a+wUsZ7VeXJm0wtFvWZkHrrqiiaM 20Dj/qA5vGVBOrXWVpQeX4wEvNLnJAEYXYiBTlFE3CScbw+KexS0pr7nBBOZWOKv7CKn kdvQ== X-Gm-Message-State: AOJu0Yzlgq4MpESjOCTYmC0n/z72l5dzS6fMLhJdbMpFgOJsa3n8ULcO EhUrc0xVv3iOQgKQ/k0MPcaemS2Hbld3aPoQgoceeMNOZ34sVsdNJmgo/hrj+TY= X-Google-Smtp-Source: AGHT+IE2v98KqmtuNTW71uAsMLguiT1QOvAEjSjdDgCLiY7mZeTG23Zy1Eu/amm0hveAQeP0tbeYgg== X-Received: by 2002:a05:600c:3c91:b0:40e:e834:3d86 with SMTP id bg17-20020a05600c3c9100b0040ee8343d86mr5112853wmb.37.1706550530926; Mon, 29 Jan 2024 09:48:50 -0800 (PST) Received: from ?IPV6:2a00:23c6:88e4:c502:ade8:41f3:51b6:ce93? ([2a00:23c6:88e4:c502:ade8:41f3:51b6:ce93]) by smtp.gmail.com with ESMTPSA id t18-20020a05600c451200b0040e880ac6ecsm14693528wmo.35.2024.01.29.09.48.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 29 Jan 2024 09:48:50 -0800 (PST) Content-Type: multipart/mixed; boundary="------------jCGtjE21MFFRtLaNkO9hq04Y" Message-ID: <679889de-bf47-4a01-887e-db96f7fad427@baylibre.com> Date: Mon, 29 Jan 2024 17:48:47 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: rep.dot.nop@gmail.com, gcc-patches References: Subject: [PATCH v2] openmp: Change to using a hashtab to lookup offload target addresses for indirect function calls Content-Language: en-GB Cc: Tobias Burnus , Jakub Jelinek From: Kwok Cheung Yeung In-Reply-To: X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GB_TO_NAME_FREEMAIL,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------jCGtjE21MFFRtLaNkO9hq04Y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Can you please akso update the comments to talk about hashtab instead of splay? > Hello This version has the comments updated and removes a stray 'volatile' in the #ifdefed out code. Thanks Kwok --------------jCGtjE21MFFRtLaNkO9hq04Y Content-Type: text/plain; charset=UTF-8; name="0001-openmp-Change-to-using-a-hashtab-to-lookup-offload-t.patch" Content-Disposition: attachment; filename*0="0001-openmp-Change-to-using-a-hashtab-to-lookup-offload-t.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1NzM3Mjk4ZjRmNWU1NDcxNjY3YjA1ZTIwN2IyMmM5YzkxYjk0Y2EwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLd29rIENoZXVuZyBZZXVuZyA8a2N5ZXVuZ0BiYXls aWJyZS5jb20+CkRhdGU6IE1vbiwgMjkgSmFuIDIwMjQgMTc6NDA6MDQgKzAwMDAKU3ViamVj dDogW1BBVENIIDEvMl0gb3Blbm1wOiBDaGFuZ2UgdG8gdXNpbmcgYSBoYXNodGFiIHRvIGxv b2t1cCBvZmZsb2FkCiB0YXJnZXQgYWRkcmVzc2VzIGZvciBpbmRpcmVjdCBmdW5jdGlvbiBj YWxscwoKQSBzcGxheS10cmVlIHdhcyBwcmV2aW91c2x5IHVzZWQgdG8gbG9va3VwIGVxdWl2 YWxlbnQgdGFyZ2V0IGFkZHJlc3Nlcwpmb3IgYSBnaXZlbiBob3N0IGFkZHJlc3Mgb24gb2Zm bG9hZCB0YXJnZXRzLiBIb3dldmVyLCBhcyBzcGxheS10cmVlcyBjYW4KbW9kaWZ5IHRoZWly IHN0cnVjdHVyZSBvbiBsb29rdXAsIHRoZXkgYXJlIG5vdCBzdWl0YWJsZSBmb3IgY29uY3Vy cmVudAphY2Nlc3MgZnJvbSBzZXBhcmF0ZSB0ZWFtcy90aHJlYWRzIHdpdGhvdXQgc29tZSBm b3JtIG9mIGxvY2tpbmcuICBUaGlzCnBhdGNoIGNoYW5nZXMgdGhlIGxvb2t1cCBkYXRhIHN0 cnVjdHVyZSB0byBhIGhhc2h0YWIgaW5zdGVhZCwgd2hpY2ggZG9lcwpub3QgaGF2ZSB0aGVz ZSBpc3N1ZXMuCgpUaGUgY2FsbCB0byBidWlsZF9pbmRpcmVjdF9tYXAgdG8gaW5pdGlhbGl6 ZSB0aGUgZGF0YSBzdHJ1Y3R1cmUgaXMgbm93CmNhbGxlZCBmcm9tIGp1c3QgdGhlIGZpcnN0 IHRocmVhZCBvZiB0aGUgZmlyc3QgdGVhbSB0byBhdm9pZCByZWR1bmRhbnQKY2FsbHMgdG8g dGhpcyBmdW5jdGlvbi4KCjIwMjQtMDEtMjkgIEt3b2sgQ2hldW5nIFlldW5nICA8a2N5QGJh eWxpYnJlLmNvbT4KCglsaWJnb21wLwoJKiBjb25maWcvYWNjZWwvdGFyZ2V0LWluZGlyZWN0 LmM6IEluY2x1ZGUgc3RyaW5nLmggYW5kIGhhc2h0YWIuaC4KCVJlbW92ZSBpbmNsdWRlIG9m IHNwbGF5LXRyZWUuaC4gIFVwZGF0ZSBjb21tZW50cy4KCShzcGxheV90cmVlX3ByZWZpeCwg c3BsYXlfdHJlZV9jKTogRGVsZXRlLgoJKHN0cnVjdCBpbmRpcmVjdF9tYXBfdCk6IE5ldy4K CShoYXNoX2VudHJ5X3R5cGUsIGh0YWJfYWxsb2MsIGh0YWJfZnJlZSwgaHRhYl9oYXNoLCBo dGFiX2VxKTogTmV3LgoJKEdPTVBfSU5ESVJFQ1RfQUREX01BUCk6IFJlbW92ZSB2b2xhdGls ZSBxdWFsaWZpZXIuCgkoVVNFX1NQTEFZX1RSRUVfTE9PS1VQKTogUmVuYW1lIHRvLi4uCgko VVNFX0hBU0hUQUJfTE9PS1VQKTogLi50aGlzLgoJKGluZGlyZWN0X21hcCwgaW5kaXJlY3Rf YXJyYXkpOiBEZWxldGUuCgkoaW5kaXJlY3RfaHRhYik6IE5ldy4KCShidWlsZF9pbmRpcmVj dF9tYXApOiBSZW1vdmUgbG9ja2luZy4gIEJ1aWxkIGluZGlyZWN0IG1hcCB1c2luZwoJaGFz aHRhYi4KCShHT01QX3RhcmdldF9tYXBfaW5kaXJlY3RfcHRyKTogVXNlIGluZGlyZWN0X2h0 YWIgdG8gbG9va3VwIHRhcmdldAoJYWRkcmVzcy4KCShHT01QX3RhcmdldF9tYXBfaW5kaXJl Y3RfcHRyKTogUmVtb3ZlIHZvbGF0aWxlIHF1YWxpZmllci4KCSogY29uZmlnL2djbi90ZWFt LmMgKGdvbXBfZ2NuX2VudGVyX2tlcm5lbCk6IENhbGwgYnVpbGRfaW5kaXJlY3RfbWFwCglm cm9tIGZpcnN0IHRocmVhZCBvZiBmaXJzdCB0ZWFtIG9ubHkuCgkqIGNvbmZpZy9udnB0eC90 ZWFtLmMgKGdvbXBfbnZwdHhfbWFpbik6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGliZ29t cC5jLWMrKy1jb21tb24vZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMi5jIChtYWluKToKCUFk ZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudHMuCi0tLQogbGliZ29tcC9jb25maWcvYWNjZWwv dGFyZ2V0LWluZGlyZWN0LmMgICAgICAgIHwgODMgKysrKysrKysrKy0tLS0tLS0tLQogbGli Z29tcC9jb25maWcvZ2NuL3RlYW0uYyAgICAgICAgICAgICAgICAgICAgIHwgIDcgKy0KIGxp YmdvbXAvY29uZmlnL252cHR4L3RlYW0uYyAgICAgICAgICAgICAgICAgICB8ICA5ICstCiAu Li4vZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMi5jICAgICAgICAgICAgICAgfCAxNCArKy0t CiA0IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYmdvbXAvY29uZmlnL2FjY2VsL3RhcmdldC1pbmRpcmVjdC5jIGIv bGliZ29tcC9jb25maWcvYWNjZWwvdGFyZ2V0LWluZGlyZWN0LmMKaW5kZXggYzYwZmQ1NDdj YjYuLmNmZWYxZGRiYzQ5IDEwMDY0NAotLS0gYS9saWJnb21wL2NvbmZpZy9hY2NlbC90YXJn ZXQtaW5kaXJlY3QuYworKysgYi9saWJnb21wL2NvbmZpZy9hY2NlbC90YXJnZXQtaW5kaXJl Y3QuYwpAQCAtMjUsNjAgKzI1LDczIEBACiAgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwogCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+ CiAjaW5jbHVkZSAibGliZ29tcC5oIgogCi0jZGVmaW5lIHNwbGF5X3RyZWVfcHJlZml4IGlu ZGlyZWN0Ci0jZGVmaW5lIHNwbGF5X3RyZWVfYwotI2luY2x1ZGUgInNwbGF5LXRyZWUuaCIK K3N0cnVjdCBpbmRpcmVjdF9tYXBfdAoreworICB2b2lkICpob3N0X2FkZHI7CisgIHZvaWQg KnRhcmdldF9hZGRyOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgaW5kaXJlY3RfbWFwX3QgKmhh c2hfZW50cnlfdHlwZTsKKworc3RhdGljIGlubGluZSB2b2lkICogaHRhYl9hbGxvYyAoc2l6 ZV90IHNpemUpIHsgcmV0dXJuIGdvbXBfbWFsbG9jIChzaXplKTsgfQorc3RhdGljIGlubGlu ZSB2b2lkIGh0YWJfZnJlZSAodm9pZCAqcHRyKSB7IGZyZWUgKHB0cik7IH0KKworI2luY2x1 ZGUgImhhc2h0YWIuaCIKKworc3RhdGljIGlubGluZSBoYXNodmFsX3QKK2h0YWJfaGFzaCAo aGFzaF9lbnRyeV90eXBlIGVsZW1lbnQpCit7CisgIHJldHVybiBoYXNoX3BvaW50ZXIgKGVs ZW1lbnQtPmhvc3RfYWRkcik7Cit9CiAKLXZvbGF0aWxlIHZvaWQgKipHT01QX0lORElSRUNU X0FERFJfTUFQID0gTlVMTDsKK3N0YXRpYyBpbmxpbmUgYm9vbAoraHRhYl9lcSAoaGFzaF9l bnRyeV90eXBlIHgsIGhhc2hfZW50cnlfdHlwZSB5KQoreworICByZXR1cm4geC0+aG9zdF9h ZGRyID09IHktPmhvc3RfYWRkcjsKK30KIAotLyogVXNlIGEgc3BsYXkgdHJlZSB0byBsb29r dXAgdGhlIHRhcmdldCBhZGRyZXNzIGluc3RlYWQgb2YgdXNpbmcgYQotICAgbGluZWFyIHNl YXJjaC4gICovCi0jZGVmaW5lIFVTRV9TUExBWV9UUkVFX0xPT0tVUAordm9pZCAqKkdPTVBf SU5ESVJFQ1RfQUREUl9NQVAgPSBOVUxMOwogCi0jaWZkZWYgVVNFX1NQTEFZX1RSRUVfTE9P S1VQCisvKiBVc2UgYSBoYXNodGFiIHRvIGxvb2t1cCB0aGUgdGFyZ2V0IGFkZHJlc3MgaW5z dGVhZCBvZiB1c2luZyBhIGxpbmVhcgorICAgc2VhcmNoLiAgKi8KKyNkZWZpbmUgVVNFX0hB U0hUQUJfTE9PS1VQCiAKLXN0YXRpYyBzdHJ1Y3QgaW5kaXJlY3Rfc3BsYXlfdHJlZV9zIGlu ZGlyZWN0X21hcDsKLXN0YXRpYyBpbmRpcmVjdF9zcGxheV90cmVlX25vZGUgaW5kaXJlY3Rf YXJyYXkgPSBOVUxMOworI2lmZGVmIFVTRV9IQVNIVEFCX0xPT0tVUAogCi0vKiBCdWlsZCB0 aGUgc3BsYXkgdHJlZSB1c2VkIGZvciBob3N0LT50YXJnZXQgYWRkcmVzcyBsb29rdXBzLiAg Ki8KK3N0YXRpYyBodGFiX3QgaW5kaXJlY3RfaHRhYiA9IE5VTEw7CisKKy8qIEJ1aWxkIHRo ZSBoYXNodGFiIHVzZWQgZm9yIGhvc3QtPnRhcmdldCBhZGRyZXNzIGxvb2t1cHMuICAqLwog CiB2b2lkCiBidWlsZF9pbmRpcmVjdF9tYXAgKHZvaWQpCiB7CiAgIHNpemVfdCBudW1faW5k X2Z1bmNzID0gMDsKLSAgdm9sYXRpbGUgdm9pZCAqKm1hcF9lbnRyeTsKLSAgc3RhdGljIGlu dCBsb2NrID0gMDsgLyogPT0gZ29tcF9tdXRleF90IGxvY2s7IGdvbXBfbXV0ZXhfaW5pdCAo JmxvY2spOyAqLworICB2b2lkICoqbWFwX2VudHJ5OwogCiAgIGlmICghR09NUF9JTkRJUkVD VF9BRERSX01BUCkKICAgICByZXR1cm47CiAKLSAgZ29tcF9tdXRleF9sb2NrICgmbG9jayk7 Ci0KLSAgaWYgKCFpbmRpcmVjdF9hcnJheSkKKyAgaWYgKCFpbmRpcmVjdF9odGFiKQogICAg IHsKICAgICAgIC8qIENvdW50IHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgTlVMTC10 ZXJtaW5hdGVkIGFkZHJlc3MgbWFwLiAgKi8KICAgICAgIGZvciAobWFwX2VudHJ5ID0gR09N UF9JTkRJUkVDVF9BRERSX01BUDsgKm1hcF9lbnRyeTsKIAkgICBtYXBfZW50cnkgKz0gMiwg bnVtX2luZF9mdW5jcysrKTsKIAotICAgICAgLyogQnVpbGQgc3BsYXkgdHJlZSBmb3IgYWRk cmVzcyBsb29rdXAuICAqLwotICAgICAgaW5kaXJlY3RfYXJyYXkgPSBnb21wX21hbGxvYyAo bnVtX2luZF9mdW5jcyAqIHNpemVvZiAoKmluZGlyZWN0X2FycmF5KSk7Ci0gICAgICBpbmRp cmVjdF9zcGxheV90cmVlX25vZGUgYXJyYXkgPSBpbmRpcmVjdF9hcnJheTsKKyAgICAgIC8q IEJ1aWxkIGhhc2h0YWIgZm9yIGFkZHJlc3MgbG9va3VwLiAgKi8KKyAgICAgIGluZGlyZWN0 X2h0YWIgPSBodGFiX2NyZWF0ZSAobnVtX2luZF9mdW5jcyk7CiAgICAgICBtYXBfZW50cnkg PSBHT01QX0lORElSRUNUX0FERFJfTUFQOwogCi0gICAgICBmb3IgKGludCBpID0gMDsgaSA8 IG51bV9pbmRfZnVuY3M7IGkrKywgYXJyYXkrKykKKyAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgbnVtX2luZF9mdW5jczsgaSsrLCBtYXBfZW50cnkgKz0gMikKIAl7Ci0JICBpbmRpcmVj dF9zcGxheV90cmVlX2tleSBrID0gJmFycmF5LT5rZXk7Ci0JICBrLT5ob3N0X2FkZHIgPSAo dWludDY0X3QpICptYXBfZW50cnkrKzsKLQkgIGstPnRhcmdldF9hZGRyID0gKHVpbnQ2NF90 KSAqbWFwX2VudHJ5Kys7Ci0JICBhcnJheS0+bGVmdCA9IE5VTEw7Ci0JICBhcnJheS0+cmln aHQgPSBOVUxMOwotCSAgaW5kaXJlY3Rfc3BsYXlfdHJlZV9pbnNlcnQgKCZpbmRpcmVjdF9t YXAsIGFycmF5KTsKKwkgIHN0cnVjdCBpbmRpcmVjdF9tYXBfdCBlbGVtZW50ID0geyAqbWFw X2VudHJ5LCBOVUxMIH07CisJICBoYXNoX2VudHJ5X3R5cGUgKnNsb3QgPSBodGFiX2ZpbmRf c2xvdCAoJmluZGlyZWN0X2h0YWIsICZlbGVtZW50LAorCQkJCQkJICBJTlNFUlQpOworCSAg KnNsb3QgPSAoaGFzaF9lbnRyeV90eXBlKSBtYXBfZW50cnk7CiAJfQogICAgIH0KLQotICBn b21wX211dGV4X3VubG9jayAoJmxvY2spOwogfQogCiB2b2lkICoKQEAgLTg4LDE1ICsxMDEs MTEgQEAgR09NUF90YXJnZXRfbWFwX2luZGlyZWN0X3B0ciAodm9pZCAqcHRyKQogICBpZiAo IXB0cikKICAgICByZXR1cm4gcHRyOwogCi0gIGFzc2VydCAoaW5kaXJlY3RfYXJyYXkpOwot Ci0gIHN0cnVjdCBpbmRpcmVjdF9zcGxheV90cmVlX2tleV9zIGs7Ci0gIGluZGlyZWN0X3Nw bGF5X3RyZWVfa2V5IG5vZGUgPSBOVUxMOwotCi0gIGsuaG9zdF9hZGRyID0gKHVpbnQ2NF90 KSBwdHI7Ci0gIG5vZGUgPSBpbmRpcmVjdF9zcGxheV90cmVlX2xvb2t1cCAoJmluZGlyZWN0 X21hcCwgJmspOworICBhc3NlcnQgKGluZGlyZWN0X2h0YWIpOwogCi0gIHJldHVybiBub2Rl ID8gKHZvaWQgKikgbm9kZS0+dGFyZ2V0X2FkZHIgOiBwdHI7CisgIHN0cnVjdCBpbmRpcmVj dF9tYXBfdCBlbGVtZW50ID0geyBwdHIsIE5VTEwgfTsKKyAgaGFzaF9lbnRyeV90eXBlIGVu dHJ5ID0gaHRhYl9maW5kIChpbmRpcmVjdF9odGFiLCAmZWxlbWVudCk7CisgIHJldHVybiBl bnRyeSA/IGVudHJ5LT50YXJnZXRfYWRkciA6IHB0cjsKIH0KIAogI2Vsc2UKQEAgLTExNSw3 ICsxMjQsNyBAQCBHT01QX3RhcmdldF9tYXBfaW5kaXJlY3RfcHRyICh2b2lkICpwdHIpCiAK ICAgYXNzZXJ0IChHT01QX0lORElSRUNUX0FERFJfTUFQKTsKIAotICBmb3IgKHZvbGF0aWxl IHZvaWQgKiptYXBfZW50cnkgPSBHT01QX0lORElSRUNUX0FERFJfTUFQOyAqbWFwX2VudHJ5 OworICBmb3IgKHZvaWQgKiptYXBfZW50cnkgPSBHT01QX0lORElSRUNUX0FERFJfTUFQOyAq bWFwX2VudHJ5OwogICAgICAgIG1hcF9lbnRyeSArPSAyKQogICAgIGlmICgqbWFwX2VudHJ5 ID09IHB0cikKICAgICAgIHJldHVybiAodm9pZCAqKSAqKG1hcF9lbnRyeSArIDEpOwpkaWZm IC0tZ2l0IGEvbGliZ29tcC9jb25maWcvZ2NuL3RlYW0uYyBiL2xpYmdvbXAvY29uZmlnL2dj bi90ZWFtLmMKaW5kZXggNjFlOWM2MTZiNjcuLmJkM2RmNDQ4YjUyIDEwMDY0NAotLS0gYS9s aWJnb21wL2NvbmZpZy9nY24vdGVhbS5jCisrKyBiL2xpYmdvbXAvY29uZmlnL2djbi90ZWFt LmMKQEAgLTUyLDE0ICs1MiwxNSBAQCBnb21wX2djbl9lbnRlcl9rZXJuZWwgKHZvaWQpCiB7 CiAgIGludCB0aHJlYWRpZCA9IF9fYnVpbHRpbl9nY25fZGltX3BvcyAoMSk7CiAKLSAgLyog SW5pdGlhbGl6ZSBpbmRpcmVjdCBmdW5jdGlvbiBzdXBwb3J0LiAgKi8KLSAgYnVpbGRfaW5k aXJlY3RfbWFwICgpOwotCiAgIGlmICh0aHJlYWRpZCA9PSAwKQogICAgIHsKICAgICAgIGlu dCBudW10aHJlYWRzID0gX19idWlsdGluX2djbl9kaW1fc2l6ZSAoMSk7CiAgICAgICBpbnQg dGVhbWlkID0gX19idWlsdGluX2djbl9kaW1fcG9zKDApOwogCisgICAgICAvKiBJbml0aWFs aXplIGluZGlyZWN0IGZ1bmN0aW9uIHN1cHBvcnQuICAqLworICAgICAgaWYgKHRlYW1pZCA9 PSAwKQorCWJ1aWxkX2luZGlyZWN0X21hcCAoKTsKKwogICAgICAgLyogU2V0IHVwIHRoZSBn bG9iYWwgc3RhdGUuCiAJIEV2ZXJ5IHRlYW0gd2lsbCBkbyB0aGlzLCBidXQgdGhhdCBzaG91 bGQgYmUgaGFybWxlc3MuICAqLwogICAgICAgZ29tcF9nbG9iYWxfaWN2Lm50aHJlYWRzX3Zh ciA9IDE2OwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9jb25maWcvbnZwdHgvdGVhbS5jIGIvbGli Z29tcC9jb25maWcvbnZwdHgvdGVhbS5jCmluZGV4IDBjZjVkYWQzOWNhLi5kNTM2MTkxN2Ey NCAxMDA2NDQKLS0tIGEvbGliZ29tcC9jb25maWcvbnZwdHgvdGVhbS5jCisrKyBiL2xpYmdv bXAvY29uZmlnL252cHR4L3RlYW0uYwpAQCAtNjAsOSArNjAsNiBAQCBnb21wX252cHR4X21h aW4gKHZvaWQgKCpmbikgKHZvaWQgKiksIHZvaWQgKmZuX2RhdGEpCiAgIGFzbSAoIm1vdi51 MzIgJTAsICUldGlkLnk7IiA6ICI9ciIgKHRpZCkpOwogICBhc20gKCJtb3YudTMyICUwLCAl JW50aWQueTsiIDogIj1yIiAobnRpZHMpKTsKIAotICAvKiBJbml0aWFsaXplIGluZGlyZWN0 IGZ1bmN0aW9uIHN1cHBvcnQuICAqLwotICBidWlsZF9pbmRpcmVjdF9tYXAgKCk7Ci0KICAg aWYgKHRpZCA9PSAwKQogICAgIHsKICAgICAgIGdvbXBfZ2xvYmFsX2ljdi5udGhyZWFkc192 YXIgPSBudGlkczsKQEAgLTc0LDYgKzcxLDEyIEBAIGdvbXBfbnZwdHhfbWFpbiAodm9pZCAo KmZuKSAodm9pZCAqKSwgdm9pZCAqZm5fZGF0YSkKICAgICAgIG52cHR4X3RocnMgPSBhbGxv Y2EgKG50aWRzICogc2l6ZW9mICgqbnZwdHhfdGhycykpOwogICAgICAgbWVtc2V0IChudnB0 eF90aHJzLCAwLCBudGlkcyAqIHNpemVvZiAoKm52cHR4X3RocnMpKTsKIAorICAgICAgLyog SW5pdGlhbGl6ZSBpbmRpcmVjdCBmdW5jdGlvbiBzdXBwb3J0LiAgKi8KKyAgICAgIHVuc2ln bmVkIGludCBibG9ja19pZDsKKyAgICAgIGFzbSAoIm1vdi51MzIgJTAsICUlY3RhaWQueDsi IDogIj1yIiAoYmxvY2tfaWQpKTsKKyAgICAgIGlmIChibG9ja19pZCA9PSAwKQorCWJ1aWxk X2luZGlyZWN0X21hcCAoKTsKKwogICAgICAgLyogRmluZCB0aGUgbG93LWxhdGVuY3kgaGVh cCBkZXRhaWxzIC4uLi4gICovCiAgICAgICB1aW50MzJfdCAqc2hhcmVkX3Bvb2w7CiAgICAg ICB1aW50MzJfdCBzaGFyZWRfcG9vbF9zaXplID0gMDsKZGlmZiAtLWdpdCBhL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0 LTIuYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL2RlY2xhcmUt dGFyZ2V0LWluZGlyZWN0LTIuYwppbmRleCA5ZmUxOTBlZmNlOC4uNTQ1ZjFhOWZjYmYgMTAw NjQ0Ci0tLSBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL2RlY2xh cmUtdGFyZ2V0LWluZGlyZWN0LTIuYworKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w LmMtYysrLWNvbW1vbi9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0yLmMKQEAgLTE3LDE3ICsx NywxNyBAQCBpbnQgbWFpbiAodm9pZCkKICAgICB7CiAgICAgICBzd2l0Y2ggKGkgJSAzKQog CXsKLQljYXNlIDA6IGZuX3B0cltpXSA9ICZmb287Ci0JY2FzZSAxOiBmbl9wdHJbaV0gPSAm YmFyOwotCWNhc2UgMjogZm5fcHRyW2ldID0gJmJhejsKKwljYXNlIDA6IGZuX3B0cltpXSA9 ICZmb287IGJyZWFrOworCWNhc2UgMTogZm5fcHRyW2ldID0gJmJhcjsgYnJlYWs7CisJY2Fz ZSAyOiBmbl9wdHJbaV0gPSAmYmF6OyBicmVhazsKIAl9CiAgICAgICBleHBlY3RlZCArPSAo KmZuX3B0cltpXSkgKCk7CiAgICAgfQogCi0jcHJhZ21hIG9tcCB0YXJnZXQgdGVhbXMgZGlz dHJpYnV0ZSBwYXJhbGxlbCBmb3IgcmVkdWN0aW9uKCs6IHgpIFwKLQkJbWFwICh0bzogZm5f cHRyKSBtYXAgKHRvZnJvbTogeCkKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspCi0g ICAgeCArPSAoKmZuX3B0cltpXSkgKCk7CisgICNwcmFnbWEgb21wIHRhcmdldCB0ZWFtcyBk aXN0cmlidXRlIHBhcmFsbGVsIGZvciBcCisJcmVkdWN0aW9uICgrOiB4KSBtYXAgKHRvOiBm bl9wdHIpIG1hcCAodG9mcm9tOiB4KQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsr KQorICAgICAgeCArPSAoKmZuX3B0cltpXSkgKCk7CiAKICAgcmV0dXJuIHggLSBleHBlY3Rl ZDsKIH0KLS0gCjIuMzQuMQoK --------------jCGtjE21MFFRtLaNkO9hq04Y--