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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 29361C54E67 for ; Fri, 15 Mar 2024 19:52:06 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rlDab-0007PV-SW; Fri, 15 Mar 2024 15:51:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rlDaW-0007Ob-TO for grub-devel@gnu.org; Fri, 15 Mar 2024 15:51:32 -0400 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rlDaV-0005bp-8Y for grub-devel@gnu.org; Fri, 15 Mar 2024 15:51:32 -0400 Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-2d4698f4936so33014411fa.1 for ; Fri, 15 Mar 2024 12:51:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710532288; x=1711137088; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=iKXEXdSJKYGTsp0fawZ0HiucawTa/19VFUwOs1uVHJQ=; b=DLACeye5B7HKM5op42GRqAKpZ/8gD3NH0deuPYQA81L3yOKVB3wB6CWDJ4mKiiyZAA FU3380pXJfcPDP/NMh2F0f31A6zhWUSsP9SOBnkCHKs54/qRzPbZc9u73k1oMYhEK17x /rIBDc/GisImtiMHOxFv0/3VTrRXUkAWM6fnsLTErdLpLoLei6cUIYGun9zE8mcxr1n0 4ofWNGPCbM0PHfhWd4//1b7qIlqIPhqDjT0rcq6gNkQ7HrPgMYHSAZ+XT0hcd5ES8/py M8ZPF8kclD/vww/yiTjBqxgse7Enr8yXex073KrqvWbXhx+/QKfj6SbtBzTuY/rr2dJW a6Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710532288; x=1711137088; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=iKXEXdSJKYGTsp0fawZ0HiucawTa/19VFUwOs1uVHJQ=; b=iwIE136nCrnfI/obwGQU3OZ4nkiKSiVrL0dTL7G2/9CVLASMrOUa+VF1kECOI5b47+ h8DnpA2L/vIAATjvGa9FHSsbpTr1hGyNCh4wA/4h7p9DjBjTP+dAWrzBu3PJz3GccoHm leX/4JcvJv/gLjk0HUP6MjNgOvl4cApcyJero1+2gRFv3wsRB9L/f6wFn9nWsO4IX/8Q 2rV8bT+n7ym1pdgKM1amSbcLUDpTPW0KZU+VYNj5lbzBPRKtyJI4mGvRvVr5bBcABBUx klS8TYu/95SwqMHfvXr3qTblFTX4UJqODgZZOMMwL4dJkfKNKdAN1ILbp4+lZLF/nJ8H t/ig== X-Gm-Message-State: AOJu0Yw+V9zyc3YTpnf3HSXp44KNchF1fCbgAnfIB0Xu1UNovm2KTyqW jxWvzUcUYfd4X5b8Tg2ZwTgt0DiOYvn2XvmcnE8CjDM4ovJKnWMuD5VqO0enuHFDiELVulOFrec tRalKISXw+2ahZBrctT5kJ9ITDhS06V2cLYln+gdM X-Google-Smtp-Source: AGHT+IHAIHwAurkbUK257KlEknoCqEBJyH+a22hHRuOUWITMTz51ZcPl4TWBDIUk4wWOzHFrHGoLrG9Ms9ZSCuge8kI= X-Received: by 2002:a05:651c:807:b0:2d3:9b4:4363 with SMTP id r7-20020a05651c080700b002d309b44363mr3318143ljb.23.1710532288396; Fri, 15 Mar 2024 12:51:28 -0700 (PDT) MIME-Version: 1.0 From: "Vladimir 'phcoder' Serbinenko" Date: Fri, 15 Mar 2024 22:51:16 +0300 Message-ID: Subject: [PATCH] Improve cbfs detection To: The development of GRUB 2 Content-Type: multipart/mixed; boundary="0000000000006d57c50613b855cd" Received-SPF: pass client-ip=2a00:1450:4864:20::22c; envelope-from=phcoder@gmail.com; helo=mail-lj1-x22c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org --0000000000006d57c50613b855cd Content-Type: text/plain; charset="UTF-8" With FMAP and non-continuous SPI old way of reading CBFS pointer is no longer reliable. Hence use new lbio tags to detect the correct cbfs layout Signed-off-by: Vladimir Serbinenko -- Regards Vladimir 'phcoder' Serbinenko --0000000000006d57c50613b855cd Content-Type: application/octet-stream; name="0001-Improve-cbfs-detection.patch" Content-Disposition: attachment; filename="0001-Improve-cbfs-detection.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltt2r1ra0 RnJvbSA2MDQyZDlhMDNlZmQ2NWUzZjU3ZDg0MmY4ZTRlNDJkYWU1ZTVkMWE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBTZXJiaW5lbmtvIDxwaGNvZGVyQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAxIE9jdCAyMDIzIDE0OjQwOjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g SW1wcm92ZSBjYmZzIGRldGVjdGlvbgoKV2l0aCBGTUFQIGFuZCBub24tY29udGludW91cyBTUEkg b2xkIHdheSBvZiByZWFkaW5nIENCRlMgcG9pbnRlcgppcyBubyBsb25nZXIgcmVsaWFibGUuIEhl bmNlIHVzZSBuZXcgbGJpbyB0YWdzIHRvIGRldGVjdCB0aGUgY29ycmVjdApjYmZzIGxheW91dAoK U2lnbmVkLW9mZi1ieTogVmxhZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+Ci0t LQogZ3J1Yi1jb3JlL2ZzL2NiZnMuYyAgICAgICAgICB8IDEzMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLQogaW5jbHVkZS9ncnViL2NvcmVib290L2xiaW8uaCB8ICAyNSArKysr KystCiAyIGZpbGVzIGNoYW5nZWQsIDEzMSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvZnMvY2Jmcy5jIGIvZ3J1Yi1jb3JlL2ZzL2NiZnMuYwpp bmRleCA4YWI3MTA2YWYuLjcyMzRkYTdlZSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2ZzL2NiZnMu YworKysgYi9ncnViLWNvcmUvZnMvY2Jmcy5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8 Z3J1Yi9kbC5oPgogI2luY2x1ZGUgPGdydWIvaTE4bi5oPgogI2luY2x1ZGUgPGdydWIvY2Jmc19j b3JlLmg+CisjaW5jbHVkZSA8Z3J1Yi9jb3JlYm9vdC9sYmlvLmg+CiAKIEdSVUJfTU9EX0xJQ0VO U0UgKCJHUEx2MysiKTsKIApAQCAtMjczLDcgKzI3NCw4IEBAIGdydWJfY2Jmc19jbG9zZSAoZ3J1 Yl9maWxlX3QgZmlsZSkKICNpZiAoZGVmaW5lZCAoX19pMzg2X18pIHx8IGRlZmluZWQgKF9feDg2 XzY0X18pKSAmJiAhZGVmaW5lZCAoR1JVQl9VVElMKSBcCiAgICYmICFkZWZpbmVkIChHUlVCX01B Q0hJTkVfRU1VKSAmJiAhZGVmaW5lZCAoR1JVQl9NQUNISU5FX1hFTikKIAotc3RhdGljIGNoYXIg KmNiZnNkaXNrX2FkZHI7CitzdGF0aWMgc3RydWN0IGdydWJfbGludXhiaW9zX2ZsYXNoX21tYXBf d2luZG93ICpjYmZzZGlza19tYXA7CitzdGF0aWMgZ3J1Yl91aW50MzJfdCBjYmZzZGlza19tYXBf c2l6ZTsKIHN0YXRpYyBncnViX29mZl90IGNiZnNkaXNrX3NpemUgPSAwOwogCiBzdGF0aWMgaW50 CkBAIC0yODksMTAgKzI5MSwxMCBAQCBncnViX2NiZnNkaXNrX2l0ZXJhdGUgKGdydWJfZGlza19k ZXZfaXRlcmF0ZV9ob29rX3QgaG9vaywgdm9pZCAqaG9va19kYXRhLAogc3RhdGljIGdydWJfZXJy X3QKIGdydWJfY2Jmc2Rpc2tfb3BlbiAoY29uc3QgY2hhciAqbmFtZSwgZ3J1Yl9kaXNrX3QgZGlz aykKIHsKLSAgaWYgKGdydWJfc3RyY21wIChuYW1lLCAiY2Jmc2Rpc2siKSkKKyAgaWYgKGdydWJf c3RyY21wIChuYW1lLCAiY2Jmc2Rpc2siKSAmJiBjYmZzZGlza19zaXplID4gMCkKICAgICAgIHJl dHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9VTktOT1dOX0RFVklDRSwgIm5vdCBhIGNiZnNkaXNr Iik7CiAKLSAgZGlzay0+dG90YWxfc2VjdG9ycyA9IGNiZnNkaXNrX3NpemUgLyBHUlVCX0RJU0tf U0VDVE9SX1NJWkU7CisgIGRpc2stPnRvdGFsX3NlY3RvcnMgPSBjYmZzZGlza19zaXplID4+IEdS VUJfRElTS19TRUNUT1JfQklUUzsKICAgZGlzay0+bWF4X2FnZ2xvbWVyYXRlID0gR1JVQl9ESVNL X01BWF9NQVhfQUdHTE9NRVJBVEU7CiAgIGRpc2stPmlkID0gMDsKIApAQCAtMzA3LDEwICszMDks NDAgQEAgZ3J1Yl9jYmZzZGlza19jbG9zZSAoZ3J1Yl9kaXNrX3QgZGlzayBfX2F0dHJpYnV0ZSgo dW51c2VkKSkpCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZ3J1Yl9jYmZzZGlza19yZWFkIChncnViX2Rp c2tfdCBkaXNrIF9fYXR0cmlidXRlKCh1bnVzZWQpKSwKIAkJICAgIGdydWJfZGlza19hZGRyX3Qg c2VjdG9yLAotCQkgICAgZ3J1Yl9zaXplX3Qgc2l6ZSwgY2hhciAqYnVmKQorCQkgICAgZ3J1Yl9z aXplX3Qgc2l6ZV9zZWN0b3JzLCBjaGFyICpidWYpCiB7Ci0gIGdydWJfbWVtY3B5IChidWYsIGNi ZnNkaXNrX2FkZHIgKyAoc2VjdG9yIDw8IEdSVUJfRElTS19TRUNUT1JfQklUUyksCi0JICAgICAg IHNpemUgPDwgR1JVQl9ESVNLX1NFQ1RPUl9CSVRTKTsKKyAgZ3J1Yl9vZmZfdCBvZmYgPSBzZWN0 b3IgPDwgR1JVQl9ESVNLX1NFQ1RPUl9CSVRTOworICBncnViX3NpemVfdCBzaXplID0gc2l6ZV9z ZWN0b3JzIDw8IEdSVUJfRElTS19TRUNUT1JfQklUUzsKKyAgd2hpbGUgKHNpemUgPiAwKQorICAg IHsKKyAgICAgIHVuc2lnbmVkIGludCBpOworICAgICAgZ3J1Yl9zaXplX3QgdG9fcmVhZDsKKyAg ICAgIGdydWJfb2ZmX3QgcmVnX29mZnNldDsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBjYmZzZGlz a19tYXBfc2l6ZTsgaSsrKQorCWlmIChjYmZzZGlza19tYXBbaV0uZmxhc2hfYmFzZSA8PSBvZmYg JiYgb2ZmIDwgY2Jmc2Rpc2tfbWFwW2ldLmZsYXNoX2Jhc2UgKyBjYmZzZGlza19tYXBbaV0uc2l6 ZSkKKwkgIGJyZWFrOworICAgICAgaWYgKGkgPT0gY2Jmc2Rpc2tfbWFwX3NpemUpCisJeworCSAg Z3J1Yl9vZmZfdCBuZXh0ID0gLTE7CisJICBmb3IgKGkgPSAwOyBpIDwgY2Jmc2Rpc2tfbWFwX3Np emU7IGkrKykKKwkgICAgaWYgKGNiZnNkaXNrX21hcFtpXS5mbGFzaF9iYXNlID4gb2ZmICYmIG5l eHQgPiBjYmZzZGlza19tYXBbaV0uZmxhc2hfYmFzZSkKKwkgICAgICBuZXh0ID0gY2Jmc2Rpc2tf bWFwW2ldLmZsYXNoX2Jhc2U7CisJICB0b19yZWFkID0gZ3J1Yl9taW4gKHNpemUsIG5leHQgLSBv ZmYpOworCSAgZ3J1Yl9tZW1zZXQgKGJ1ZiwgMHhmZiwgdG9fcmVhZCk7CisJICBncnViX2Rwcmlu dGYoImNiZnMiLCAiRmlsbGluZyAweCV4IGJ5dGVzXG4iLCAodW5zaWduZWQpIHRvX3JlYWQpOwor CSAgYnVmICs9IHRvX3JlYWQ7CisJICBzaXplIC09IHRvX3JlYWQ7CisJICBvZmYgKz0gdG9fcmVh ZDsKKwkgIGNvbnRpbnVlOworICAgICAgfQorICAgICAgcmVnX29mZnNldCA9IG9mZiAtIGNiZnNk aXNrX21hcFtpXS5mbGFzaF9iYXNlOworICAgICAgdG9fcmVhZCA9IGdydWJfbWluIChzaXplLCBj YmZzZGlza19tYXBbaV0uc2l6ZSAtIHJlZ19vZmZzZXQpOworICAgICAgZ3J1Yl9tZW1jcHkgKGJ1 ZiwgKHZvaWQgKikgKGdydWJfYWRkcl90KSAoY2Jmc2Rpc2tfbWFwW2ldLmhvc3RfYmFzZSArIHJl Z19vZmZzZXQpLCB0b19yZWFkKTsKKyAgICAgIGdydWJfZHByaW50ZigiY2JmcyIsICJDb3B5aW5n ICVwLDB4JXggYnl0ZXNcbiIsICh2b2lkICopIChncnViX2FkZHJfdCkgKGNiZnNkaXNrX21hcFtp XS5ob3N0X2Jhc2UgKyByZWdfb2Zmc2V0KSwgKHVuc2lnbmVkKSB0b19yZWFkKTsKKyAgICAgIGJ1 ZiArPSB0b19yZWFkOworICAgICAgc2l6ZSAtPSB0b19yZWFkOworICAgICAgb2ZmICs9IHRvX3Jl YWQ7CisgICAgfQogICByZXR1cm4gMDsKIH0KIApAQCAtMzM2LDI5ICszNjgsODAgQEAgc3RhdGlj IHN0cnVjdCBncnViX2Rpc2tfZGV2IGdydWJfY2Jmc2Rpc2tfZGV2ID0KICAgICAubmV4dCA9IDAK ICAgfTsKIAorc3RydWN0IGNidGFibGVfaXRlcl9jdHh0IHsKKyAgaW50IGhhc19jb3JlYm9vdDsK KyAgc3RydWN0IGdydWJfbGludXhiaW9zX3RhYmxlX3NwaV9mbGFzaCAqc3BpOworICBzdHJ1Y3Qg Z3J1Yl9saW51eGJpb3NfdGFibGVfYm9vdF9tZWRpYSAqYm9vdF9tZWRpYTsKK307CisKK3N0YXRp YyBpbnQgY2J0YWJsZV9pdGVyIChncnViX2xpbnV4Ymlvc190YWJsZV9pdGVtX3QgaXRlbSwKKwkJ CSB2b2lkICpjdHh0X2luKQoreworICBzdHJ1Y3QgY2J0YWJsZV9pdGVyX2N0eHQgKmN0eHQgPSBj dHh0X2luOworCisgIGN0eHQtPmhhc19jb3JlYm9vdCA9IDE7CisKKyAgaWYgKGl0ZW0tPnRhZyA9 PSBHUlVCX0xJTlVYQklPU19NRU1CRVJfU1BJX0ZMQVNIKQorICAgIGN0eHQtPnNwaSA9ICh2b2lk ICopIChpdGVtICsgMSk7CisKKyAgaWYgKGl0ZW0tPnRhZyA9PSBHUlVCX0xJTlVYQklPU19NRU1C RVJfQk9PVF9NRURJQSkKKyAgICBjdHh0LT5ib290X21lZGlhID0gKHZvaWQgKikgKGl0ZW0gKyAx KTsKKworICByZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQKIGluaXRfY2Jmc2Rpc2sgKHZvaWQp CiB7Ci0gIGdydWJfdWludDMyX3QgcHRyOwotICBzdHJ1Y3QgY2Jmc19oZWFkZXIgKmhlYWQ7Ci0K LSAgcHRyID0gKigoZ3J1Yl91aW50MzJfdCAqKSBncnViX2Fic29sdXRlX3BvaW50ZXIgKDB4ZmZm ZmZmZmMpKTsKLSAgaGVhZCA9IChzdHJ1Y3QgY2Jmc19oZWFkZXIgKikgKGdydWJfYWRkcl90KSBw dHI7Ci0gIGdydWJfZHByaW50ZiAoImNiZnMiLCAiaGVhZD0lcFxuIiwgaGVhZCk7Ci0KLSAgLyog Y29yZWJvb3QgY3VycmVudCBzdXBwb3J0cyBvbmx5IFJPTXMgPD0gMTYgTWlCLiBCaWdnZXIgUk9N cyB3aWxsCi0gICAgIGhhdmUgcHJvYmxlbXMgYXMgUkNCQSBpcyAxOCBNaUIgYmVsb3cgZW5kIG9m IDMyLWJpdCB0eXBpY2FsbHksCi0gICAgIHNvIGVpdGhlciBtZW1vcnkgbWFwIHdvdWxkIGhhdmUg dG8gYmUgcmVhcnJhbmdlZCBvciB3ZSdkIG5lZWQgdG8gc3VwcG9ydAotICAgICByZWFkaW5nIFJP TXMgdGhyb3VnaCBjb250cm9sbGVyIGRpcmVjdGx5LgotICAgKi8KLSAgaWYgKHB0ciA8IDB4ZmYw MDAwMDAKLSAgICAgIHx8IDB4ZmZmZmZmZmYgLSBwdHIgPCAoZ3J1Yl91aW50MzJfdCkgc2l6ZW9m ICgqaGVhZCkgKyAweGYKLSAgICAgIHx8ICF2YWxpZGF0ZV9oZWFkIChoZWFkKSkKKyAgc3RydWN0 IGNidGFibGVfaXRlcl9jdHh0IGN0eHQgPSB7CisgICAgMCwgMCwgMAorICB9OworCisgIGdydWJf bGludXhiaW9zX3RhYmxlX2l0ZXJhdGUgKGNidGFibGVfaXRlciwgJmN0eHQpOworCisgIGlmICgh Y3R4dC5oYXNfY29yZWJvb3QpCiAgICAgcmV0dXJuOwogCi0gIGNiZnNkaXNrX3NpemUgPSBBTElH Tl9VUCAoZ3J1Yl9iZV90b19jcHUzMiAoaGVhZC0+cm9tc2l6ZSksCi0JCQkgICAgR1JVQl9ESVNL X1NFQ1RPUl9TSVpFKTsKLSAgY2Jmc2Rpc2tfYWRkciA9ICh2b2lkICopIChncnViX2FkZHJfdCkg KDB4MTAwMDAwMDAwVUxMIC0gY2Jmc2Rpc2tfc2l6ZSk7CisgIGlmIChjdHh0LnNwaSkKKyAgICB7 CisgICAgICBjYmZzZGlza19tYXAgPSBjdHh0LnNwaS0+bW1hcF90YWJsZTsKKyAgICAgIGNiZnNk aXNrX21hcF9zaXplID0gY3R4dC5zcGktPm1tYXBfY291bnQ7CisgICAgICBjYmZzZGlza19zaXpl ID0gY3R4dC5zcGktPmZsYXNoX3NpemU7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgaWYg KGN0eHQuYm9vdF9tZWRpYSkKKwljYmZzZGlza19zaXplID0gQUxJR05fVVAgKGdydWJfYmVfdG9f Y3B1MzIgKGN0eHQuYm9vdF9tZWRpYS0+Ym9vdF9tZWRpYV9zaXplKSwKKwkJCQkgIEdSVUJfRElT S19TRUNUT1JfU0laRSk7CisgICAgICBlbHNlCisJeworCSAgZ3J1Yl91aW50MzJfdCBwdHI7CisJ ICBzdHJ1Y3QgY2Jmc19oZWFkZXIgKmhlYWQ7CisKKwkgIHB0ciA9ICooKGdydWJfdWludDMyX3Qg KikgZ3J1Yl9hYnNvbHV0ZV9wb2ludGVyICgweGZmZmZmZmZjKSk7CisJICBoZWFkID0gKHN0cnVj dCBjYmZzX2hlYWRlciAqKSAoZ3J1Yl9hZGRyX3QpIHB0cjsKKwkgIGdydWJfZHByaW50ZiAoImNi ZnMiLCAiaGVhZD0lcFxuIiwgaGVhZCk7CisKKwkgIC8qIGNvcmVib290IGN1cnJlbnQgc3VwcG9y dHMgb25seSBST01zIDw9IDE2IE1pQi4gQmlnZ2VyIFJPTXMgd2lsbAorCSAgICAgaGF2ZSBwcm9i bGVtcyBhcyBSQ0JBIGlzIDE4IE1pQiBiZWxvdyBlbmQgb2YgMzItYml0IHR5cGljYWxseSwKKwkg ICAgIHNvIGVpdGhlciBtZW1vcnkgbWFwIHdvdWxkIGhhdmUgdG8gYmUgcmVhcnJhbmdlZCBvciB3 ZSdkIG5lZWQgdG8gc3VwcG9ydAorCSAgICAgcmVhZGluZyBST01zIHRocm91Z2ggY29udHJvbGxl ciBkaXJlY3RseS4KKwkgICovCisJICBpZiAocHRyIDwgMHhmZjAwMDAwMAorCSAgICAgIHx8IDB4 ZmZmZmZmZmYgLSBwdHIgPCAoZ3J1Yl91aW50MzJfdCkgc2l6ZW9mICgqaGVhZCkgKyAweGYKKwkg ICAgICB8fCAhdmFsaWRhdGVfaGVhZCAoaGVhZCkpCisJICAgIHJldHVybjsKKworCSAgY2Jmc2Rp c2tfc2l6ZSA9IEFMSUdOX1VQIChncnViX2JlX3RvX2NwdTMyIChoZWFkLT5yb21zaXplKSwKKwkJ CQkgICAgR1JVQl9ESVNLX1NFQ1RPUl9TSVpFKTsKKwl9CisgICAgICBjYmZzZGlza19tYXBfc2l6 ZSA9IDE7CisgICAgICBzdGF0aWMgc3RydWN0IGdydWJfbGludXhiaW9zX2ZsYXNoX21tYXBfd2lu ZG93IHNpbmdsZXRvbjsKKyAgICAgIHNpbmdsZXRvbi5mbGFzaF9iYXNlID0gMDsKKyAgICAgIHNp bmdsZXRvbi5ob3N0X2Jhc2UgPSAweDEwMDAwMDAwMFVMTCAtIGNiZnNkaXNrX3NpemU7CisgICAg ICBzaW5nbGV0b24uc2l6ZSA9IGNiZnNkaXNrX3NpemU7CisgICAgICBjYmZzZGlza19tYXAgPSAm c2luZ2xldG9uOworICB9CiAKICAgZ3J1Yl9kaXNrX2Rldl9yZWdpc3RlciAoJmdydWJfY2Jmc2Rp c2tfZGV2KTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9jb3JlYm9vdC9sYmlvLmggYi9p bmNsdWRlL2dydWIvY29yZWJvb3QvbGJpby5oCmluZGV4IDUwNzZkMzZjNy4uZjg2NDFmNDYzIDEw MDY0NAotLS0gYS9pbmNsdWRlL2dydWIvY29yZWJvb3QvbGJpby5oCisrKyBiL2luY2x1ZGUvZ3J1 Yi9jb3JlYm9vdC9sYmlvLmgKQEAgLTcxLDcgKzcxLDkgQEAgZW51bQogICAgIEdSVUJfTElOVVhC SU9TX01FTUJFUl9MSU5LICAgICAgICA9IDB4MTEsCiAgICAgR1JVQl9MSU5VWEJJT1NfTUVNQkVS X0ZSQU1FQlVGRkVSID0gMHgxMiwKICAgICBHUlVCX0xJTlVYQklPU19NRU1CRVJfVElNRVNUQU1Q UyAgPSAweDE2LAotICAgIEdSVUJfTElOVVhCSU9TX01FTUJFUl9DQk1FTUMgICAgICA9IDB4MTcK KyAgICBHUlVCX0xJTlVYQklPU19NRU1CRVJfQ0JNRU1DICAgICAgPSAweDE3LAorICAgIEdSVUJf TElOVVhCSU9TX01FTUJFUl9TUElfRkxBU0ggICA9IDB4MjksCisgICAgR1JVQl9MSU5VWEJJT1Nf TUVNQkVSX0JPT1RfTUVESUEgID0gMHgzMCwKICAgfTsKIAogc3RydWN0IGdydWJfbGludXhiaW9z X3RhYmxlX2ZyYW1lYnVmZmVyIHsKQEAgLTEwMCw2ICsxMDIsMjcgQEAgc3RydWN0IGdydWJfbGlu dXhiaW9zX21lbV9yZWdpb24KIH0gR1JVQl9QQUNLRUQ7CiB0eXBlZGVmIHN0cnVjdCBncnViX2xp bnV4Ymlvc19tZW1fcmVnaW9uICptZW1fcmVnaW9uX3Q7CiAKK3N0cnVjdCBncnViX2xpbnV4Ymlv c19mbGFzaF9tbWFwX3dpbmRvdyB7CisgIGdydWJfdWludDMyX3QgZmxhc2hfYmFzZTsKKyAgZ3J1 Yl91aW50MzJfdCBob3N0X2Jhc2U7CisgIGdydWJfdWludDMyX3Qgc2l6ZTsKK30gR1JVQl9QQUNL RUQ7CisKK3N0cnVjdCBncnViX2xpbnV4Ymlvc190YWJsZV9zcGlfZmxhc2ggeworICBncnViX3Vp bnQzMl90IGZsYXNoX3NpemU7CisgIGdydWJfdWludDMyX3Qgc2VjdG9yX3NpemU7CisgIGdydWJf dWludDMyX3QgZXJhc2VfY21kOworICBncnViX3VpbnQzMl90IG1tYXBfY291bnQ7CisgIHN0cnVj dCBncnViX2xpbnV4Ymlvc19mbGFzaF9tbWFwX3dpbmRvdyBtbWFwX3RhYmxlWzBdOworfSBHUlVC X1BBQ0tFRDsKKworc3RydWN0IGdydWJfbGludXhiaW9zX3RhYmxlX2Jvb3RfbWVkaWEgeworICBn cnViX3VpbnQ2NF90IGZtYXBfb2Zmc2V0OworICBncnViX3VpbnQ2NF90IGNiZnNfb2Zmc2V0Owor ICBncnViX3VpbnQ2NF90IGNiZnNfc2l6ZTsKKyAgZ3J1Yl91aW50NjRfdCBib290X21lZGlhX3Np emU7Cit9IEdSVUJfUEFDS0VEOworCiBncnViX2Vycl90CiBFWFBPUlRfRlVOQyhncnViX2xpbnV4 Ymlvc190YWJsZV9pdGVyYXRlKSAoaW50ICgqaG9vaykgKGdydWJfbGludXhiaW9zX3RhYmxlX2l0 ZW1fdCwKIAkJCQkJICAgdm9pZCAqKSwKLS0gCjIuMzkuMgoK --0000000000006d57c50613b855cd Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZl bCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK --0000000000006d57c50613b855cd--