From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language :from:to:references:autocrypt:in-reply-to; bh=1RwW9+Va/iF1a0KKNATAh1Jbcr9NYPQXAdM7lzgze7A=; b=GbnR8laFKfj8Tufs3RYvq6F6ahjzUEZPQkVAuNg/RlBf7i2cbWQZK+FHUogOgypfyi abo4fragBIBvYBfYKQq06GgQHWJ1jTcyMQaL0fVZXHjMd0vsKs7sOdne9V0/4azzzaw0 LJxFKOLlY90qiZEL5zPZORhNyjT4aj6EPKgW2LZHOCUdcylxXNM+HIf+x9SIjkEBdX57 awEN3RSRMneW6mbaYjhDhwPzsJjaasoyPc5MnBJ1IBI+yVwLjZqq/SqAhBewkwLcToC4 FhtDefWVb3J4Pz8H0d0iilpn7DmfhrKpgny7QfB7lKxqFMdcJKZi7ZoVTaXGMuZTFXZk yDTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:from:to:references:autocrypt:in-reply-to; bh=1RwW9+Va/iF1a0KKNATAh1Jbcr9NYPQXAdM7lzgze7A=; b=ssrrs9dbKIDobkU16VZKTliNtGs/pZfJQgD+7gEYLLz0scqQp1I4KRXJQ+Xw1gCIaD 7EmujB3ifh8ibfWeK4OGVNAHoOAuqyaLHvXo0giGm6gLh0I4KiGI+WmcUHUBjzaiBSVe x4pJ9I2ASEULBL1xAuieIgiu2qDgZyj2q0lcZH1w0rhHPlUD2JMArv4vrcsXTuFypjSp 9Vpi6dlMr/FEZjgo+6592MP3hG/J572JDgUsG2M6qISMT/I+zYeqnsLWs7ENwOeH2Tsj NeDfrytOksHTS8s39pjRm11vKe+W9s2Xj/4+XRsp52PKMCrey9/rB/4RuY5HQarZtGvr f7ww== X-Gm-Message-State: AOAM533dGuyI2/MBypELhrTwnLCk/MZUaSPpZyfCzhaDGp1pyh/6leiv /A8OamaE7kr3xlEQlGdEYz5TWyJC7WQRl2IqLbOQww== X-Google-Smtp-Source: ABdhPJzSQS3e/hN0dHnFo280kbhrY1bKdeZYPJrkY7605GpXkQXZWX3qNPvf1mGWlox+yAV1Q8C+Aw== X-Received: by 2002:a05:6512:1109:b0:473:e6de:2fb7 with SMTP id l9-20020a056512110900b00473e6de2fb7mr34422406lfg.262.1653805003298; Sat, 28 May 2022 23:16:43 -0700 (PDT) Message-ID: <911bdff3-6c96-df5e-1212-8a3b3adeffc1@gmail.com> Date: Sun, 29 May 2022 09:16:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Content-Language: ru From: Ruslandh To: devel-kernel@lists.altlinux.org References: <1e1b40f6-aa96-17c4-e98d-db82447a963b@gmail.com> Autocrypt: addr=ruslandh@gmail.com; keydata= xjMEX1tGoRYJKwYBBAHaRw8BAQdA5XlMuBj8N8GAo7mpY/tDB4e7E2ma+HW5Yu3lkD3bGK7N G1J1c2xhbiA8cnVzbGFuZGhAZ21haWwuY29tPsKRBBMWCAA5FiEESsk7qYwppMRLeZ7ENQ1T IVtfj2IFAl9bRqEFCQWjmoACGwMFCwkIBwIGFQgJCgsCBRYCAwEAAAoJEDUNUyFbX49iPP8B AKKkmF1YSFKXgqBaqOwtMGMjRpchKaHk66f2Op84dcxNAP42ooXpqn/FB6Yi4Hro9elePSmU 0lrlRP5Ph6g7apw5AM44BF9bRqESCisGAQQBl1UBBQEBB0CUj7vPp0SpMyHRSZfRXVIfQI/N 8vsUzW9r1D6+E//XRgMBCAfCfgQYFggAJhYhBErJO6mMKaTES3mexDUNUyFbX49iBQJfW0ah BQkFo5qAAhsMAAoJEDUNUyFbX49ib64A+wfOYe63TWv4AKQt6nb46r8ZBkOup3p2KcMzwzC3 RmqcAP9l5rdXLUwXvoNSNs1v7BKKcpYsZWIvTehFlg1BxeFuBw== In-Reply-To: <1e1b40f6-aa96-17c4-e98d-db82447a963b@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------63XMCU5O2hPM7zO8p6w5Imb7" Subject: Re: [d-kernel] =?utf-8?b?0JzQvtC00YPQu9GMIGlwaGV0aA==?= X-BeenThere: devel-kernel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 May 2022 06:16:47 -0000 Archived-At: List-Archive: List-Post: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------63XMCU5O2hPM7zO8p6w5Imb7 Content-Type: multipart/mixed; boundary="------------zhCzSKVs80yfo6LeoVqkRkys"; protected-headers="v1" From: Ruslandh To: devel-kernel@lists.altlinux.org Message-ID: <911bdff3-6c96-df5e-1212-8a3b3adeffc1@gmail.com> Subject: =?UTF-8?B?UmU6INCc0L7QtNGD0LvRjCBpcGhldGg=?= References: <1e1b40f6-aa96-17c4-e98d-db82447a963b@gmail.com> In-Reply-To: <1e1b40f6-aa96-17c4-e98d-db82447a963b@gmail.com> --------------zhCzSKVs80yfo6LeoVqkRkys Content-Type: multipart/mixed; boundary="------------j8eHzUoc0RiD5h1cPty6Ns4T" --------------j8eHzUoc0RiD5h1cPty6Ns4T Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQrQodC00LXQu9Cw0LsNCmdpdCBjbG9uZSANCmh0dHBzOi8vZ2l0LmxhdW5jaHBhZC5uZXQv fnVidW50dS1rZXJuZWwvdWJ1bnR1Lytzb3VyY2UvbGludXgvK2dpdC9jb3NtaWMNCg0K0KMg VWJ1bnR1LCDQs9C00LUg0YDQsNCx0L7RgtCw0LXRgiBpcGhvbmUg0LIg0LrQsNGH0LXRgdGC 0LLQtSDQvNC+0LTQtdC80LAsINGB0L7QstGB0LXQvCDQtNGA0YPQs9C+0Lkg0LzQvtC00YPQ u9GMIGlwaGV0aA0KDQo= --------------j8eHzUoc0RiD5h1cPty6Ns4T Content-Type: text/x-csrc; charset=UTF-8; name="ipheth.c" Content-Disposition: attachment; filename="ipheth.c" Content-Transfer-Encoding: base64 LyoKICogaXBoZXRoLmMgLSBBcHBsZSBpUGhvbmUgVVNCIEV0aGVybmV0IGRyaXZlcgogKgog KiBDb3B5cmlnaHQgKGMpIDIwMDkgRGllZ28gR2lhZ2lvIDxkaWVnb0BnaWFnaW8uY29tPgog KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZpY2F0 aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zCiAqIGFyZSBtZXQ6CiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0 IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICogMi4gUmVk aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj b3B5cmlnaHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogKiAz LiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdJQUdJTy5DT00gbm9yIHRoZSBuYW1lcyBvZiBpdHMg Y29udHJpYnV0b3JzCiAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQogKiAgICB3aXRob3V0IHNwZWNp ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogQWx0ZXJuYXRpdmVseSwgcHJv dmlkZWQgdGhhdCB0aGlzIG5vdGljZSBpcyByZXRhaW5lZCBpbiBmdWxsLCB0aGlzCiAqIHNv ZnR3YXJlIG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsCiAqIFB1YmxpYyBMaWNlbnNlICgiR1BMIikgdmVyc2lvbiAyLCBpbiB3aGljaCBj YXNlIHRoZSBwcm92aXNpb25zIG9mIHRoZQogKiBHUEwgYXBwbHkgSU5TVEVBRCBPRiB0aG9z ZSBnaXZlbiBhYm92ZS4KICoKICogVGhlIHByb3ZpZGVkIGRhdGEgc3RydWN0dXJlcyBhbmQg ZXh0ZXJuYWwgaW50ZXJmYWNlcyBmcm9tIHRoaXMgY29kZQogKiBhcmUgbm90IHJlc3RyaWN0 ZWQgdG8gYmUgdXNlZCBieSBtb2R1bGVzIHdpdGggYSBHUEwgY29tcGF0aWJsZSBsaWNlbnNl LgogKgogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M REVSUyBBTkQgQ09OVFJJQlVUT1JTCiAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiAqIExJTUlURUQgVE8sIFRI RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP UgogKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFIENPUFlSSUdIVAogKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKICogU1BFQ0lBTCwgRVhF TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAog KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ Q0VTOyBMT1NTIE9GIFVTRSwKICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiAqIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZIE9VVCBPRiBUSEUgVVNFCiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAogKiBEQU1BR0UuCiAqCiAqCiAqIEF0dGVu dGlvbjogaVBob25lIGRldmljZSBtdXN0IGJlIHBhaXJlZCwgb3RoZXJ3aXNlIGl0IHdvbid0 IHJlc3BvbmQgdG8gb3VyCiAqIGRyaXZlci4gRm9yIG1vcmUgaW5mbzogaHR0cDovL2dpYWdp by5jb20vd2lraS9tb2luLmNnaS9pUGhvbmVFdGhlcm5ldERyaXZlcgogKgogKi8KCiNpbmNs dWRlIDxsaW51eC9rZXJuZWwuaD4KI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiNpbmNsdWRl IDxsaW51eC9zbGFiLmg+CiNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KI2luY2x1ZGUgPGxp bnV4L25ldGRldmljZS5oPgojaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4KI2luY2x1 ZGUgPGxpbnV4L2V0aHRvb2wuaD4KI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgojaW5jbHVkZSA8 bGludXgvd29ya3F1ZXVlLmg+CgojZGVmaW5lIFVTQl9WRU5ET1JfQVBQTEUgICAgICAgIDB4 MDVhYwojZGVmaW5lIFVTQl9QUk9EVUNUX0lQSE9ORSAgICAgIDB4MTI5MAojZGVmaW5lIFVT Ql9QUk9EVUNUX0lQSE9ORV8zRyAgIDB4MTI5MgojZGVmaW5lIFVTQl9QUk9EVUNUX0lQSE9O RV8zR1MgIDB4MTI5NAojZGVmaW5lIFVTQl9QUk9EVUNUX0lQSE9ORV80CTB4MTI5NwojZGVm aW5lIFVTQl9QUk9EVUNUX0lQQUQgMHgxMjlhCiNkZWZpbmUgVVNCX1BST0RVQ1RfSVBBRF8y CTB4MTJhMgojZGVmaW5lIFVTQl9QUk9EVUNUX0lQQURfMwkweDEyYTYKI2RlZmluZSBVU0Jf UFJPRFVDVF9JUEFEX01JTkkgICAgMHgxMmFiCiNkZWZpbmUgVVNCX1BST0RVQ1RfSVBIT05F XzRfVlpXIDB4MTI5YwojZGVmaW5lIFVTQl9QUk9EVUNUX0lQSE9ORV80UwkweDEyYTAKI2Rl ZmluZSBVU0JfUFJPRFVDVF9JUEhPTkVfNQkweDEyYTgKCiNkZWZpbmUgSVBIRVRIX1VTQklO VEZfQ0xBU1MgICAgMjU1CiNkZWZpbmUgSVBIRVRIX1VTQklOVEZfU1VCQ0xBU1MgMjUzCiNk ZWZpbmUgSVBIRVRIX1VTQklOVEZfUFJPVE8gICAgMQoKI2RlZmluZSBJUEhFVEhfQlVGX1NJ WkUgICAgICAgICAxNTE2CiNkZWZpbmUgSVBIRVRIX0lQX0FMSUdOCQkyCS8qIHBhZGRpbmcg YXQgZnJvbnQgb2YgVVJCICovCiNkZWZpbmUgSVBIRVRIX1RYX1RJTUVPVVQgICAgICAgKDUg KiBIWikKCiNkZWZpbmUgSVBIRVRIX0lOVEZOVU0gICAgICAgICAgMgojZGVmaW5lIElQSEVU SF9BTFRfSU5URk5VTSAgICAgIDEKCiNkZWZpbmUgSVBIRVRIX0NUUkxfRU5EUCAgICAgICAg MHgwMAojZGVmaW5lIElQSEVUSF9DVFJMX0JVRl9TSVpFICAgIDB4NDAKI2RlZmluZSBJUEhF VEhfQ1RSTF9USU1FT1VUICAgICAoNSAqIEhaKQoKI2RlZmluZSBJUEhFVEhfQ01EX0dFVF9N QUNBRERSICAgMHgwMAojZGVmaW5lIElQSEVUSF9DTURfQ0FSUklFUl9DSEVDSyAweDQ1Cgoj ZGVmaW5lIElQSEVUSF9DQVJSSUVSX0NIRUNLX1RJTUVPVVQgcm91bmRfamlmZmllc19yZWxh dGl2ZSgxICogSFopCiNkZWZpbmUgSVBIRVRIX0NBUlJJRVJfT04gICAgICAgMHgwNAoKc3Rh dGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlwaGV0aF90YWJsZVtdID0gewoJeyBV U0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygKCQlVU0JfVkVORE9SX0FQUExFLCBVU0Jf UFJPRFVDVF9JUEhPTkUsCgkJSVBIRVRIX1VTQklOVEZfQ0xBU1MsIElQSEVUSF9VU0JJTlRG X1NVQkNMQVNTLAoJCUlQSEVUSF9VU0JJTlRGX1BST1RPKSB9LAoJeyBVU0JfREVWSUNFX0FO RF9JTlRFUkZBQ0VfSU5GTygKCQlVU0JfVkVORE9SX0FQUExFLCBVU0JfUFJPRFVDVF9JUEhP TkVfM0csCgkJSVBIRVRIX1VTQklOVEZfQ0xBU1MsIElQSEVUSF9VU0JJTlRGX1NVQkNMQVNT LAoJCUlQSEVUSF9VU0JJTlRGX1BST1RPKSB9LAoJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZB Q0VfSU5GTygKCQlVU0JfVkVORE9SX0FQUExFLCBVU0JfUFJPRFVDVF9JUEhPTkVfM0dTLAoJ CUlQSEVUSF9VU0JJTlRGX0NMQVNTLCBJUEhFVEhfVVNCSU5URl9TVUJDTEFTUywKCQlJUEhF VEhfVVNCSU5URl9QUk9UTykgfSwKCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8o CgkJVVNCX1ZFTkRPUl9BUFBMRSwgVVNCX1BST0RVQ1RfSVBIT05FXzQsCgkJSVBIRVRIX1VT QklOVEZfQ0xBU1MsIElQSEVUSF9VU0JJTlRGX1NVQkNMQVNTLAoJCUlQSEVUSF9VU0JJTlRG X1BST1RPKSB9LAoJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygKCQlVU0JfVkVO RE9SX0FQUExFLCBVU0JfUFJPRFVDVF9JUEFELAoJCUlQSEVUSF9VU0JJTlRGX0NMQVNTLCBJ UEhFVEhfVVNCSU5URl9TVUJDTEFTUywKCQlJUEhFVEhfVVNCSU5URl9QUk9UTykgfSwKCXsg VVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oCgkJVVNCX1ZFTkRPUl9BUFBMRSwgVVNC X1BST0RVQ1RfSVBBRF8yLAoJCUlQSEVUSF9VU0JJTlRGX0NMQVNTLCBJUEhFVEhfVVNCSU5U Rl9TVUJDTEFTUywKCQlJUEhFVEhfVVNCSU5URl9QUk9UTykgfSwKCXsgVVNCX0RFVklDRV9B TkRfSU5URVJGQUNFX0lORk8oCgkJVVNCX1ZFTkRPUl9BUFBMRSwgVVNCX1BST0RVQ1RfSVBB RF8zLAoJCUlQSEVUSF9VU0JJTlRGX0NMQVNTLCBJUEhFVEhfVVNCSU5URl9TVUJDTEFTUywK CQlJUEhFVEhfVVNCSU5URl9QUk9UTykgfSwKCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNF X0lORk8oCgkJVVNCX1ZFTkRPUl9BUFBMRSwgVVNCX1BST0RVQ1RfSVBBRF9NSU5JLAoJCUlQ SEVUSF9VU0JJTlRGX0NMQVNTLCBJUEhFVEhfVVNCSU5URl9TVUJDTEFTUywKCQlJUEhFVEhf VVNCSU5URl9QUk9UTykgfSwKCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oCgkJ VVNCX1ZFTkRPUl9BUFBMRSwgVVNCX1BST0RVQ1RfSVBIT05FXzRfVlpXLAoJCUlQSEVUSF9V U0JJTlRGX0NMQVNTLCBJUEhFVEhfVVNCSU5URl9TVUJDTEFTUywKCQlJUEhFVEhfVVNCSU5U Rl9QUk9UTykgfSwKCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oCgkJVVNCX1ZF TkRPUl9BUFBMRSwgVVNCX1BST0RVQ1RfSVBIT05FXzRTLAoJCUlQSEVUSF9VU0JJTlRGX0NM QVNTLCBJUEhFVEhfVVNCSU5URl9TVUJDTEFTUywKCQlJUEhFVEhfVVNCSU5URl9QUk9UTykg fSwKCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oCgkJVVNCX1ZFTkRPUl9BUFBM RSwgVVNCX1BST0RVQ1RfSVBIT05FXzUsCgkJSVBIRVRIX1VTQklOVEZfQ0xBU1MsIElQSEVU SF9VU0JJTlRGX1NVQkNMQVNTLAoJCUlQSEVUSF9VU0JJTlRGX1BST1RPKSB9LAoJeyB9Cn07 Ck1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBpcGhldGhfdGFibGUpOwoKc3RydWN0IGlwaGV0 aF9kZXZpY2UgewoJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7CglzdHJ1Y3QgdXNiX2ludGVy ZmFjZSAqaW50ZjsKCXN0cnVjdCBuZXRfZGV2aWNlICpuZXQ7CglzdHJ1Y3Qgc2tfYnVmZiAq dHhfc2tiOwoJc3RydWN0IHVyYiAqdHhfdXJiOwoJc3RydWN0IHVyYiAqcnhfdXJiOwoJdW5z aWduZWQgY2hhciAqdHhfYnVmOwoJdW5zaWduZWQgY2hhciAqcnhfYnVmOwoJdW5zaWduZWQg Y2hhciAqY3RybF9idWY7Cgl1OCBidWxrX2luOwoJdTggYnVsa19vdXQ7CglzdHJ1Y3QgZGVs YXllZF93b3JrIGNhcnJpZXJfd29yazsKCWJvb2wgY29uZmlybWVkX3BhaXJpbmc7Cn07Cgpz dGF0aWMgaW50IGlwaGV0aF9yeF9zdWJtaXQoc3RydWN0IGlwaGV0aF9kZXZpY2UgKmRldiwg Z2ZwX3QgbWVtX2ZsYWdzKTsKCnN0YXRpYyBpbnQgaXBoZXRoX2FsbG9jX3VyYnMoc3RydWN0 IGlwaGV0aF9kZXZpY2UgKmlwaG9uZSkKewoJc3RydWN0IHVyYiAqdHhfdXJiID0gTlVMTDsK CXN0cnVjdCB1cmIgKnJ4X3VyYiA9IE5VTEw7Cgl1OCAqdHhfYnVmID0gTlVMTDsKCXU4ICpy eF9idWYgPSBOVUxMOwoKCXR4X3VyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7 CglpZiAodHhfdXJiID09IE5VTEwpCgkJZ290byBlcnJvcl9ub21lbTsKCglyeF91cmIgPSB1 c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOwoJaWYgKHJ4X3VyYiA9PSBOVUxMKQoJCWdv dG8gZnJlZV90eF91cmI7CgoJdHhfYnVmID0gdXNiX2FsbG9jX2NvaGVyZW50KGlwaG9uZS0+ dWRldiwgSVBIRVRIX0JVRl9TSVpFLAoJCQkJICAgIEdGUF9LRVJORUwsICZ0eF91cmItPnRy YW5zZmVyX2RtYSk7CglpZiAodHhfYnVmID09IE5VTEwpCgkJZ290byBmcmVlX3J4X3VyYjsK CglyeF9idWYgPSB1c2JfYWxsb2NfY29oZXJlbnQoaXBob25lLT51ZGV2LCBJUEhFVEhfQlVG X1NJWkUsCgkJCQkgICAgR0ZQX0tFUk5FTCwgJnJ4X3VyYi0+dHJhbnNmZXJfZG1hKTsKCWlm IChyeF9idWYgPT0gTlVMTCkKCQlnb3RvIGZyZWVfdHhfYnVmOwoKCglpcGhvbmUtPnR4X3Vy YiA9IHR4X3VyYjsKCWlwaG9uZS0+cnhfdXJiID0gcnhfdXJiOwoJaXBob25lLT50eF9idWYg PSB0eF9idWY7CglpcGhvbmUtPnJ4X2J1ZiA9IHJ4X2J1ZjsKCXJldHVybiAwOwoKZnJlZV90 eF9idWY6Cgl1c2JfZnJlZV9jb2hlcmVudChpcGhvbmUtPnVkZXYsIElQSEVUSF9CVUZfU0la RSwgdHhfYnVmLAoJCQkgIHR4X3VyYi0+dHJhbnNmZXJfZG1hKTsKZnJlZV9yeF91cmI6Cgl1 c2JfZnJlZV91cmIocnhfdXJiKTsKZnJlZV90eF91cmI6Cgl1c2JfZnJlZV91cmIodHhfdXJi KTsKZXJyb3Jfbm9tZW06CglyZXR1cm4gLUVOT01FTTsKfQoKc3RhdGljIHZvaWQgaXBoZXRo X2ZyZWVfdXJicyhzdHJ1Y3QgaXBoZXRoX2RldmljZSAqaXBob25lKQp7Cgl1c2JfZnJlZV9j b2hlcmVudChpcGhvbmUtPnVkZXYsIElQSEVUSF9CVUZfU0laRSwgaXBob25lLT5yeF9idWYs CgkJCSAgaXBob25lLT5yeF91cmItPnRyYW5zZmVyX2RtYSk7Cgl1c2JfZnJlZV9jb2hlcmVu dChpcGhvbmUtPnVkZXYsIElQSEVUSF9CVUZfU0laRSwgaXBob25lLT50eF9idWYsCgkJCSAg aXBob25lLT50eF91cmItPnRyYW5zZmVyX2RtYSk7Cgl1c2JfZnJlZV91cmIoaXBob25lLT5y eF91cmIpOwoJdXNiX2ZyZWVfdXJiKGlwaG9uZS0+dHhfdXJiKTsKfQoKc3RhdGljIHZvaWQg aXBoZXRoX2tpbGxfdXJicyhzdHJ1Y3QgaXBoZXRoX2RldmljZSAqZGV2KQp7Cgl1c2Jfa2ls bF91cmIoZGV2LT50eF91cmIpOwoJdXNiX2tpbGxfdXJiKGRldi0+cnhfdXJiKTsKfQoKc3Rh dGljIHZvaWQgaXBoZXRoX3JjdmJ1bGtfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKQp7Cglz dHJ1Y3QgaXBoZXRoX2RldmljZSAqZGV2OwoJc3RydWN0IHNrX2J1ZmYgKnNrYjsKCWludCBz dGF0dXM7CgljaGFyICpidWY7CglpbnQgbGVuOwoKCWRldiA9IHVyYi0+Y29udGV4dDsKCWlm IChkZXYgPT0gTlVMTCkKCQlyZXR1cm47CgoJc3RhdHVzID0gdXJiLT5zdGF0dXM7Cglzd2l0 Y2ggKHN0YXR1cykgewoJY2FzZSAtRU5PRU5UOgoJY2FzZSAtRUNPTk5SRVNFVDoKCWNhc2Ug LUVTSFVURE9XTjoKCQlyZXR1cm47CgljYXNlIDA6CgkJYnJlYWs7CglkZWZhdWx0OgoJCWRl dl9lcnIoJmRldi0+aW50Zi0+ZGV2LCAiJXM6IHVyYiBzdGF0dXM6ICVkXG4iLAoJCQlfX2Z1 bmNfXywgc3RhdHVzKTsKCQlyZXR1cm47Cgl9CgoJaWYgKHVyYi0+YWN0dWFsX2xlbmd0aCA8 PSBJUEhFVEhfSVBfQUxJR04pIHsKCQlkZXYtPm5ldC0+c3RhdHMucnhfbGVuZ3RoX2Vycm9y cysrOwoJCXJldHVybjsKCX0KCWxlbiA9IHVyYi0+YWN0dWFsX2xlbmd0aCAtIElQSEVUSF9J UF9BTElHTjsKCWJ1ZiA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyICsgSVBIRVRIX0lQX0FMSUdO OwoKCXNrYiA9IGRldl9hbGxvY19za2IobGVuKTsKCWlmICghc2tiKSB7CgkJZGV2X2Vycigm ZGV2LT5pbnRmLT5kZXYsICIlczogZGV2X2FsbG9jX3NrYjogLUVOT01FTVxuIiwKCQkJX19m dW5jX18pOwoJCWRldi0+bmV0LT5zdGF0cy5yeF9kcm9wcGVkKys7CgkJcmV0dXJuOwoJfQoK CXNrYl9wdXRfZGF0YShza2IsIGJ1ZiwgbGVuKTsKCXNrYi0+ZGV2ID0gZGV2LT5uZXQ7Cglz a2ItPnByb3RvY29sID0gZXRoX3R5cGVfdHJhbnMoc2tiLCBkZXYtPm5ldCk7CgoJZGV2LT5u ZXQtPnN0YXRzLnJ4X3BhY2tldHMrKzsKCWRldi0+bmV0LT5zdGF0cy5yeF9ieXRlcyArPSBs ZW47CglkZXYtPmNvbmZpcm1lZF9wYWlyaW5nID0gdHJ1ZTsKCW5ldGlmX3J4KHNrYik7Cglp cGhldGhfcnhfc3VibWl0KGRldiwgR0ZQX0FUT01JQyk7Cn0KCnN0YXRpYyB2b2lkIGlwaGV0 aF9zbmRidWxrX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYikKewoJc3RydWN0IGlwaGV0aF9k ZXZpY2UgKmRldjsKCWludCBzdGF0dXMgPSB1cmItPnN0YXR1czsKCglkZXYgPSB1cmItPmNv bnRleHQ7CglpZiAoZGV2ID09IE5VTEwpCgkJcmV0dXJuOwoKCWlmIChzdGF0dXMgIT0gMCAm JgoJICAgIHN0YXR1cyAhPSAtRU5PRU5UICYmCgkgICAgc3RhdHVzICE9IC1FQ09OTlJFU0VU ICYmCgkgICAgc3RhdHVzICE9IC1FU0hVVERPV04pCgkJZGV2X2VycigmZGV2LT5pbnRmLT5k ZXYsICIlczogdXJiIHN0YXR1czogJWRcbiIsCgkJX19mdW5jX18sIHN0YXR1cyk7CgoJZGV2 X2tmcmVlX3NrYl9pcnEoZGV2LT50eF9za2IpOwoJaWYgKHN0YXR1cyA9PSAwKQoJCW5ldGlm X3dha2VfcXVldWUoZGV2LT5uZXQpOwoJZWxzZQoJCS8vIG9uIFVSQiBlcnJvciwgdHJpZ2dl ciBpbW1lZGlhdGUgcG9sbAoJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2LT5jYXJyaWVy X3dvcmssIDApOwp9CgpzdGF0aWMgaW50IGlwaGV0aF9jYXJyaWVyX3NldChzdHJ1Y3QgaXBo ZXRoX2RldmljZSAqZGV2KQp7CglzdHJ1Y3QgdXNiX2RldmljZSAqdWRldjsKCWludCByZXR2 YWw7CgoJaWYgKCFkZXYpCgkJcmV0dXJuIDA7CglpZiAoIWRldi0+Y29uZmlybWVkX3BhaXJp bmcpCgkJcmV0dXJuIDA7CgoJdWRldiA9IGRldi0+dWRldjsKCXJldHZhbCA9IHVzYl9jb250 cm9sX21zZyh1ZGV2LAoJCQl1c2JfcmN2Y3RybHBpcGUodWRldiwgSVBIRVRIX0NUUkxfRU5E UCksCgkJCUlQSEVUSF9DTURfQ0FSUklFUl9DSEVDSywgLyogcmVxdWVzdCAqLwoJCQkweGMw LCAvKiByZXF1ZXN0IHR5cGUgKi8KCQkJMHgwMCwgLyogdmFsdWUgKi8KCQkJMHgwMiwgLyog aW5kZXggKi8KCQkJZGV2LT5jdHJsX2J1ZiwgSVBIRVRIX0NUUkxfQlVGX1NJWkUsCgkJCUlQ SEVUSF9DVFJMX1RJTUVPVVQpOwoJaWYgKHJldHZhbCA8IDApIHsKCQlkZXZfZXJyKCZkZXYt PmludGYtPmRldiwgIiVzOiB1c2JfY29udHJvbF9tc2c6ICVkXG4iLAoJCQlfX2Z1bmNfXywg cmV0dmFsKTsKCQlyZXR1cm4gcmV0dmFsOwoJfQoKCWlmIChkZXYtPmN0cmxfYnVmWzBdID09 IElQSEVUSF9DQVJSSUVSX09OKSB7CgkJbmV0aWZfY2Fycmllcl9vbihkZXYtPm5ldCk7CgkJ aWYgKGRldi0+dHhfdXJiLT5zdGF0dXMgIT0gLUVJTlBST0dSRVNTKQoJCQluZXRpZl93YWtl X3F1ZXVlKGRldi0+bmV0KTsKCX0gZWxzZSB7CgkJbmV0aWZfY2Fycmllcl9vZmYoZGV2LT5u ZXQpOwoJCW5ldGlmX3N0b3BfcXVldWUoZGV2LT5uZXQpOwoJfQoJcmV0dXJuIDA7Cn0KCnN0 YXRpYyB2b2lkIGlwaGV0aF9jYXJyaWVyX2NoZWNrX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQp7CglzdHJ1Y3QgaXBoZXRoX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKHdv cmssIHN0cnVjdCBpcGhldGhfZGV2aWNlLAoJCQkJCQkgY2Fycmllcl93b3JrLndvcmspOwoK CWlwaGV0aF9jYXJyaWVyX3NldChkZXYpOwoJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXYt PmNhcnJpZXJfd29yaywgSVBIRVRIX0NBUlJJRVJfQ0hFQ0tfVElNRU9VVCk7Cn0KCnN0YXRp YyBpbnQgaXBoZXRoX2dldF9tYWNhZGRyKHN0cnVjdCBpcGhldGhfZGV2aWNlICpkZXYpCnsK CXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OwoJc3RydWN0IG5ldF9kZXZp Y2UgKm5ldCA9IGRldi0+bmV0OwoJaW50IHJldHZhbDsKCglyZXR2YWwgPSB1c2JfY29udHJv bF9tc2codWRldiwKCQkJCSB1c2JfcmN2Y3RybHBpcGUodWRldiwgSVBIRVRIX0NUUkxfRU5E UCksCgkJCQkgSVBIRVRIX0NNRF9HRVRfTUFDQUREUiwgLyogcmVxdWVzdCAqLwoJCQkJIDB4 YzAsIC8qIHJlcXVlc3QgdHlwZSAqLwoJCQkJIDB4MDAsIC8qIHZhbHVlICovCgkJCQkgMHgw MiwgLyogaW5kZXggKi8KCQkJCSBkZXYtPmN0cmxfYnVmLAoJCQkJIElQSEVUSF9DVFJMX0JV Rl9TSVpFLAoJCQkJIElQSEVUSF9DVFJMX1RJTUVPVVQpOwoJaWYgKHJldHZhbCA8IDApIHsK CQlkZXZfZXJyKCZkZXYtPmludGYtPmRldiwgIiVzOiB1c2JfY29udHJvbF9tc2c6ICVkXG4i LAoJCQlfX2Z1bmNfXywgcmV0dmFsKTsKCX0gZWxzZSBpZiAocmV0dmFsIDwgRVRIX0FMRU4p IHsKCQlkZXZfZXJyKCZkZXYtPmludGYtPmRldiwKCQkJIiVzOiB1c2JfY29udHJvbF9tc2c6 IHNob3J0IHBhY2tldDogJWQgYnl0ZXNcbiIsCgkJCV9fZnVuY19fLCByZXR2YWwpOwoJCXJl dHZhbCA9IC1FSU5WQUw7Cgl9IGVsc2UgewoJCW1lbWNweShuZXQtPmRldl9hZGRyLCBkZXYt PmN0cmxfYnVmLCBFVEhfQUxFTik7CgkJcmV0dmFsID0gMDsKCX0KCglyZXR1cm4gcmV0dmFs Owp9CgpzdGF0aWMgaW50IGlwaGV0aF9yeF9zdWJtaXQoc3RydWN0IGlwaGV0aF9kZXZpY2Ug KmRldiwgZ2ZwX3QgbWVtX2ZsYWdzKQp7CglzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGRl di0+dWRldjsKCWludCByZXR2YWw7CgoJdXNiX2ZpbGxfYnVsa191cmIoZGV2LT5yeF91cmIs IHVkZXYsCgkJCSAgdXNiX3JjdmJ1bGtwaXBlKHVkZXYsIGRldi0+YnVsa19pbiksCgkJCSAg ZGV2LT5yeF9idWYsIElQSEVUSF9CVUZfU0laRSwKCQkJICBpcGhldGhfcmN2YnVsa19jYWxs YmFjaywKCQkJICBkZXYpOwoJZGV2LT5yeF91cmItPnRyYW5zZmVyX2ZsYWdzIHw9IFVSQl9O T19UUkFOU0ZFUl9ETUFfTUFQOwoKCXJldHZhbCA9IHVzYl9zdWJtaXRfdXJiKGRldi0+cnhf dXJiLCBtZW1fZmxhZ3MpOwoJaWYgKHJldHZhbCkKCQlkZXZfZXJyKCZkZXYtPmludGYtPmRl diwgIiVzOiB1c2Jfc3VibWl0X3VyYjogJWRcbiIsCgkJCV9fZnVuY19fLCByZXR2YWwpOwoJ cmV0dXJuIHJldHZhbDsKfQoKc3RhdGljIGludCBpcGhldGhfb3BlbihzdHJ1Y3QgbmV0X2Rl dmljZSAqbmV0KQp7CglzdHJ1Y3QgaXBoZXRoX2RldmljZSAqZGV2ID0gbmV0ZGV2X3ByaXYo bmV0KTsKCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OwoJaW50IHJldHZh bCA9IDA7CgoJdXNiX3NldF9pbnRlcmZhY2UodWRldiwgSVBIRVRIX0lOVEZOVU0sIElQSEVU SF9BTFRfSU5URk5VTSk7CgoJcmV0dmFsID0gaXBoZXRoX2NhcnJpZXJfc2V0KGRldik7Cglp ZiAocmV0dmFsKQoJCXJldHVybiByZXR2YWw7CgoJcmV0dmFsID0gaXBoZXRoX3J4X3N1Ym1p dChkZXYsIEdGUF9LRVJORUwpOwoJaWYgKHJldHZhbCkKCQlyZXR1cm4gcmV0dmFsOwoKCXNj aGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2LT5jYXJyaWVyX3dvcmssIElQSEVUSF9DQVJSSUVS X0NIRUNLX1RJTUVPVVQpOwoJcmV0dXJuIHJldHZhbDsKfQoKc3RhdGljIGludCBpcGhldGhf Y2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKewoJc3RydWN0IGlwaGV0aF9kZXZpY2Ug KmRldiA9IG5ldGRldl9wcml2KG5ldCk7CgoJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZk ZXYtPmNhcnJpZXJfd29yayk7CgluZXRpZl9zdG9wX3F1ZXVlKG5ldCk7CglyZXR1cm4gMDsK fQoKc3RhdGljIGludCBpcGhldGhfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKm5ldCkKewoJc3RydWN0IGlwaGV0aF9kZXZpY2UgKmRldiA9IG5ldGRldl9w cml2KG5ldCk7CglzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGRldi0+dWRldjsKCWludCBy ZXR2YWw7CgoJLyogUGFyYW5vaWQgKi8KCWlmIChza2ItPmxlbiA+IElQSEVUSF9CVUZfU0la RSkgewoJCVdBUk4oMSwgIiVzOiBza2IgdG9vIGxhcmdlOiAlZCBieXRlc1xuIiwgX19mdW5j X18sIHNrYi0+bGVuKTsKCQlkZXYtPm5ldC0+c3RhdHMudHhfZHJvcHBlZCsrOwoJCWRldl9r ZnJlZV9za2JfaXJxKHNrYik7CgkJcmV0dXJuIE5FVERFVl9UWF9PSzsKCX0KCgltZW1jcHko ZGV2LT50eF9idWYsIHNrYi0+ZGF0YSwgc2tiLT5sZW4pOwoJaWYgKHNrYi0+bGVuIDwgSVBI RVRIX0JVRl9TSVpFKQoJCW1lbXNldChkZXYtPnR4X2J1ZiArIHNrYi0+bGVuLCAwLCBJUEhF VEhfQlVGX1NJWkUgLSBza2ItPmxlbik7CgoJdXNiX2ZpbGxfYnVsa191cmIoZGV2LT50eF91 cmIsIHVkZXYsCgkJCSAgdXNiX3NuZGJ1bGtwaXBlKHVkZXYsIGRldi0+YnVsa19vdXQpLAoJ CQkgIGRldi0+dHhfYnVmLCBJUEhFVEhfQlVGX1NJWkUsCgkJCSAgaXBoZXRoX3NuZGJ1bGtf Y2FsbGJhY2ssCgkJCSAgZGV2KTsKCWRldi0+dHhfdXJiLT50cmFuc2Zlcl9mbGFncyB8PSBV UkJfTk9fVFJBTlNGRVJfRE1BX01BUDsKCglyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYihkZXYt PnR4X3VyYiwgR0ZQX0FUT01JQyk7CglpZiAocmV0dmFsKSB7CgkJZGV2X2VycigmZGV2LT5p bnRmLT5kZXYsICIlczogdXNiX3N1Ym1pdF91cmI6ICVkXG4iLAoJCQlfX2Z1bmNfXywgcmV0 dmFsKTsKCQlkZXYtPm5ldC0+c3RhdHMudHhfZXJyb3JzKys7CgkJZGV2X2tmcmVlX3NrYl9p cnEoc2tiKTsKCX0gZWxzZSB7CgkJZGV2LT50eF9za2IgPSBza2I7CgoJCWRldi0+bmV0LT5z dGF0cy50eF9wYWNrZXRzKys7CgkJZGV2LT5uZXQtPnN0YXRzLnR4X2J5dGVzICs9IHNrYi0+ bGVuOwoJCW5ldGlmX3N0b3BfcXVldWUobmV0KTsKCX0KCglyZXR1cm4gTkVUREVWX1RYX09L Owp9CgpzdGF0aWMgdm9pZCBpcGhldGhfdHhfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAq bmV0KQp7CglzdHJ1Y3QgaXBoZXRoX2RldmljZSAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0KTsK CglkZXZfZXJyKCZkZXYtPmludGYtPmRldiwgIiVzOiBUWCB0aW1lb3V0XG4iLCBfX2Z1bmNf Xyk7CglkZXYtPm5ldC0+c3RhdHMudHhfZXJyb3JzKys7Cgl1c2JfdW5saW5rX3VyYihkZXYt PnR4X3VyYik7Cn0KCnN0YXRpYyB1MzIgaXBoZXRoX2V0aHRvb2xfb3BfZ2V0X2xpbmsoc3Ry dWN0IG5ldF9kZXZpY2UgKm5ldCkKewoJc3RydWN0IGlwaGV0aF9kZXZpY2UgKmRldiA9IG5l dGRldl9wcml2KG5ldCk7CglyZXR1cm4gbmV0aWZfY2Fycmllcl9vayhkZXYtPm5ldCk7Cn0K CnN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgb3BzID0gewoJLmdldF9saW5rID0g aXBoZXRoX2V0aHRvb2xfb3BfZ2V0X2xpbmsKfTsKCnN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0 X2RldmljZV9vcHMgaXBoZXRoX25ldGRldl9vcHMgPSB7CgkubmRvX29wZW4gPSBpcGhldGhf b3BlbiwKCS5uZG9fc3RvcCA9IGlwaGV0aF9jbG9zZSwKCS5uZG9fc3RhcnRfeG1pdCA9IGlw aGV0aF90eCwKCS5uZG9fdHhfdGltZW91dCA9IGlwaGV0aF90eF90aW1lb3V0LAp9OwoKc3Rh dGljIGludCBpcGhldGhfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCgkJCWNv bnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKewoJc3RydWN0IHVzYl9kZXZpY2UgKnVk ZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGYpOwoJc3RydWN0IHVzYl9ob3N0X2ludGVy ZmFjZSAqaGludGY7CglzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmVuZHA7Cglz dHJ1Y3QgaXBoZXRoX2RldmljZSAqZGV2OwoJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjsK CWludCBpOwoJaW50IHJldHZhbDsKCgluZXRkZXYgPSBhbGxvY19ldGhlcmRldihzaXplb2Yo c3RydWN0IGlwaGV0aF9kZXZpY2UpKTsKCWlmICghbmV0ZGV2KQoJCXJldHVybiAtRU5PTUVN OwoKCW5ldGRldi0+bmV0ZGV2X29wcyA9ICZpcGhldGhfbmV0ZGV2X29wczsKCW5ldGRldi0+ d2F0Y2hkb2dfdGltZW8gPSBJUEhFVEhfVFhfVElNRU9VVDsKCXN0cmNweShuZXRkZXYtPm5h bWUsICJldGglZCIpOwoKCWRldiA9IG5ldGRldl9wcml2KG5ldGRldik7CglkZXYtPnVkZXYg PSB1ZGV2OwoJZGV2LT5uZXQgPSBuZXRkZXY7CglkZXYtPmludGYgPSBpbnRmOwoJZGV2LT5j b25maXJtZWRfcGFpcmluZyA9IGZhbHNlOwoJLyogU2V0IHVwIGVuZHBvaW50cyAqLwoJaGlu dGYgPSB1c2JfYWx0bnVtX3RvX2FsdHNldHRpbmcoaW50ZiwgSVBIRVRIX0FMVF9JTlRGTlVN KTsKCWlmIChoaW50ZiA9PSBOVUxMKSB7CgkJcmV0dmFsID0gLUVOT0RFVjsKCQlkZXZfZXJy KCZpbnRmLT5kZXYsICJVbmFibGUgdG8gZmluZCBhbHRlcm5hdGUgc2V0dGluZ3MgaW50ZXJm YWNlXG4iKTsKCQlnb3RvIGVycl9lbmRwb2ludHM7Cgl9CgoJZm9yIChpID0gMDsgaSA8IGhp bnRmLT5kZXNjLmJOdW1FbmRwb2ludHM7IGkrKykgewoJCWVuZHAgPSAmaGludGYtPmVuZHBv aW50W2ldLmRlc2M7CgkJaWYgKHVzYl9lbmRwb2ludF9pc19idWxrX2luKGVuZHApKQoJCQlk ZXYtPmJ1bGtfaW4gPSBlbmRwLT5iRW5kcG9pbnRBZGRyZXNzOwoJCWVsc2UgaWYgKHVzYl9l bmRwb2ludF9pc19idWxrX291dChlbmRwKSkKCQkJZGV2LT5idWxrX291dCA9IGVuZHAtPmJF bmRwb2ludEFkZHJlc3M7Cgl9CglpZiAoIShkZXYtPmJ1bGtfaW4gJiYgZGV2LT5idWxrX291 dCkpIHsKCQlyZXR2YWwgPSAtRU5PREVWOwoJCWRldl9lcnIoJmludGYtPmRldiwgIlVuYWJs ZSB0byBmaW5kIGVuZHBvaW50c1xuIik7CgkJZ290byBlcnJfZW5kcG9pbnRzOwoJfQoKCWRl di0+Y3RybF9idWYgPSBrbWFsbG9jKElQSEVUSF9DVFJMX0JVRl9TSVpFLCBHRlBfS0VSTkVM KTsKCWlmIChkZXYtPmN0cmxfYnVmID09IE5VTEwpIHsKCQlyZXR2YWwgPSAtRU5PTUVNOwoJ CWdvdG8gZXJyX2FsbG9jX2N0cmxfYnVmOwoJfQoKCXJldHZhbCA9IGlwaGV0aF9nZXRfbWFj YWRkcihkZXYpOwoJaWYgKHJldHZhbCkKCQlnb3RvIGVycl9nZXRfbWFjYWRkcjsKCglJTklU X0RFTEFZRURfV09SSygmZGV2LT5jYXJyaWVyX3dvcmssIGlwaGV0aF9jYXJyaWVyX2NoZWNr X3dvcmspOwoKCXJldHZhbCA9IGlwaGV0aF9hbGxvY191cmJzKGRldik7CglpZiAocmV0dmFs KSB7CgkJZGV2X2VycigmaW50Zi0+ZGV2LCAiZXJyb3IgYWxsb2NhdGluZyB1cmJzOiAlZFxu IiwgcmV0dmFsKTsKCQlnb3RvIGVycl9hbGxvY191cmJzOwoJfQoKCXVzYl9zZXRfaW50ZmRh dGEoaW50ZiwgZGV2KTsKCglTRVRfTkVUREVWX0RFVihuZXRkZXYsICZpbnRmLT5kZXYpOwoJ bmV0ZGV2LT5ldGh0b29sX29wcyA9ICZvcHM7CgoJcmV0dmFsID0gcmVnaXN0ZXJfbmV0ZGV2 KG5ldGRldik7CglpZiAocmV0dmFsKSB7CgkJZGV2X2VycigmaW50Zi0+ZGV2LCAiZXJyb3Ig cmVnaXN0ZXJpbmcgbmV0ZGV2OiAlZFxuIiwgcmV0dmFsKTsKCQlyZXR2YWwgPSAtRUlPOwoJ CWdvdG8gZXJyX3JlZ2lzdGVyX25ldGRldjsKCX0KCS8vIGNhcnJpZXIgZG93biBhbmQgdHJh bnNtaXQgcXVldWVzIHN0b3BwZWQgdW50aWwgcGFja2V0IGZyb20gZGV2aWNlCgluZXRpZl9j YXJyaWVyX29mZihuZXRkZXYpOwoJbmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldGRldik7 CglkZXZfaW5mbygmaW50Zi0+ZGV2LCAiQXBwbGUgaVBob25lIFVTQiBFdGhlcm5ldCBkZXZp Y2UgYXR0YWNoZWRcbiIpOwoJcmV0dXJuIDA7CgplcnJfcmVnaXN0ZXJfbmV0ZGV2OgoJaXBo ZXRoX2ZyZWVfdXJicyhkZXYpOwplcnJfYWxsb2NfdXJiczoKZXJyX2dldF9tYWNhZGRyOgpl cnJfYWxsb2NfY3RybF9idWY6CglrZnJlZShkZXYtPmN0cmxfYnVmKTsKZXJyX2VuZHBvaW50 czoKCWZyZWVfbmV0ZGV2KG5ldGRldik7CglyZXR1cm4gcmV0dmFsOwp9CgpzdGF0aWMgdm9p ZCBpcGhldGhfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKewoJc3Ry dWN0IGlwaGV0aF9kZXZpY2UgKmRldjsKCglkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYp OwoJaWYgKGRldiAhPSBOVUxMKSB7CgkJdW5yZWdpc3Rlcl9uZXRkZXYoZGV2LT5uZXQpOwoJ CWlwaGV0aF9raWxsX3VyYnMoZGV2KTsKCQlpcGhldGhfZnJlZV91cmJzKGRldik7CgkJa2Zy ZWUoZGV2LT5jdHJsX2J1Zik7CgkJZnJlZV9uZXRkZXYoZGV2LT5uZXQpOwoJfQoJdXNiX3Nl dF9pbnRmZGF0YShpbnRmLCBOVUxMKTsKCWRldl9pbmZvKCZpbnRmLT5kZXYsICJBcHBsZSBp UGhvbmUgVVNCIEV0aGVybmV0IG5vdyBkaXNjb25uZWN0ZWRcbiIpOwp9CgpzdGF0aWMgc3Ry dWN0IHVzYl9kcml2ZXIgaXBoZXRoX2RyaXZlciA9IHsKCS5uYW1lID0JCSJpcGhldGgiLAoJ LnByb2JlID0JaXBoZXRoX3Byb2JlLAoJLmRpc2Nvbm5lY3QgPQlpcGhldGhfZGlzY29ubmVj dCwKCS5pZF90YWJsZSA9CWlwaGV0aF90YWJsZSwKCS5kaXNhYmxlX2h1Yl9pbml0aWF0ZWRf bHBtID0gMSwKfTsKCm1vZHVsZV91c2JfZHJpdmVyKGlwaGV0aF9kcml2ZXIpOwoKTU9EVUxF X0FVVEhPUigiRGllZ28gR2lhZ2lvIDxkaWVnb0BnaWFnaW8uY29tPiIpOwpNT0RVTEVfREVT Q1JJUFRJT04oIkFwcGxlIGlQaG9uZSBVU0IgRXRoZXJuZXQgZHJpdmVyIik7Ck1PRFVMRV9M SUNFTlNFKCJEdWFsIEJTRC9HUEwiKTsK --------------j8eHzUoc0RiD5h1cPty6Ns4T Content-Type: application/pgp-keys; name="OpenPGP_0x350D53215B5F8F62.asc" Content-Disposition: attachment; filename="OpenPGP_0x350D53215B5F8F62.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX1tGoRYJKwYBBAHaRw8BAQdA5XlMuBj8N8GAo7mpY/tDB4e7E2ma+HW5Yu3l kD3bGK7NG1J1c2xhbiA8cnVzbGFuZGhAZ21haWwuY29tPsKRBBMWCAA5FiEESsk7 qYwppMRLeZ7ENQ1TIVtfj2IFAl9bRqEFCQWjmoACGwMFCwkIBwIGFQgJCgsCBRYC AwEAAAoJEDUNUyFbX49iPP8BAKKkmF1YSFKXgqBaqOwtMGMjRpchKaHk66f2Op84 dcxNAP42ooXpqn/FB6Yi4Hro9elePSmU0lrlRP5Ph6g7apw5AM44BF9bRqESCisG AQQBl1UBBQEBB0CUj7vPp0SpMyHRSZfRXVIfQI/N8vsUzW9r1D6+E//XRgMBCAfC fgQYFggAJhYhBErJO6mMKaTES3mexDUNUyFbX49iBQJfW0ahBQkFo5qAAhsMAAoJ EDUNUyFbX49ib64A+wfOYe63TWv4AKQt6nb46r8ZBkOup3p2KcMzwzC3RmqcAP9l 5rdXLUwXvoNSNs1v7BKKcpYsZWIvTehFlg1BxeFuBw=3D=3D =3DIAWu -----END PGP PUBLIC KEY BLOCK----- --------------j8eHzUoc0RiD5h1cPty6Ns4T-- --------------zhCzSKVs80yfo6LeoVqkRkys-- --------------63XMCU5O2hPM7zO8p6w5Imb7 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQRKyTupjCmkxEt5nsQ1DVMhW1+PYgUCYpMPyQUDAAAAAAAKCRA1DVMhW1+PYnjW AQDbvnh4WmNxtvEoEBV/zXJyouhoQ2mvdLyRSbO74H3okgD+K/WrsUfJbRo3KxoVPfRhkdRemOBY Fi5q5hth2WOLfg8= =ytsH -----END PGP SIGNATURE----- --------------63XMCU5O2hPM7zO8p6w5Imb7--