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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 1F3E6C43334 for ; Tue, 14 Jun 2022 15:20:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=W3z8jCnSikLUUu4K8zLwEe91LOBBREJSxgi+K7JSP1I=; b=cTeAAKgqGf3gWv kmFbg83aLevfT7Bu0/DQQodyD0DkXKz5TixojFEJ8MRhSEKJZdflQ7d4CwWRK+RyxSmIvzVsJUB/F ukOubLxWfiynB+wCxPa7U+HoGzCqBzN7CQHL1NU5OysECFR1CvtCkCZgw3DkSEeqxiwZJstd34pY1 S8WaSQ0HxHwgEXEV/4HTFwWfAE0y5UWZHAUEGRW+AItLldEY8TZtrp6Jr5gdVyur2f6sAs1CqD7gG 0Tf+W3yfOh5+cnsxZo/u7jrhPiU6XllXfuQq1hkUVIGO7oCxeJbNea+fx2rJloVReDVU9ObogEl0y VDCJsld3C1+K7kWuU9QQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o18L3-00A7ui-Fn; Tue, 14 Jun 2022 15:20:17 +0000 Received: from madras.collabora.co.uk ([46.235.227.172]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o18Kp-00A7qh-Vm; Tue, 14 Jun 2022 15:20:07 +0000 Received: from [IPV6:2a01:e0a:120:3210:4a7b:8d3a:acaa:ec46] (unknown [IPv6:2a01:e0a:120:3210:4a7b:8d3a:acaa:ec46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7D48C66016B6; Tue, 14 Jun 2022 16:19:59 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1655220000; bh=FLW3rBQJG448Plypio646nbZo8pZ8RL4jC5iqbrceSg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ic9Lhc6v6UArFD38yUoCYxHOWaTtaRst0ve5YFMs8Q6Cqv4O3D0bVyk39wyHixrCS 8Xd6ocDOIS1jTgP0blCdQ04gxqJyZBhZya/zGFp/EDyp5Ww3xVUv53TZh3LXt15zJh qcfS23F9HLg5DxGcsL+TMociIwpRp1N2JbSWq3nUa6Ptk/D5Aa4RDteVnON8g0HN7w 4foA79x4hWviqS2oDmt14QTuiOi+IQS0qCR/MASBw6RE9lD7nPSaGoUqFq7gJj1qz5 rZ4PS8nnV47Er/s+GlZ/IX6V2wau+vi1TRp7l6lYzIW9DYbFuzMKgNgAxjcdLlOYJF ocJT26ujbd1Vg== Message-ID: Date: Tue, 14 Jun 2022 17:19:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH v8 15/17] media: uapi: HEVC: fix padding in v4l2 control structures Content-Language: en-US To: Hans Verkuil , mchehab@kernel.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, nicolas.dufresne@collabora.com, andrzej.p@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, kernel@collabora.com References: <20220614083614.240641-1-benjamin.gaignard@collabora.com> <20220614083614.240641-16-benjamin.gaignard@collabora.com> <0c656c92-f029-bc02-6026-23649836d080@xs4all.nl> From: Benjamin Gaignard In-Reply-To: <0c656c92-f029-bc02-6026-23649836d080@xs4all.nl> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220614_082005_391044_8317A743 X-CRM114-Status: GOOD ( 24.81 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CkxlIDE0LzA2LzIwMjIgw6AgMTY6MDksIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+IE9uIDYv MTQvMjIgMTA6MzYsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+PiBGaXggcGFkZGluZyB3aGVy ZSBuZWVkZWQgdG8gcmVtb3ZlIGhvbGVzIGFuZCBzdGF5IGFsaWduIG9uIGNhY2hlIGJvdW5kYXJp ZXMKPiBhbGlnbiAtPiBhbGlnbmVkCj4KPj4gU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2FpZ25h cmQgPGJlbmphbWluLmdhaWduYXJkQGNvbGxhYm9yYS5jb20+Cj4+IC0tLQo+PiAgIC4uLi9tZWRp YS92NGwvZXh0LWN0cmxzLWNvZGVjLnJzdCAgICAgICAgICAgICB8ICA2ICsrKy0tLQo+PiAgIGRy aXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtY29yZS5jICAgICB8ICA5IC0tLS0tLS0t LQo+PiAgIGluY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oICAgICAgICAgICAgICAgICAgICB8IDE5 ICsrKysrKysrKysrKy0tLS0tLS0KPj4gICAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMo KyksIDE5IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi91c2Vy c3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0IGIvRG9jdW1lbnRhdGlvbi91 c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0Cj4+IGluZGV4IDA1MjI4 ZTI4MGY2Ni4uNDhhODgyNWEwMDFiIDEwMDY0NAo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL3VzZXJz cGFjZS1hcGkvbWVkaWEvdjRsL2V4dC1jdHJscy1jb2RlYy5yc3QKPj4gKysrIGIvRG9jdW1lbnRh dGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0Cj4+IEBAIC0z NTA5LDkgKzM1MDksNiBAQCBlbnVtIHY0bDJfbXBlZ192aWRlb19oZXZjX3NpemVfb2ZfbGVuZ3Ro X2ZpZWxkIC0KPj4gICAgICAgKiAtIF9fdTgKPj4gICAgICAgICAtIGBgbnVtX2FjdGl2ZV9kcGJf ZW50cmllc2BgCj4+ICAgICAgICAgLSBUaGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gYGBkcGJgYC4K Pj4gLSAgICAqIC0gc3RydWN0IDpjOnR5cGU6YHY0bDJfaGV2Y19kcGJfZW50cnlgCj4+IC0gICAg ICAtIGBgZHBiW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1fTUFYXWBgCj4+IC0gICAgICAtIFRo ZSBkZWNvZGVkIHBpY3R1cmUgYnVmZmVyLCBmb3IgbWV0YS1kYXRhIGFib3V0IHJlZmVyZW5jZSBm cmFtZXMuCj4+ICAgICAgICogLSBfX3U4Cj4+ICAgICAgICAgLSBgYG51bV9wb2Nfc3RfY3Vycl9i ZWZvcmVgYAo+PiAgICAgICAgIC0gVGhlIG51bWJlciBvZiByZWZlcmVuY2UgcGljdHVyZXMgaW4g dGhlIHNob3J0LXRlcm0gc2V0IHRoYXQgY29tZSBiZWZvcmUKPj4gQEAgLTM1MzUsNiArMzUzMiw5 IEBAIGVudW0gdjRsMl9tcGVnX3ZpZGVvX2hldmNfc2l6ZV9vZl9sZW5ndGhfZmllbGQgLQo+PiAg ICAgICAgIC0gYGBwb2NfbHRfY3VycltWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1gYAo+ PiAgICAgICAgIC0gUG9jTHRDdXJyIGFzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDguMy4yICJEZWNv ZGluZyBwcm9jZXNzIGZvciByZWZlcmVuY2UKPj4gICAgICAgICAgIHBpY3R1cmUgc2V0IjogcHJv dmlkZXMgdGhlIGluZGV4IG9mIHRoZSBsb25nIHRlcm0gcmVmZXJlbmNlcyBpbiBEUEIgYXJyYXku Cj4+ICsgICAgKiAtIHN0cnVjdCA6Yzp0eXBlOmB2NGwyX2hldmNfZHBiX2VudHJ5YAo+PiArICAg ICAgLSBgYGRwYltWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1gYAo+PiArICAgICAgLSBU aGUgZGVjb2RlZCBwaWN0dXJlIGJ1ZmZlciwgZm9yIG1ldGEtZGF0YSBhYm91dCByZWZlcmVuY2Ug ZnJhbWVzLgo+PiAgICAgICAqIC0gX191NjQKPj4gICAgICAgICAtIGBgZmxhZ3NgYAo+PiAgICAg ICAgIC0gU2VlIDpyZWY6YERlY29kZSBQYXJhbWV0ZXJzIEZsYWdzIDxoZXZjX2RlY29kZV9wYXJh bXNfZmxhZ3M+YAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1j dHJscy1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWNvcmUuYwo+ PiBpbmRleCBjNWM1NDA3NTg0ZmYuLmZiNjg3ODZjNDk4YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy1jb3JlLmMKPj4gKysrIGIvZHJpdmVycy9tZWRp YS92NGwyLWNvcmUvdjRsMi1jdHJscy1jb3JlLmMKPj4gQEAgLTgyNCwyMCArODI0LDExIEBAIHN0 YXRpYyBpbnQgc3RkX3ZhbGlkYXRlX2NvbXBvdW5kKGNvbnN0IHN0cnVjdCB2NGwyX2N0cmwgKmN0 cmwsIHUzMiBpZHgsCj4+ICAgCQlpZiAocF9oZXZjX2RlY29kZV9wYXJhbXMtPm51bV9hY3RpdmVf ZHBiX2VudHJpZXMgPgo+PiAgIAkJICAgIFY0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1fTUFYKQo+ PiAgIAkJCXJldHVybiAtRUlOVkFMOwo+PiAtCj4+IC0JCWZvciAoaSA9IDA7IGkgPCBwX2hldmNf ZGVjb2RlX3BhcmFtcy0+bnVtX2FjdGl2ZV9kcGJfZW50cmllczsKPj4gLQkJICAgICBpKyspIHsK Pj4gLQkJCXN0cnVjdCB2NGwyX2hldmNfZHBiX2VudHJ5ICpkcGJfZW50cnkgPQo+PiAtCQkJCSZw X2hldmNfZGVjb2RlX3BhcmFtcy0+ZHBiW2ldOwo+PiAtCj4+IC0JCQl6ZXJvX3BhZGRpbmcoKmRw Yl9lbnRyeSk7Cj4+IC0JCX0KPj4gICAJCWJyZWFrOwo+PiAgIAo+PiAgIAljYXNlIFY0TDJfQ1RS TF9UWVBFX0hFVkNfU0xJQ0VfUEFSQU1TOgo+PiAgIAkJcF9oZXZjX3NsaWNlX3BhcmFtcyA9IHA7 Cj4+ICAgCj4+IC0JCXplcm9fcGFkZGluZyhwX2hldmNfc2xpY2VfcGFyYW1zLT5wcmVkX3dlaWdo dF90YWJsZSk7Cj4+ICAgCQl6ZXJvX3BhZGRpbmcoKnBfaGV2Y19zbGljZV9wYXJhbXMpOwo+PiAg IAkJYnJlYWs7Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL2hldmMtY3RybHMu aCBiL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oCj4+IGluZGV4IGVmYzA0MTJhYzQxZS4uOWFi Y2ExYTc1YmQ0IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL21lZGlhL2hldmMtY3RybHMuaAo+PiAr KysgYi9pbmNsdWRlL21lZGlhL2hldmMtY3RybHMuaAo+PiBAQCAtMTMzLDcgKzEzMyw5IEBAIHN0 cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgewo+PiAgIAlfX3U4CWNocm9tYV9mb3JtYXRfaWRjOwo+ PiAgIAlfX3U4CXNwc19tYXhfc3ViX2xheWVyc19taW51czE7Cj4+ICAgCj4+ICsJX191OAlyZXNl cnZlZFs2XTsKPj4gICAJX191NjQJZmxhZ3M7Cj4+ICsJX191OAlwYWRkaW5nWzI0XTsKPiBXaHkg YXJlIHRoZXJlIDI0IHBhZGRpbmcgYnl0ZXMgYXQgdGhlIGVuZD8gRm9yIGZ1dHVyZSB1c2U/IElm IHNvLCB3aGF0IGlzCj4gdGhlIHJhdGlvbmFsZSBmb3IgJzI0Jz8gSXMgaXQgbGlrZWx5IHRoYXQg bmV3IGZpZWxkcyB3aWxsIGJlIGFkZGVkIGluIGZ1dHVyZQo+IEhFVkMgcmV2aXNpb25zPyBPciBp cyBpdCBpbiBjYXNlIHdlIGZvcmdldCBzb21ldGhpbmc/Cj4KPiBJdCdzIG1pc3Npbmcga2VybmVs ZG9jIGNvbW1lbnRzIGFzIHdlbGw6IGl0IHNob3VsZCBzdGF0ZSB0aGF0IHRoZSBhcHBsaWNhdGlv bgo+IG11c3QgemVybyB0aGlzLgo+Cj4gV2h5IG1peCAncmVzZXJ2ZWQnIHdpdGggJ3BhZGRpbmcn PyBJdCdzIG9kZCB0byBzZWUgYm90aCBuYW1lcyBpbiBhIHNpbmdsZQo+IHN0cnVjdC4KPgo+IElu IGFueSBjYXNlLCB0aGlzIHBhdGNoIGdvZXMgYmV5b25kICdmaXhpbmcgcGFkZGluZycsIGl0IGlz IGRvaW5nIG1vcmUuCj4KPiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHNwYWNlIGZvciBmdXR1 cmUgdXNlIGF0IHRoZSBlbmQgb2Ygc3RydWN0cywKPiB0aGVuIGRvIHRoYXQgaW4gYSBzZXBhcmF0 ZSBwYXRjaCB0b2dldGhlciB3aXRoIGEgcmF0aW9uYWxlIGZvciBpdC4KCkkgaGF2ZSB1c2VkIHJl c2VydmVkIGZpZWxkcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzdHJ1Y3R1cmUgdG8gYWxpZ24gdGhl IG90aGVyCmZpZWxkcyBsaWtlIHNob3cgYnkgcGFob2xlLgpwYWRkaW5nIGZpZWxkcyBhcmUgdGhl cmUgdG8gYmUgYWxpZ25lZCBvbiBjYWNoZSBib3VuZGFyaWVzIGF0IHRoZSBlbmQgb2YgdGhlCnN0 cnVjdHVyZXMuCkkgZG9uJ3QgcGxhbiB0byB1c2UgaW4gbmVhciBmdXR1cmUgYnV0IHRyeWluZyB0 byBiZSBmdXR1cmUgcHJvb2YgKG1heWJlIG92ZXIKZG9pbmcgaGVyZS4uLikKClJlZ2FyZHMsCkJl bmphbWluCgo+Cj4gUmVnYXJkcywKPgo+IAlIYW5zCj4KPj4gICB9Owo+PiAgIAo+PiAgICNkZWZp bmUgVjRMMl9IRVZDX1BQU19GTEFHX0RFUEVOREVOVF9TTElDRV9TRUdNRU5UX0VOQUJMRUQJKDFV TEwgPDwgMCkKPj4gQEAgLTIxMCw5ICsyMTIsMTAgQEAgc3RydWN0IHY0bDJfY3RybF9oZXZjX3Bw cyB7Cj4+ICAgCV9fczgJcHBzX2JldGFfb2Zmc2V0X2RpdjI7Cj4+ICAgCV9fczgJcHBzX3RjX29m ZnNldF9kaXYyOwo+PiAgIAlfX3U4CWxvZzJfcGFyYWxsZWxfbWVyZ2VfbGV2ZWxfbWludXMyOwo+ PiArCV9fdTgJcmVzZXJ2ZWRbOV07Cj4+ICAgCj4+IC0JX191OAlwYWRkaW5nWzRdOwo+PiAgIAlf X3U2NAlmbGFnczsKPj4gKwlfX3U4CXBhZGRpbmdbNTZdOwo+PiAgIH07Cj4+ICAgCj4+ICAgI2Rl ZmluZSBWNEwyX0hFVkNfRFBCX0VOVFJZX0xPTkdfVEVSTV9SRUZFUkVOQ0UJMHgwMQo+PiBAQCAt MjQ1LDggKzI0OCw4IEBAIHN0cnVjdCB2NGwyX2hldmNfZHBiX2VudHJ5IHsKPj4gICAJX191NjQJ dGltZXN0YW1wOwo+PiAgIAlfX3U4CWZsYWdzOwo+PiAgIAlfX3U4CWZpZWxkX3BpYzsKPj4gKwlf X3UxNglyZXNlcnZlZDsKPj4gICAJX19zMzIJcGljX29yZGVyX2NudF92YWw7Cj4+IC0JX191OAlw YWRkaW5nWzJdOwo+PiAgIH07Cj4+ICAgCj4+ICAgLyoqCj4+IEBAIC0yODUsOCArMjg4LDYgQEAg c3RydWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90YWJsZSB7Cj4+ICAgCV9fczgJZGVsdGFfY2hy b21hX3dlaWdodF9sMVtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1bMl07Cj4+ICAgCV9f czgJY2hyb21hX29mZnNldF9sMVtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1bMl07Cj4+ ICAgCj4+IC0JX191OAlwYWRkaW5nWzZdOwo+PiAtCj4+ICAgCV9fdTgJbHVtYV9sb2cyX3dlaWdo dF9kZW5vbTsKPj4gICAJX19zOAlkZWx0YV9jaHJvbWFfbG9nMl93ZWlnaHRfZGVub207Cj4+ICAg fTsKPj4gQEAgLTM4MSwxOCArMzgyLDIwIEBAIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9w YXJhbXMgewo+PiAgIAkvKiBJU08vSUVDIDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6IFBpY3R1 cmUgdGltaW5nIFNFSSBtZXNzYWdlICovCj4+ICAgCV9fdTgJcGljX3N0cnVjdDsKPj4gICAKPj4g KwlfX3U4CXJlc2VydmVkMFszXTsKPj4gICAJLyogSVNPL0lFQyAyMzAwOC0yLCBJVFUtVCBSZWMu IEguMjY1OiBHZW5lcmFsIHNsaWNlIHNlZ21lbnQgaGVhZGVyICovCj4+ICAgCV9fdTMyCXNsaWNl X3NlZ21lbnRfYWRkcjsKPj4gICAJX191OAlyZWZfaWR4X2wwW1Y0TDJfSEVWQ19EUEJfRU5UUklF U19OVU1fTUFYXTsKPj4gICAJX191OAlyZWZfaWR4X2wxW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19O VU1fTUFYXTsKPj4gICAJX191MTYJc2hvcnRfdGVybV9yZWZfcGljX3NldF9zaXplOwo+PiAgIAlf X3UxNglsb25nX3Rlcm1fcmVmX3BpY19zZXRfc2l6ZTsKPj4gLQlfX3U4CXBhZGRpbmc7Cj4+ICAg Cj4+ICAgCS8qIElTTy9JRUMgMjMwMDgtMiwgSVRVLVQgUmVjLiBILjI2NTogV2VpZ2h0ZWQgcHJl ZGljdGlvbiBwYXJhbWV0ZXIgKi8KPj4gICAJc3RydWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90 YWJsZSBwcmVkX3dlaWdodF90YWJsZTsKPj4gICAKPj4gKwlfX3U4CXJlc2VydmVkMVsyXTsKPj4g ICAJX191NjQJZmxhZ3M7Cj4+ICsJX191OAlwYWRkaW5nWzQwXTsKPj4gICB9Owo+PiAgIAo+PiAg ICNkZWZpbmUgVjRMMl9IRVZDX0RFQ09ERV9QQVJBTV9GTEFHX0lSQVBfUElDCQkweDEKPj4gQEAg LTQwOCw3ICs0MTEsNiBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4g ICAgKiBAbG9uZ190ZXJtX3JlZl9waWNfc2V0X3NpemU6IHNwZWNpZmllcyB0aGUgc2l6ZSBvZiBs b25nLXRlcm0gcmVmZXJlbmNlCj4+ICAgICoJCQkJcGljdHVyZXMgc2V0IGluY2x1ZGUgaW4gdGhl IFNQUyBvZiB0aGUgZmlyc3Qgc2xpY2UKPj4gICAgKiBAbnVtX2FjdGl2ZV9kcGJfZW50cmllczog dGhlIG51bWJlciBvZiBlbnRyaWVzIGluIGRwYgo+PiAtICogQGRwYjogdGhlIGRlY29kZWQgcGlj dHVyZSBidWZmZXIsIGZvciBtZXRhLWRhdGEgYWJvdXQgcmVmZXJlbmNlIGZyYW1lcwo+PiAgICAq IEBudW1fcG9jX3N0X2N1cnJfYmVmb3JlOiB0aGUgbnVtYmVyIG9mIHJlZmVyZW5jZSBwaWN0dXJl cyBpbiB0aGUgc2hvcnQtdGVybQo+PiAgICAqCQkJICAgIHNldCB0aGF0IGNvbWUgYmVmb3JlIHRo ZSBjdXJyZW50IGZyYW1lCj4+ICAgICogQG51bV9wb2Nfc3RfY3Vycl9hZnRlcjogdGhlIG51bWJl ciBvZiByZWZlcmVuY2UgcGljdHVyZXMgaW4gdGhlIHNob3J0LXRlcm0KPj4gQEAgLTQxOSw2ICs0 MjEsNyBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4gICAgKiBAcG9j X3N0X2N1cnJfYWZ0ZXI6IHByb3ZpZGVzIHRoZSBpbmRleCBvZiB0aGUgc2hvcnQgdGVybSBhZnRl ciByZWZlcmVuY2VzCj4+ICAgICoJCSAgICAgICBpbiBEUEIgYXJyYXkKPj4gICAgKiBAcG9jX2x0 X2N1cnI6IHByb3ZpZGVzIHRoZSBpbmRleCBvZiB0aGUgbG9uZyB0ZXJtIHJlZmVyZW5jZXMgaW4g RFBCIGFycmF5Cj4+ICsgKiBAZHBiOiB0aGUgZGVjb2RlZCBwaWN0dXJlIGJ1ZmZlciwgZm9yIG1l dGEtZGF0YSBhYm91dCByZWZlcmVuY2UgZnJhbWVzCj4+ICAgICogQGZsYWdzOiBzZWUgVjRMMl9I RVZDX0RFQ09ERV9QQVJBTV9GTEFHX3t9Cj4+ICAgICovCj4+ICAgc3RydWN0IHY0bDJfY3RybF9o ZXZjX2RlY29kZV9wYXJhbXMgewo+PiBAQCAtNDI2LDE0ICs0MjksMTYgQEAgc3RydWN0IHY0bDJf Y3RybF9oZXZjX2RlY29kZV9wYXJhbXMgewo+PiAgIAlfX3UxNglzaG9ydF90ZXJtX3JlZl9waWNf c2V0X3NpemU7Cj4+ICAgCV9fdTE2CWxvbmdfdGVybV9yZWZfcGljX3NldF9zaXplOwo+PiAgIAlf X3U4CW51bV9hY3RpdmVfZHBiX2VudHJpZXM7Cj4+IC0Jc3RydWN0CXY0bDJfaGV2Y19kcGJfZW50 cnkgZHBiW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1fTUFYXTsKPj4gICAJX191OAludW1fcG9j X3N0X2N1cnJfYmVmb3JlOwo+PiAgIAlfX3U4CW51bV9wb2Nfc3RfY3Vycl9hZnRlcjsKPj4gICAJ X191OAludW1fcG9jX2x0X2N1cnI7Cj4+ICAgCV9fdTgJcG9jX3N0X2N1cnJfYmVmb3JlW1Y0TDJf SEVWQ19EUEJfRU5UUklFU19OVU1fTUFYXTsKPj4gICAJX191OAlwb2Nfc3RfY3Vycl9hZnRlcltW NEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICAgCV9fdTgJcG9jX2x0X2N1cnJbVjRM Ml9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdOwo+PiArCV9fdTgJcmVzZXJ2ZWRbNF07Cj4+ICsJ c3RydWN0CXY0bDJfaGV2Y19kcGJfZW50cnkgZHBiW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1f TUFYXTsKPj4gICAJX191NjQJZmxhZ3M7Cj4+ICsJX191OAlwYWRkaW5nWzU2XTsKPj4gICB9Owo+ PiAgIAo+PiAgIC8qKgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1yb2NrY2hpcAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DC4C7A; Tue, 14 Jun 2022 15:20:08 +0000 (UTC) Received: from [IPV6:2a01:e0a:120:3210:4a7b:8d3a:acaa:ec46] (unknown [IPv6:2a01:e0a:120:3210:4a7b:8d3a:acaa:ec46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7D48C66016B6; Tue, 14 Jun 2022 16:19:59 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1655220000; bh=FLW3rBQJG448Plypio646nbZo8pZ8RL4jC5iqbrceSg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ic9Lhc6v6UArFD38yUoCYxHOWaTtaRst0ve5YFMs8Q6Cqv4O3D0bVyk39wyHixrCS 8Xd6ocDOIS1jTgP0blCdQ04gxqJyZBhZya/zGFp/EDyp5Ww3xVUv53TZh3LXt15zJh qcfS23F9HLg5DxGcsL+TMociIwpRp1N2JbSWq3nUa6Ptk/D5Aa4RDteVnON8g0HN7w 4foA79x4hWviqS2oDmt14QTuiOi+IQS0qCR/MASBw6RE9lD7nPSaGoUqFq7gJj1qz5 rZ4PS8nnV47Er/s+GlZ/IX6V2wau+vi1TRp7l6lYzIW9DYbFuzMKgNgAxjcdLlOYJF ocJT26ujbd1Vg== Message-ID: Date: Tue, 14 Jun 2022 17:19:57 +0200 Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH v8 15/17] media: uapi: HEVC: fix padding in v4l2 control structures Content-Language: en-US To: Hans Verkuil , mchehab@kernel.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, nicolas.dufresne@collabora.com, andrzej.p@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, kernel@collabora.com References: <20220614083614.240641-1-benjamin.gaignard@collabora.com> <20220614083614.240641-16-benjamin.gaignard@collabora.com> <0c656c92-f029-bc02-6026-23649836d080@xs4all.nl> From: Benjamin Gaignard In-Reply-To: <0c656c92-f029-bc02-6026-23649836d080@xs4all.nl> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Le 14/06/2022 à 16:09, Hans Verkuil a écrit : > On 6/14/22 10:36, Benjamin Gaignard wrote: >> Fix padding where needed to remove holes and stay align on cache boundaries > align -> aligned > >> Signed-off-by: Benjamin Gaignard >> --- >> .../media/v4l/ext-ctrls-codec.rst | 6 +++--- >> drivers/media/v4l2-core/v4l2-ctrls-core.c | 9 --------- >> include/media/hevc-ctrls.h | 19 ++++++++++++------- >> 3 files changed, 15 insertions(+), 19 deletions(-) >> >> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> index 05228e280f66..48a8825a001b 100644 >> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> @@ -3509,9 +3509,6 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> * - __u8 >> - ``num_active_dpb_entries`` >> - The number of entries in ``dpb``. >> - * - struct :c:type:`v4l2_hevc_dpb_entry` >> - - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` >> - - The decoded picture buffer, for meta-data about reference frames. >> * - __u8 >> - ``num_poc_st_curr_before`` >> - The number of reference pictures in the short-term set that come before >> @@ -3535,6 +3532,9 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` >> - PocLtCurr as described in section 8.3.2 "Decoding process for reference >> picture set": provides the index of the long term references in DPB array. >> + * - struct :c:type:`v4l2_hevc_dpb_entry` >> + - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` >> + - The decoded picture buffer, for meta-data about reference frames. >> * - __u64 >> - ``flags`` >> - See :ref:`Decode Parameters Flags ` >> diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c >> index c5c5407584ff..fb68786c498b 100644 >> --- a/drivers/media/v4l2-core/v4l2-ctrls-core.c >> +++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c >> @@ -824,20 +824,11 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, >> if (p_hevc_decode_params->num_active_dpb_entries > >> V4L2_HEVC_DPB_ENTRIES_NUM_MAX) >> return -EINVAL; >> - >> - for (i = 0; i < p_hevc_decode_params->num_active_dpb_entries; >> - i++) { >> - struct v4l2_hevc_dpb_entry *dpb_entry = >> - &p_hevc_decode_params->dpb[i]; >> - >> - zero_padding(*dpb_entry); >> - } >> break; >> >> case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: >> p_hevc_slice_params = p; >> >> - zero_padding(p_hevc_slice_params->pred_weight_table); >> zero_padding(*p_hevc_slice_params); >> break; >> >> diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h >> index efc0412ac41e..9abca1a75bd4 100644 >> --- a/include/media/hevc-ctrls.h >> +++ b/include/media/hevc-ctrls.h >> @@ -133,7 +133,9 @@ struct v4l2_ctrl_hevc_sps { >> __u8 chroma_format_idc; >> __u8 sps_max_sub_layers_minus1; >> >> + __u8 reserved[6]; >> __u64 flags; >> + __u8 padding[24]; > Why are there 24 padding bytes at the end? For future use? If so, what is > the rationale for '24'? Is it likely that new fields will be added in future > HEVC revisions? Or is it in case we forget something? > > It's missing kerneldoc comments as well: it should state that the application > must zero this. > > Why mix 'reserved' with 'padding'? It's odd to see both names in a single > struct. > > In any case, this patch goes beyond 'fixing padding', it is doing more. > > If you really want to add space for future use at the end of structs, > then do that in a separate patch together with a rationale for it. I have used reserved fields in the middle of the structure to align the other fields like show by pahole. padding fields are there to be aligned on cache boundaries at the end of the structures. I don't plan to use in near future but trying to be future proof (maybe over doing here...) Regards, Benjamin > > Regards, > > Hans > >> }; >> >> #define V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED (1ULL << 0) >> @@ -210,9 +212,10 @@ struct v4l2_ctrl_hevc_pps { >> __s8 pps_beta_offset_div2; >> __s8 pps_tc_offset_div2; >> __u8 log2_parallel_merge_level_minus2; >> + __u8 reserved[9]; >> >> - __u8 padding[4]; >> __u64 flags; >> + __u8 padding[56]; >> }; >> >> #define V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE 0x01 >> @@ -245,8 +248,8 @@ struct v4l2_hevc_dpb_entry { >> __u64 timestamp; >> __u8 flags; >> __u8 field_pic; >> + __u16 reserved; >> __s32 pic_order_cnt_val; >> - __u8 padding[2]; >> }; >> >> /** >> @@ -285,8 +288,6 @@ struct v4l2_hevc_pred_weight_table { >> __s8 delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]; >> __s8 chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]; >> >> - __u8 padding[6]; >> - >> __u8 luma_log2_weight_denom; >> __s8 delta_chroma_log2_weight_denom; >> }; >> @@ -381,18 +382,20 @@ struct v4l2_ctrl_hevc_slice_params { >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture timing SEI message */ >> __u8 pic_struct; >> >> + __u8 reserved0[3]; >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */ >> __u32 slice_segment_addr; >> __u8 ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u8 ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u16 short_term_ref_pic_set_size; >> __u16 long_term_ref_pic_set_size; >> - __u8 padding; >> >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */ >> struct v4l2_hevc_pred_weight_table pred_weight_table; >> >> + __u8 reserved1[2]; >> __u64 flags; >> + __u8 padding[40]; >> }; >> >> #define V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC 0x1 >> @@ -408,7 +411,6 @@ struct v4l2_ctrl_hevc_slice_params { >> * @long_term_ref_pic_set_size: specifies the size of long-term reference >> * pictures set include in the SPS of the first slice >> * @num_active_dpb_entries: the number of entries in dpb >> - * @dpb: the decoded picture buffer, for meta-data about reference frames >> * @num_poc_st_curr_before: the number of reference pictures in the short-term >> * set that come before the current frame >> * @num_poc_st_curr_after: the number of reference pictures in the short-term >> @@ -419,6 +421,7 @@ struct v4l2_ctrl_hevc_slice_params { >> * @poc_st_curr_after: provides the index of the short term after references >> * in DPB array >> * @poc_lt_curr: provides the index of the long term references in DPB array >> + * @dpb: the decoded picture buffer, for meta-data about reference frames >> * @flags: see V4L2_HEVC_DECODE_PARAM_FLAG_{} >> */ >> struct v4l2_ctrl_hevc_decode_params { >> @@ -426,14 +429,16 @@ struct v4l2_ctrl_hevc_decode_params { >> __u16 short_term_ref_pic_set_size; >> __u16 long_term_ref_pic_set_size; >> __u8 num_active_dpb_entries; >> - struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u8 num_poc_st_curr_before; >> __u8 num_poc_st_curr_after; >> __u8 num_poc_lt_curr; >> __u8 poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u8 poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u8 poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> + __u8 reserved[4]; >> + struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]; >> __u64 flags; >> + __u8 padding[56]; >> }; >> >> /** 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 C01D3C433EF for ; Tue, 14 Jun 2022 15:21:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=z8EBZ6Efe0QRyPwiZ+ituU8dMPYJG/DTp25CEouwKK4=; b=U0+ulY8yYV1uhF ZTCwOQyE2WADcEVmVy5gHuGobe35Ode35kL8R8eXqiZ94VEPoTRlYdtASqTlVdDjwj1EmZlXA9hYh Dql8BO71mq3w4OuLHhmIJduJ4LKxRTPPMGHkFKG6va6236gbzQ9USW4c4R6cpKrCF3wens9nxmw0h TAVygA7vAkY1VN7db+Gj/s2xodhN/BNfLY3lj5yht8Z3g7mQ7dVG7rAnuf+tmzmd/DGNdMO8BbDU3 0OCZpdR9iBxMYvzS/5HZgNx5pj/FnDOTnq/vgrLnDH4ScOakb2Ou7olow72encr/I0DrF10zVEr2A FMZKmxhOp8kyjcjgPuFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o18Ku-00A7tB-Sn; Tue, 14 Jun 2022 15:20:08 +0000 Received: from madras.collabora.co.uk ([46.235.227.172]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o18Kp-00A7qh-Vm; Tue, 14 Jun 2022 15:20:07 +0000 Received: from [IPV6:2a01:e0a:120:3210:4a7b:8d3a:acaa:ec46] (unknown [IPv6:2a01:e0a:120:3210:4a7b:8d3a:acaa:ec46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id 7D48C66016B6; Tue, 14 Jun 2022 16:19:59 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1655220000; bh=FLW3rBQJG448Plypio646nbZo8pZ8RL4jC5iqbrceSg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ic9Lhc6v6UArFD38yUoCYxHOWaTtaRst0ve5YFMs8Q6Cqv4O3D0bVyk39wyHixrCS 8Xd6ocDOIS1jTgP0blCdQ04gxqJyZBhZya/zGFp/EDyp5Ww3xVUv53TZh3LXt15zJh qcfS23F9HLg5DxGcsL+TMociIwpRp1N2JbSWq3nUa6Ptk/D5Aa4RDteVnON8g0HN7w 4foA79x4hWviqS2oDmt14QTuiOi+IQS0qCR/MASBw6RE9lD7nPSaGoUqFq7gJj1qz5 rZ4PS8nnV47Er/s+GlZ/IX6V2wau+vi1TRp7l6lYzIW9DYbFuzMKgNgAxjcdLlOYJF ocJT26ujbd1Vg== Message-ID: Date: Tue, 14 Jun 2022 17:19:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH v8 15/17] media: uapi: HEVC: fix padding in v4l2 control structures Content-Language: en-US To: Hans Verkuil , mchehab@kernel.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org, nicolas.dufresne@collabora.com, andrzej.p@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, kernel@collabora.com References: <20220614083614.240641-1-benjamin.gaignard@collabora.com> <20220614083614.240641-16-benjamin.gaignard@collabora.com> <0c656c92-f029-bc02-6026-23649836d080@xs4all.nl> From: Benjamin Gaignard In-Reply-To: <0c656c92-f029-bc02-6026-23649836d080@xs4all.nl> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220614_082005_391044_8317A743 X-CRM114-Status: GOOD ( 24.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkxlIDE0LzA2LzIwMjIgw6AgMTY6MDksIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+IE9uIDYv MTQvMjIgMTA6MzYsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+PiBGaXggcGFkZGluZyB3aGVy ZSBuZWVkZWQgdG8gcmVtb3ZlIGhvbGVzIGFuZCBzdGF5IGFsaWduIG9uIGNhY2hlIGJvdW5kYXJp ZXMKPiBhbGlnbiAtPiBhbGlnbmVkCj4KPj4gU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2FpZ25h cmQgPGJlbmphbWluLmdhaWduYXJkQGNvbGxhYm9yYS5jb20+Cj4+IC0tLQo+PiAgIC4uLi9tZWRp YS92NGwvZXh0LWN0cmxzLWNvZGVjLnJzdCAgICAgICAgICAgICB8ICA2ICsrKy0tLQo+PiAgIGRy aXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMtY29yZS5jICAgICB8ICA5IC0tLS0tLS0t LQo+PiAgIGluY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oICAgICAgICAgICAgICAgICAgICB8IDE5 ICsrKysrKysrKysrKy0tLS0tLS0KPj4gICAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMo KyksIDE5IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi91c2Vy c3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0IGIvRG9jdW1lbnRhdGlvbi91 c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0Cj4+IGluZGV4IDA1MjI4 ZTI4MGY2Ni4uNDhhODgyNWEwMDFiIDEwMDY0NAo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL3VzZXJz cGFjZS1hcGkvbWVkaWEvdjRsL2V4dC1jdHJscy1jb2RlYy5yc3QKPj4gKysrIGIvRG9jdW1lbnRh dGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0Cj4+IEBAIC0z NTA5LDkgKzM1MDksNiBAQCBlbnVtIHY0bDJfbXBlZ192aWRlb19oZXZjX3NpemVfb2ZfbGVuZ3Ro X2ZpZWxkIC0KPj4gICAgICAgKiAtIF9fdTgKPj4gICAgICAgICAtIGBgbnVtX2FjdGl2ZV9kcGJf ZW50cmllc2BgCj4+ICAgICAgICAgLSBUaGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gYGBkcGJgYC4K Pj4gLSAgICAqIC0gc3RydWN0IDpjOnR5cGU6YHY0bDJfaGV2Y19kcGJfZW50cnlgCj4+IC0gICAg ICAtIGBgZHBiW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1fTUFYXWBgCj4+IC0gICAgICAtIFRo ZSBkZWNvZGVkIHBpY3R1cmUgYnVmZmVyLCBmb3IgbWV0YS1kYXRhIGFib3V0IHJlZmVyZW5jZSBm cmFtZXMuCj4+ICAgICAgICogLSBfX3U4Cj4+ICAgICAgICAgLSBgYG51bV9wb2Nfc3RfY3Vycl9i ZWZvcmVgYAo+PiAgICAgICAgIC0gVGhlIG51bWJlciBvZiByZWZlcmVuY2UgcGljdHVyZXMgaW4g dGhlIHNob3J0LXRlcm0gc2V0IHRoYXQgY29tZSBiZWZvcmUKPj4gQEAgLTM1MzUsNiArMzUzMiw5 IEBAIGVudW0gdjRsMl9tcGVnX3ZpZGVvX2hldmNfc2l6ZV9vZl9sZW5ndGhfZmllbGQgLQo+PiAg ICAgICAgIC0gYGBwb2NfbHRfY3VycltWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1gYAo+ PiAgICAgICAgIC0gUG9jTHRDdXJyIGFzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDguMy4yICJEZWNv ZGluZyBwcm9jZXNzIGZvciByZWZlcmVuY2UKPj4gICAgICAgICAgIHBpY3R1cmUgc2V0IjogcHJv dmlkZXMgdGhlIGluZGV4IG9mIHRoZSBsb25nIHRlcm0gcmVmZXJlbmNlcyBpbiBEUEIgYXJyYXku Cj4+ICsgICAgKiAtIHN0cnVjdCA6Yzp0eXBlOmB2NGwyX2hldmNfZHBiX2VudHJ5YAo+PiArICAg ICAgLSBgYGRwYltWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1gYAo+PiArICAgICAgLSBU aGUgZGVjb2RlZCBwaWN0dXJlIGJ1ZmZlciwgZm9yIG1ldGEtZGF0YSBhYm91dCByZWZlcmVuY2Ug ZnJhbWVzLgo+PiAgICAgICAqIC0gX191NjQKPj4gICAgICAgICAtIGBgZmxhZ3NgYAo+PiAgICAg ICAgIC0gU2VlIDpyZWY6YERlY29kZSBQYXJhbWV0ZXJzIEZsYWdzIDxoZXZjX2RlY29kZV9wYXJh bXNfZmxhZ3M+YAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1j dHJscy1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLWNvcmUuYwo+ PiBpbmRleCBjNWM1NDA3NTg0ZmYuLmZiNjg3ODZjNDk4YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9tZWRpYS92NGwyLWNvcmUvdjRsMi1jdHJscy1jb3JlLmMKPj4gKysrIGIvZHJpdmVycy9tZWRp YS92NGwyLWNvcmUvdjRsMi1jdHJscy1jb3JlLmMKPj4gQEAgLTgyNCwyMCArODI0LDExIEBAIHN0 YXRpYyBpbnQgc3RkX3ZhbGlkYXRlX2NvbXBvdW5kKGNvbnN0IHN0cnVjdCB2NGwyX2N0cmwgKmN0 cmwsIHUzMiBpZHgsCj4+ICAgCQlpZiAocF9oZXZjX2RlY29kZV9wYXJhbXMtPm51bV9hY3RpdmVf ZHBiX2VudHJpZXMgPgo+PiAgIAkJICAgIFY0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1fTUFYKQo+ PiAgIAkJCXJldHVybiAtRUlOVkFMOwo+PiAtCj4+IC0JCWZvciAoaSA9IDA7IGkgPCBwX2hldmNf ZGVjb2RlX3BhcmFtcy0+bnVtX2FjdGl2ZV9kcGJfZW50cmllczsKPj4gLQkJICAgICBpKyspIHsK Pj4gLQkJCXN0cnVjdCB2NGwyX2hldmNfZHBiX2VudHJ5ICpkcGJfZW50cnkgPQo+PiAtCQkJCSZw X2hldmNfZGVjb2RlX3BhcmFtcy0+ZHBiW2ldOwo+PiAtCj4+IC0JCQl6ZXJvX3BhZGRpbmcoKmRw Yl9lbnRyeSk7Cj4+IC0JCX0KPj4gICAJCWJyZWFrOwo+PiAgIAo+PiAgIAljYXNlIFY0TDJfQ1RS TF9UWVBFX0hFVkNfU0xJQ0VfUEFSQU1TOgo+PiAgIAkJcF9oZXZjX3NsaWNlX3BhcmFtcyA9IHA7 Cj4+ICAgCj4+IC0JCXplcm9fcGFkZGluZyhwX2hldmNfc2xpY2VfcGFyYW1zLT5wcmVkX3dlaWdo dF90YWJsZSk7Cj4+ICAgCQl6ZXJvX3BhZGRpbmcoKnBfaGV2Y19zbGljZV9wYXJhbXMpOwo+PiAg IAkJYnJlYWs7Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL2hldmMtY3RybHMu aCBiL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oCj4+IGluZGV4IGVmYzA0MTJhYzQxZS4uOWFi Y2ExYTc1YmQ0IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL21lZGlhL2hldmMtY3RybHMuaAo+PiAr KysgYi9pbmNsdWRlL21lZGlhL2hldmMtY3RybHMuaAo+PiBAQCAtMTMzLDcgKzEzMyw5IEBAIHN0 cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgewo+PiAgIAlfX3U4CWNocm9tYV9mb3JtYXRfaWRjOwo+ PiAgIAlfX3U4CXNwc19tYXhfc3ViX2xheWVyc19taW51czE7Cj4+ICAgCj4+ICsJX191OAlyZXNl cnZlZFs2XTsKPj4gICAJX191NjQJZmxhZ3M7Cj4+ICsJX191OAlwYWRkaW5nWzI0XTsKPiBXaHkg YXJlIHRoZXJlIDI0IHBhZGRpbmcgYnl0ZXMgYXQgdGhlIGVuZD8gRm9yIGZ1dHVyZSB1c2U/IElm IHNvLCB3aGF0IGlzCj4gdGhlIHJhdGlvbmFsZSBmb3IgJzI0Jz8gSXMgaXQgbGlrZWx5IHRoYXQg bmV3IGZpZWxkcyB3aWxsIGJlIGFkZGVkIGluIGZ1dHVyZQo+IEhFVkMgcmV2aXNpb25zPyBPciBp cyBpdCBpbiBjYXNlIHdlIGZvcmdldCBzb21ldGhpbmc/Cj4KPiBJdCdzIG1pc3Npbmcga2VybmVs ZG9jIGNvbW1lbnRzIGFzIHdlbGw6IGl0IHNob3VsZCBzdGF0ZSB0aGF0IHRoZSBhcHBsaWNhdGlv bgo+IG11c3QgemVybyB0aGlzLgo+Cj4gV2h5IG1peCAncmVzZXJ2ZWQnIHdpdGggJ3BhZGRpbmcn PyBJdCdzIG9kZCB0byBzZWUgYm90aCBuYW1lcyBpbiBhIHNpbmdsZQo+IHN0cnVjdC4KPgo+IElu IGFueSBjYXNlLCB0aGlzIHBhdGNoIGdvZXMgYmV5b25kICdmaXhpbmcgcGFkZGluZycsIGl0IGlz IGRvaW5nIG1vcmUuCj4KPiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHNwYWNlIGZvciBmdXR1 cmUgdXNlIGF0IHRoZSBlbmQgb2Ygc3RydWN0cywKPiB0aGVuIGRvIHRoYXQgaW4gYSBzZXBhcmF0 ZSBwYXRjaCB0b2dldGhlciB3aXRoIGEgcmF0aW9uYWxlIGZvciBpdC4KCkkgaGF2ZSB1c2VkIHJl c2VydmVkIGZpZWxkcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzdHJ1Y3R1cmUgdG8gYWxpZ24gdGhl IG90aGVyCmZpZWxkcyBsaWtlIHNob3cgYnkgcGFob2xlLgpwYWRkaW5nIGZpZWxkcyBhcmUgdGhl cmUgdG8gYmUgYWxpZ25lZCBvbiBjYWNoZSBib3VuZGFyaWVzIGF0IHRoZSBlbmQgb2YgdGhlCnN0 cnVjdHVyZXMuCkkgZG9uJ3QgcGxhbiB0byB1c2UgaW4gbmVhciBmdXR1cmUgYnV0IHRyeWluZyB0 byBiZSBmdXR1cmUgcHJvb2YgKG1heWJlIG92ZXIKZG9pbmcgaGVyZS4uLikKClJlZ2FyZHMsCkJl bmphbWluCgo+Cj4gUmVnYXJkcywKPgo+IAlIYW5zCj4KPj4gICB9Owo+PiAgIAo+PiAgICNkZWZp bmUgVjRMMl9IRVZDX1BQU19GTEFHX0RFUEVOREVOVF9TTElDRV9TRUdNRU5UX0VOQUJMRUQJKDFV TEwgPDwgMCkKPj4gQEAgLTIxMCw5ICsyMTIsMTAgQEAgc3RydWN0IHY0bDJfY3RybF9oZXZjX3Bw cyB7Cj4+ICAgCV9fczgJcHBzX2JldGFfb2Zmc2V0X2RpdjI7Cj4+ICAgCV9fczgJcHBzX3RjX29m ZnNldF9kaXYyOwo+PiAgIAlfX3U4CWxvZzJfcGFyYWxsZWxfbWVyZ2VfbGV2ZWxfbWludXMyOwo+ PiArCV9fdTgJcmVzZXJ2ZWRbOV07Cj4+ICAgCj4+IC0JX191OAlwYWRkaW5nWzRdOwo+PiAgIAlf X3U2NAlmbGFnczsKPj4gKwlfX3U4CXBhZGRpbmdbNTZdOwo+PiAgIH07Cj4+ICAgCj4+ICAgI2Rl ZmluZSBWNEwyX0hFVkNfRFBCX0VOVFJZX0xPTkdfVEVSTV9SRUZFUkVOQ0UJMHgwMQo+PiBAQCAt MjQ1LDggKzI0OCw4IEBAIHN0cnVjdCB2NGwyX2hldmNfZHBiX2VudHJ5IHsKPj4gICAJX191NjQJ dGltZXN0YW1wOwo+PiAgIAlfX3U4CWZsYWdzOwo+PiAgIAlfX3U4CWZpZWxkX3BpYzsKPj4gKwlf X3UxNglyZXNlcnZlZDsKPj4gICAJX19zMzIJcGljX29yZGVyX2NudF92YWw7Cj4+IC0JX191OAlw YWRkaW5nWzJdOwo+PiAgIH07Cj4+ICAgCj4+ICAgLyoqCj4+IEBAIC0yODUsOCArMjg4LDYgQEAg c3RydWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90YWJsZSB7Cj4+ICAgCV9fczgJZGVsdGFfY2hy b21hX3dlaWdodF9sMVtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1bMl07Cj4+ICAgCV9f czgJY2hyb21hX29mZnNldF9sMVtWNEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF1bMl07Cj4+ ICAgCj4+IC0JX191OAlwYWRkaW5nWzZdOwo+PiAtCj4+ICAgCV9fdTgJbHVtYV9sb2cyX3dlaWdo dF9kZW5vbTsKPj4gICAJX19zOAlkZWx0YV9jaHJvbWFfbG9nMl93ZWlnaHRfZGVub207Cj4+ICAg fTsKPj4gQEAgLTM4MSwxOCArMzgyLDIwIEBAIHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zbGljZV9w YXJhbXMgewo+PiAgIAkvKiBJU08vSUVDIDIzMDA4LTIsIElUVS1UIFJlYy4gSC4yNjU6IFBpY3R1 cmUgdGltaW5nIFNFSSBtZXNzYWdlICovCj4+ICAgCV9fdTgJcGljX3N0cnVjdDsKPj4gICAKPj4g KwlfX3U4CXJlc2VydmVkMFszXTsKPj4gICAJLyogSVNPL0lFQyAyMzAwOC0yLCBJVFUtVCBSZWMu IEguMjY1OiBHZW5lcmFsIHNsaWNlIHNlZ21lbnQgaGVhZGVyICovCj4+ICAgCV9fdTMyCXNsaWNl X3NlZ21lbnRfYWRkcjsKPj4gICAJX191OAlyZWZfaWR4X2wwW1Y0TDJfSEVWQ19EUEJfRU5UUklF U19OVU1fTUFYXTsKPj4gICAJX191OAlyZWZfaWR4X2wxW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19O VU1fTUFYXTsKPj4gICAJX191MTYJc2hvcnRfdGVybV9yZWZfcGljX3NldF9zaXplOwo+PiAgIAlf X3UxNglsb25nX3Rlcm1fcmVmX3BpY19zZXRfc2l6ZTsKPj4gLQlfX3U4CXBhZGRpbmc7Cj4+ICAg Cj4+ICAgCS8qIElTTy9JRUMgMjMwMDgtMiwgSVRVLVQgUmVjLiBILjI2NTogV2VpZ2h0ZWQgcHJl ZGljdGlvbiBwYXJhbWV0ZXIgKi8KPj4gICAJc3RydWN0IHY0bDJfaGV2Y19wcmVkX3dlaWdodF90 YWJsZSBwcmVkX3dlaWdodF90YWJsZTsKPj4gICAKPj4gKwlfX3U4CXJlc2VydmVkMVsyXTsKPj4g ICAJX191NjQJZmxhZ3M7Cj4+ICsJX191OAlwYWRkaW5nWzQwXTsKPj4gICB9Owo+PiAgIAo+PiAg ICNkZWZpbmUgVjRMMl9IRVZDX0RFQ09ERV9QQVJBTV9GTEFHX0lSQVBfUElDCQkweDEKPj4gQEAg LTQwOCw3ICs0MTEsNiBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4g ICAgKiBAbG9uZ190ZXJtX3JlZl9waWNfc2V0X3NpemU6IHNwZWNpZmllcyB0aGUgc2l6ZSBvZiBs b25nLXRlcm0gcmVmZXJlbmNlCj4+ICAgICoJCQkJcGljdHVyZXMgc2V0IGluY2x1ZGUgaW4gdGhl IFNQUyBvZiB0aGUgZmlyc3Qgc2xpY2UKPj4gICAgKiBAbnVtX2FjdGl2ZV9kcGJfZW50cmllczog dGhlIG51bWJlciBvZiBlbnRyaWVzIGluIGRwYgo+PiAtICogQGRwYjogdGhlIGRlY29kZWQgcGlj dHVyZSBidWZmZXIsIGZvciBtZXRhLWRhdGEgYWJvdXQgcmVmZXJlbmNlIGZyYW1lcwo+PiAgICAq IEBudW1fcG9jX3N0X2N1cnJfYmVmb3JlOiB0aGUgbnVtYmVyIG9mIHJlZmVyZW5jZSBwaWN0dXJl cyBpbiB0aGUgc2hvcnQtdGVybQo+PiAgICAqCQkJICAgIHNldCB0aGF0IGNvbWUgYmVmb3JlIHRo ZSBjdXJyZW50IGZyYW1lCj4+ICAgICogQG51bV9wb2Nfc3RfY3Vycl9hZnRlcjogdGhlIG51bWJl ciBvZiByZWZlcmVuY2UgcGljdHVyZXMgaW4gdGhlIHNob3J0LXRlcm0KPj4gQEAgLTQxOSw2ICs0 MjEsNyBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfc2xpY2VfcGFyYW1zIHsKPj4gICAgKiBAcG9j X3N0X2N1cnJfYWZ0ZXI6IHByb3ZpZGVzIHRoZSBpbmRleCBvZiB0aGUgc2hvcnQgdGVybSBhZnRl ciByZWZlcmVuY2VzCj4+ICAgICoJCSAgICAgICBpbiBEUEIgYXJyYXkKPj4gICAgKiBAcG9jX2x0 X2N1cnI6IHByb3ZpZGVzIHRoZSBpbmRleCBvZiB0aGUgbG9uZyB0ZXJtIHJlZmVyZW5jZXMgaW4g RFBCIGFycmF5Cj4+ICsgKiBAZHBiOiB0aGUgZGVjb2RlZCBwaWN0dXJlIGJ1ZmZlciwgZm9yIG1l dGEtZGF0YSBhYm91dCByZWZlcmVuY2UgZnJhbWVzCj4+ICAgICogQGZsYWdzOiBzZWUgVjRMMl9I RVZDX0RFQ09ERV9QQVJBTV9GTEFHX3t9Cj4+ICAgICovCj4+ICAgc3RydWN0IHY0bDJfY3RybF9o ZXZjX2RlY29kZV9wYXJhbXMgewo+PiBAQCAtNDI2LDE0ICs0MjksMTYgQEAgc3RydWN0IHY0bDJf Y3RybF9oZXZjX2RlY29kZV9wYXJhbXMgewo+PiAgIAlfX3UxNglzaG9ydF90ZXJtX3JlZl9waWNf c2V0X3NpemU7Cj4+ICAgCV9fdTE2CWxvbmdfdGVybV9yZWZfcGljX3NldF9zaXplOwo+PiAgIAlf X3U4CW51bV9hY3RpdmVfZHBiX2VudHJpZXM7Cj4+IC0Jc3RydWN0CXY0bDJfaGV2Y19kcGJfZW50 cnkgZHBiW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1fTUFYXTsKPj4gICAJX191OAludW1fcG9j X3N0X2N1cnJfYmVmb3JlOwo+PiAgIAlfX3U4CW51bV9wb2Nfc3RfY3Vycl9hZnRlcjsKPj4gICAJ X191OAludW1fcG9jX2x0X2N1cnI7Cj4+ICAgCV9fdTgJcG9jX3N0X2N1cnJfYmVmb3JlW1Y0TDJf SEVWQ19EUEJfRU5UUklFU19OVU1fTUFYXTsKPj4gICAJX191OAlwb2Nfc3RfY3Vycl9hZnRlcltW NEwyX0hFVkNfRFBCX0VOVFJJRVNfTlVNX01BWF07Cj4+ICAgCV9fdTgJcG9jX2x0X2N1cnJbVjRM Ml9IRVZDX0RQQl9FTlRSSUVTX05VTV9NQVhdOwo+PiArCV9fdTgJcmVzZXJ2ZWRbNF07Cj4+ICsJ c3RydWN0CXY0bDJfaGV2Y19kcGJfZW50cnkgZHBiW1Y0TDJfSEVWQ19EUEJfRU5UUklFU19OVU1f TUFYXTsKPj4gICAJX191NjQJZmxhZ3M7Cj4+ICsJX191OAlwYWRkaW5nWzU2XTsKPj4gICB9Owo+ PiAgIAo+PiAgIC8qKgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=