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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6792CC433F5 for ; Wed, 1 Dec 2021 06:26:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346922AbhLAG3o (ORCPT ); Wed, 1 Dec 2021 01:29:44 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:54334 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231871AbhLAG3n (ORCPT ); Wed, 1 Dec 2021 01:29:43 -0500 Received: from [192.168.1.111] (91-156-85-209.elisa-laajakaista.fi [91.156.85.209]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 3D244A15; Wed, 1 Dec 2021 07:26:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1638339980; bh=qpjWVao1bbPwqprW/2P7GnQK6pxj1pgBwEYl6tu4AGA=; h=Subject:To:References:From:Date:In-Reply-To:From; b=d17mdEyRKPcz9ckZs8TjCp9NhSDTM5FvGhrjUCoiONlcDDaeEYcZYbBa73UtZaoL3 7eEkOPZXxyjY0Jk2yqwtQUqNrSoTyWPfQDAYThzBPlDZdQe3GmE4cPEQ/4r2GF2p/l 8tlDFdQ9AGFpc4uzQuPjrhrHjG6ER3LjEhI3Jdf4= Subject: Re: [PATCH v10 00/38] v4l: subdev internal routing and streams To: linux-media@vger.kernel.org, sakari.ailus@linux.intel.com, Jacopo Mondi , Laurent Pinchart , niklas.soderlund+renesas@ragnatech.se, Mauro Carvalho Chehab , Hans Verkuil , Pratyush Yadav References: <20211130141536.891878-1-tomi.valkeinen@ideasonboard.com> From: Tomi Valkeinen Message-ID: Date: Wed, 1 Dec 2021 08:26:14 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <20211130141536.891878-1-tomi.valkeinen@ideasonboard.com> Content-Type: multipart/mixed; boundary="------------FEF71ABCF86C775ACEB8479B" Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This is a multi-part message in MIME format. --------------FEF71ABCF86C775ACEB8479B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 30/11/2021 16:14, Tomi Valkeinen wrote: > Hi, > > This is v10 of the multiplexed streams series. v8 can be found from: That's supposed to be v9, not v8. > https://lore.kernel.org/all/20211005085750.138151-1-tomi.valkeinen@ideasonboard.com/ > > I have pushed my work branch to: > > git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git multistream/work-v10 > > which contains the patches in this series, along with subdev drivers > using multiplexed streams. > > I have also pushed v4l-utils changes to: > > https://github.com/tomba/v4l-utils.git streams-review-v1 > > Changes to v9: > > - Add V4L2_SUBDEV_CAP_MPLEXED flag > - Use standard kmalloc and kmemdup for routes > - Allow NULL as pad/stream param for v4l2_state_find_opposite_end > - Add for_each_active_route > - Use _BITUL() in uapi header > - Rearrange struct v4l2_subdev_routing members to align on 64 bit > - Renames: > sd->state -> sd->active_state > v4l2_state_find_opposite_end -> v4l2_subdev_routing_find_opposite_end > v4l2_state_get_opposite_stream_format -> v4l2_subdev_state_get_opposite_stream_format > v4l2_routing_simple_verify -> v4l2_subdev_routing_validate_1_to_1 > v4l2_subdev_validate_and_lock_state -> v4l2_subdev_lock_and_return_state > - Doc & comment updates To help reviews, here's the diff to the v8. Tomi --------------FEF71ABCF86C775ACEB8479B Content-Type: text/plain; charset=UTF-8; name="multistream-diff.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="multistream-diff.txt" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9tZWRpYS92NGwyLXN1YmRl di5yc3QgYi9Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvbWVkaWEvdjRsMi1zdWJkZXYucnN0 CmluZGV4IDQxMGUwM2EyOWYyYS4uMWQ5ODZlODE0YjRlIDEwMDY0NAotLS0gYS9Eb2N1bWVu dGF0aW9uL2RyaXZlci1hcGkvbWVkaWEvdjRsMi1zdWJkZXYucnN0CisrKyBiL0RvY3VtZW50 YXRpb24vZHJpdmVyLWFwaS9tZWRpYS92NGwyLXN1YmRldi5yc3QKQEAgLTUyNSw5ICs1MjUs OSBAQCBUcmFkaXRpb25hbGx5IFY0TDIgc3ViZGV2IGRyaXZlcnMgbWFpbnRhaW5lZCBpbnRl cm5hbCBzdGF0ZSBmb3IgdGhlIGFjdGl2ZQogY29uZmlndXJhdGlvbiBmb3IgdGhlIHN1YmRl di4gVGhpcyBpcyBvZnRlbiBpbXBsZW1lbnRlZCBhcyBhbiBhcnJheSBvZiBzdHJ1Y3QKIHY0 bDJfbWJ1c19mcmFtZWZtdCwgb25lIGVudHJ5IGZvciBlYWNoIHBhZC4KIAotSW4gYWRkaXRp b24gdG8gdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLCBlYWNoIHN1YmRldiBmaWxlaGFuZGxl IGhhcyBjb250YWluZWQKLWFuIGFycmF5IG9mIHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfY29u ZmlnLCBtYW5hZ2VkIGJ5IFY0TDIgY29yZSwgd2hpY2gKLWNvbnRhaW5zIHRoZSBUUlkgY29u ZmlndXJhdGlvbi4KK0luIGFkZGl0aW9uIHRvIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiwg ZWFjaCBzdWJkZXYgZmlsZWhhbmRsZSBoYXMgYW4gYXJyYXkgb2YKK3N0cnVjdCB2NGwyX3N1 YmRldl9wYWRfY29uZmlnLCBtYW5hZ2VkIGJ5IFY0TDIgY29yZSwgd2hpY2ggY29udGFpbnMg dGhlIFRSWQorY29uZmlndXJhdGlvbi4KIAogVG8gc2ltcGxpZnkgdGhlIHN1YmRldiBkcml2 ZXJzIHRoZSBWNEwyIHN1YmRldiBBUEkgbm93IG9wdGlvbmFsbHkgc3VwcG9ydHMgYQogY2Vu dHJhbGx5IG1hbmFnZWQgYWN0aXZlIGNvbmZpZ3VyYXRpb24uIEEgc3ViZGV2IGRyaXZlciBt dXN0IHVzZQpAQCAtNTM1LDEzICs1MzUsMTMgQEAgdjRsMl9zdWJkZXZfaW5pdF9maW5hbGl6 ZSgpIHRvIGluaXRpYWxpemUgdGhlIGFjdGl2ZSBzdGF0ZSBiZXR3ZWVuIGNhbGxzIHRvCiBt ZWRpYV9lbnRpdHlfcGFkc19pbml0KCkgYW5kIHY0bDJfKl9yZWdpc3Rlcl9zdWJkZXYoKSwg YW5kIG11c3QgY2FsbAogdjRsMl9zdWJkZXZfY2xlYW51cCgpIHRvIGZyZWUgdGhlIHN0YXRl LgogCi1UaGUgYWN0aXZlIHN0YXRlIG11c3QgYmUgbG9ja2VkIGJlZm9yZSBhY2Nlc3MsIGFu ZCBjYW4gYmUgZG9uZSB3aXRoCitUaGUgYWN0aXZlIHN0YXRlIG11c3QgYmUgbG9ja2VkIGJl Zm9yZSBhY2Nlc3MsIGFuZCB0aGF0IGNhbiBiZSBkb25lIHdpdGgKIHY0bDJfc3ViZGV2X2xv Y2tfc3RhdGUoKSBvciB2NGwyX3N1YmRldl9sb2NrX2FjdGl2ZV9zdGF0ZSgpLgogCiBUaGUg VjRMMiBjb3JlIHdpbGwgcGFzcyBlaXRoZXIgdGhlIFRSWSBvciBBQ1RJVkUgc3RhdGUgdG8g dmFyaW91cyBzdWJkZXYgb3BzLgotVW5mb3J0dW5hdGVseSBhbGwgdGhlIHN1YmRldiBkcml2 ZXJzIGRvIG5vdCBjb21wbHkgd2l0aCB0aGlzIHlldCwgYW5kIG1heSBwYXNzCitVbmZvcnR1 bmF0ZWx5IG5vdCBhbGwgdGhlIHN1YmRldiBkcml2ZXJzIGNvbXBseSB3aXRoIHRoaXMgeWV0 LCBhbmQgbWF5IHBhc3MKIE5VTEwgZm9yIHRoZSBBQ1RJVkUgY2FzZS4gVGhpcyBpcyBvbmx5 IGEgcHJvYmxlbSBmb3Igc3ViZGV2IGRyaXZlcnMgd2hpY2ggdXNlCi10aGUgY2V0cmFsbHkg bWFuYWdlZCBhY3RpdmUgc3RhdGUgYW5kIGFyZSB1c2VkIGluIG1lZGlhIHBpcGVsaW5lcyB3 aXRoIG9sZGVyCit0aGUgY2VudHJhbGx5IG1hbmFnZWQgYWN0aXZlIHN0YXRlIGFuZCBhcmUg dXNlZCBpbiBtZWRpYSBwaXBlbGluZXMgd2l0aCBvbGRlcgogc3ViZGV2IGRyaXZlcnMuIElu IHRoZXNlIGNhc2VzIHRoZSBjYWxsZWQgc3ViZGV2IG9wcyBtdXN0IGFsc28gaGFuZGxlIHRo ZSBOVUxMCiBjYXNlLiBUaGlzIGNhbiBiZSBlYXNpbHkgbWFuYWdlZCBieSB0aGUgdXNlIG9m CiB2NGwyX3N1YmRldl92YWxpZGF0ZV9hbmRfbG9ja19zdGF0ZSgpIGhlbHBlci4KZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvZGV2LXN1YmRl di5yc3QgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2Rldi1zdWJk ZXYucnN0CmluZGV4IGVhM2VmYTk3YmIwOC4uZmQwNDJhZmVkZGQ2IDEwMDY0NAotLS0gYS9E b2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2Rldi1zdWJkZXYucnN0Cisr KyBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvZGV2LXN1YmRldi5y c3QKQEAgLTUwOCw3ICs1MDgsNyBAQCBTdHJlYW1zLCBtdWx0aXBsZXhlZCBtZWRpYSBwYWRz IGFuZCBpbnRlcm5hbCByb3V0aW5nCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIENvbW1vbmx5IFY0TDIgc3ViZGV2aWNlcyBzdXBw b3J0IG9ubHkgc2VwYXJhdGUgdmlkZW8gc3RyZWFtcywgdGhhdCBpcywgZWFjaAotbGluayBp biB0aGUgbWVkaWEgZ3JhcCBhbmQgZWFjaCBwYWQgaW4gYSBzdWJkZXZpY2UgcGFzc2VzIHRo cm91Z2ggYSBzaW5nbGUKK2xpbmsgaW4gdGhlIG1lZGlhIGdyYXBoIGFuZCBlYWNoIHBhZCBp biBhIHN1YmRldmljZSBwYXNzIHRocm91Z2ggYSBzaW5nbGUKIHZpZGVvIHN0cmVhbS4gVGh1 cyBlYWNoIHBhZCBjb250YWlucyBhIGZvcm1hdCBjb25maWd1cmF0aW9uIGZvciB0aGF0IHNp bmdsZQogc3RyZWFtLiBJbiBzb21lIGNhc2VzIGEgc3ViZGV2IGNhbiBkbyBzdHJlYW0gcHJv Y2Vzc2luZyBhbmQgc3BsaXQgYSBzdHJlYW0KIGludG8gdHdvIG9yIGNvbXBvc2UgdHdvIHN0 cmVhbXMgaW50byBvbmUsIGJ1dCB0aGUgaW5wdXRzIGFuZCBvdXRwdXRzIGZvciB0aGUKQEAg LTUyMCwyMiArNTIwLDIyIEBAIHN0cmVhbSBhbmQgYSBtZXRhZGF0YSBzdHJlYW0sIGFuZCBh IGJyaWRnZSBzdWJkZXYgY291bGQgcm91dGUgdGhlIHN0cmVhbXMKIGZyb20gbXVsdGlwbGUg aW5wdXQgcGFkcyBpbnRvIGEgc2luZ2xlIG91dHB1dCBwYWQuCiAKIFN1YmRldmljZSBkcml2 ZXJzIHRoYXQgc3VwcG9ydCBtdWx0aXBsZXhlZCBzdHJlYW1zIGFyZSBjb21wYXRpYmxlIHdp dGgKLW5vbi1tdWx0aXBsZXhlZCBzdWJkZXYgZHJpdmVycywgYnV0LCBvZiBjb3Vyc2UsIHJl cXVpcmVzIHN1Y2ggYSByb3V0aW5nCi1jb25maWd1cmF0aW9uIHdoZXJlIHRoZSBsaW5rIGJl dHdlZW4gdGhvc2UgdHdvIHR5cGVzIG9mIGRyaXZlcnMgY29udGFpbiBvbmx5Ci1hIHNpbmds ZSBzdHJlYW0uCitub24tbXVsdGlwbGV4ZWQgc3ViZGV2IGRyaXZlcnMsIGJ1dCwgb2YgY291 cnNlLCByZXF1aXJlIGEgcm91dGluZyBjb25maWd1cmF0aW9uCit3aGVyZSB0aGUgbGluayBi ZXR3ZWVuIHRob3NlIHR3byB0eXBlcyBvZiBkcml2ZXJzIGNvbnRhaW5zIG9ubHkgYSBzaW5n bGUKK3N0cmVhbS4KIAogVW5kZXJzdGFuZGluZyBzdHJlYW1zCiBeXl5eXl5eXl5eXl5eXl5e Xl5eXl4KIAogQSBzdHJlYW0gaXMgYSBzdHJlYW0gb2YgY29udGVudCAoZS5nLiBwaXhlbCBk YXRhIG9yIG1ldGFkYXRhKSBmbG93aW5nIHRocm91Z2gKLXRoZSBtZWRpYSBwaXBlbGluZSBm cm9tIGEgc291cmNlIChlLmcuIGEgc2Vuc29yKSB0b3dhcmRzIHRoZSBmaW5hbCBzaW5rCi0o ZS5nLiBhIHJlY2VpdmVyIGluIGEgU29DKS4gRWFjaCBtZWRpYSBsaW5rIGNhcnJpZXMgYWxs IHRoZSBzdHJlYW1zIGZyb20KLW9uZSBlbmQgb2YgdGhlIGxpbmsgdG8gdGhlIG90aGVyLCB3 aGVyZWFzIHN1YmRldmljZXMgaGF2ZSByb3V0aW5nIHRhYmxlcwotd2hpY2ggZGVzY3JpYmUg aG93IHRoZSBpbmNvbWluZyBzdHJlYW1zIGZyb20gc2luayBwYWRzIGFyZSByb3V0ZWQgdG8g dGhlCi1zb3VyY2UgcGFkcy4KK3RoZSBtZWRpYSBwaXBlbGluZSBmcm9tIGEgc291cmNlIChl LmcuIGEgc2Vuc29yKSB0b3dhcmRzIHRoZSBmaW5hbCBzaW5rKGUuZy4gYQorcmVjZWl2ZXIg YW5kIGRlbXVsdGlwbGV4ZXIgaW4gYSBTb0MpLiBFYWNoIG1lZGlhIGxpbmsgY2FycmllcyBh bGwgdGhlIHN0cmVhbXMKK2Zyb20gb25lIGVuZCBvZiB0aGUgbGluayB0byB0aGUgb3RoZXIs IGFuZCBzdWJkZXZpY2VzIGhhdmUgcm91dGluZyB0YWJsZXMgd2hpY2gKK2Rlc2NyaWJlIGhv dyB0aGUgaW5jb21pbmcgc3RyZWFtcyBmcm9tIHNpbmsgcGFkcyBhcmUgcm91dGVkIHRvIHRo ZSBzb3VyY2UKK3BhZHMuCiAKIEEgc3RyZWFtIElEIChvZnRlbiBqdXN0ICJzdHJlYW0iKSBp cyBhIG1lZGlhIGxpbmstbG9jYWwgaWRlbnRpZmllciBmb3IgYQotc3RyZWFtLiBJbiBvdGhl ciB3b3JkcywgY29uZmlndXJhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIHN0cmVhbSBJRCBtdXN0 IGV4aXN0CitzdHJlYW0uIEluIG90aGVyIHdvcmRzLCBhIGNvbmZpZ3VyYXRpb24gZm9yIGEg cGFydGljdWxhciBzdHJlYW0gSUQgbXVzdCBleGlzdAogb24gYm90aCBzaWRlcyBvZiBhIG1l ZGlhIGxpbmssIGJ1dCBhbm90aGVyIHN0cmVhbSBJRCBjYW4gYmUgdXNlZCBmb3IgdGhlIHNh bWUKIHN0cmVhbSBhdCB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgc3ViZGV2aWNlLgogCkBAIC01 NTYsNyArNTU2LDggQEAgVGhlcmUgYXJlIHRocmVlIHN0ZXBzIGluIGNvbmZpZ3VyaW5nIHRo ZSBzdHJlYW1zOgogQ29udHJvbGxlciBBUEkgPG1lZGlhX2NvbnRyb2xsZXI+YAogCiAyKSBS b3V0aW5nLiBUaGUgcm91dGluZyB0YWJsZSBmb3IgdGhlIHN1YmRldmljZSBtdXN0IGJlIHNl dCB3aXRoCi06cmVmOmBWSURJT0NfU1VCREVWX1NfUk9VVElORyA8VklESU9DX1NVQkRFVl9H X1JPVVRJTkc+YCBpb2N0bC4KKzpyZWY6YFZJRElPQ19TVUJERVZfU19ST1VUSU5HIDxWSURJ T0NfU1VCREVWX0dfUk9VVElORz5gIGlvY3RsLiBOb3RlIHRoYXQKK3NldHRpbmcgdGhlIHJv dXRpbmcgdGFibGUgd2lsbCByZXNldCBhbGwgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucy4K IAogMykgQ29uZmlndXJlIHN0cmVhbXMuIEVhY2ggcm91dGUgZW5kcG9pbnQgbXVzdCBiZSBj b25maWd1cmVkCiB3aXRoIDpyZWY6YFZJRElPQ19TVUJERVZfU19GTVQgPFZJRElPQ19TVUJE RVZfR19GTVQ+YC4KQEAgLTY2Miw4ICs2NjMsOCBAQCBub3QgZGlmZmVyIGZyb20gbm9ybWFs IG5vbi1tdWx0aXBsZXhlZCBtZWRpYSBjb250cm9sbGVyIHNldHVwLgogQWZ0ZXIgY29uZmln dXJpbmcgdGhlIHJvdXRpbmcgdGFibGUsIHRoZSBuZXh0IHN0ZXAgaXMgY29uZmlndXJpbmcg dGhlIHN0cmVhbXMuCiBUaGlzIHN0ZXAgaXMgc2ltaWxhciB0byBjb25maWd1cmluZyB0aGUg cGFkcyBpbiBhIG5vbi1tdWx0aXBsZXhlZCBzdHJlYW1zCiBzZXR1cCwgd2l0aCB0aGUgZGlm ZmVyZW5jZSB0aGF0IHdlIG5lZWQgdG8gY29uZmlndXJlIGVhY2ggKHBhZCwgc3RyZWFtKSBw YWlyCi0oaS5lLiByb3V0ZSBlbmRwb2ludCksIGluc3RlYWQgb2YganVzdCBhIHBhZC4KKyhp LmUuIHJvdXRlIGVuZHBvaW50KSBpbnN0ZWFkIG9mIGp1c3QgYSBwYWQuCiAKLVByZXN1bWlu ZyB0aGVyZSBhcmUgbm8gZm9ybWF0IGNvbnZlcnNpb25zIGluIHRoZSBwaXBlbGluZSwgdGhl IHVzZXJzcGFjZSBuZWVkcwotdG8gY29uZmlndXJlIGFsbCB0aGUgcm91dGUgZW5kcG9pbnRz IHVzaW5nIGZvdXIgZm9ybWF0cyAodHdvIHBpeGVsIGZvcm1hdHMKLWFuZCB0d28gbWV0YWRh dGEgZm9ybWF0cykgd2l0aCBWSURJT0NfU1VCREVWX1NfRk1ULgorQSBjb21tb24gd2F5IHRv IGFjY29tcGxpc2ggdGhpcyBpcyB0byBzdGFydCBmcm9tIHRoZSBzZW5zb3JzIGFuZCBwcm9w YWdhdGUgdGhlCitjb25maWd1cmF0aW9ucyBhbG9uZyB0aGUgc3RyZWFtIHRvd2FyZHMgdGhl IHJlY2VpdmVyLCB1c2luZyBWSURJT0NfU1VCREVWX1NfRk1UCit0byBjb25maWd1cmUgZWFj aCBzdHJlYW0gZW5kcG9pbnQgaW4gZWFjaCBzdWJkZXYuCmRpZmYgLS1naXQgYS9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1zdWJkZXYtZy1yb3V0aW5n LnJzdCBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvdmlkaW9jLXN1 YmRldi1nLXJvdXRpbmcucnN0CmluZGV4IDQxZjQ4NzNjNDlmNy4uYTBkOWM3OWUxNjJmIDEw MDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlv Yy1zdWJkZXYtZy1yb3V0aW5nLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1h cGkvbWVkaWEvdjRsL3ZpZGlvYy1zdWJkZXYtZy1yb3V0aW5nLnJzdApAQCAtNDEsMTkgKzQx LDIzIEBAIFRoZSByb3V0aW5nIGNvbmZpZ3VyYXRpb24gZGV0ZXJtaW5lcyB0aGUgZmxvd3Mg b2YgZGF0YSBpbnNpZGUgYW4gZW50aXR5LgogCiBEcml2ZXJzIHJlcG9ydCB0aGVpciBjdXJy ZW50IHJvdXRpbmcgdGFibGVzIHVzaW5nIHRoZQogYGBWSURJT0NfU1VCREVWX0dfUk9VVElO R2BgIGlvY3RsIGFuZCBhcHBsaWNhdGlvbiBtYXkgZW5hYmxlIG9yIGRpc2FibGUgcm91dGVz Ci13aXRoIHRoZSBWSURJT0NfU1VCREVWX1NfUk9VVElORyBpb2N0bCwgYnkgYWRkaW5nIG9y IHJlbW92aW5nIHJvdXRlcyBhbmQgc2V0dGluZwotb3IgY2xlYXJpbmcgdGhlIGBgVjRMMl9T VUJERVZfUk9VVEVfRkxfQUNUSVZFYGAgZmxhZyBvZiB0aGUgIGBgZmxhZ3NgYCBmaWVsZCBv ZgotYSBzdHJ1Y3QgOmM6dHlwZTpgdjRsMl9zdWJkZXZfcm91dGVgLgord2l0aCB0aGUgYGBW SURJT0NfU1VCREVWX1NfUk9VVElOR2BgIGlvY3RsLCBieSBhZGRpbmcgb3IgcmVtb3Zpbmcg cm91dGVzIGFuZAorc2V0dGluZyBvciBjbGVhcmluZyBmbGFncyBvZiB0aGUgIGBgZmxhZ3Ng YCBmaWVsZCBvZiBhCitzdHJ1Y3QgOmM6dHlwZTpgdjRsMl9zdWJkZXZfcm91dGVgLgorCitB bGwgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGFyZSByZXNldCB3aGVuIGBgVklESU9DX1NVQkRF Vl9TX1JPVVRJTkdgYCBpcyBjYWxsZWQuIFRoaXMKK21lYW5zIHRoYXQgdGhlIHVzZXJzcGFj ZSBtdXQgcmVjb25maWd1cmUgYWxsIHN0cmVhbXMgYWZ0ZXIgY2FsbGluZyB0aGUgaW9jdGwK K3dpdGggZS5nLiBgYFZJRElPQ19TVUJERVZfU19GTVRgYC4KIAogQSBzcGVjaWFsIGNhc2Ug Zm9yIHJvdXRpbmcgYXJlIHJvdXRlcyBtYXJrZWQgd2l0aAogYGBWNEwyX1NVQkRFVl9ST1VU RV9GTF9TT1VSQ0VgYCBmbGFnLiBUaGVzZSByb3V0ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUK IHNvdXJjZSBlbmRwb2ludHMgb24gc2Vuc29ycyBhbmQgdGhlIHNpbmsgZmllbGRzIGFyZSB1 bnVzZWQuCiAKLVdoZW4gaW5zcGVjdGluZyByb3V0ZXMgdGhyb3VnaCBWSURJT0NfU1VCREVW X0dfUk9VVElORyBhbmQgdGhlIGFwcGxpY2F0aW9uCitXaGVuIGluc3BlY3Rpbmcgcm91dGVz IHRocm91Z2ggYGBWSURJT0NfU1VCREVWX0dfUk9VVElOR2BgIGFuZCB0aGUgYXBwbGljYXRp b24KIHByb3ZpZGVkIGBgbnVtX3JvdXRlc2BgIGlzIG5vdCBiaWcgZW5vdWdoIHRvIGNvbnRh aW4gYWxsIHRoZSBhdmFpbGFibGUgcm91dGVzCiB0aGUgc3ViZGV2aWNlIGV4cG9zZXMsIGRy aXZlcnMgcmV0dXJuIHRoZSBFTk9TUEMgZXJyb3IgY29kZSBhbmQgYWRqdXN0IHRoZQogdmFs dWUgb2YgdGhlIGBgbnVtX3JvdXRlc2BgIGZpZWxkLiBBcHBsaWNhdGlvbiBzaG91bGQgdGhl biByZXNlcnZlIGVub3VnaCBtZW1vcnkKLWZvciBhbGwgdGhlIHJvdXRlIGVudHJpZXMgYW5k IGNhbGwgVklESU9DX1NVQkRFVl9HX1JPVVRJTkcgYWdhaW4uCitmb3IgYWxsIHRoZSByb3V0 ZSBlbnRyaWVzIGFuZCBjYWxsIGBgVklESU9DX1NVQkRFVl9HX1JPVVRJTkdgYCBhZ2Fpbi4K IAogLi4gdGFidWxhcmNvbHVtbnM6OiB8cHs0LjRjbX18cHs0LjRjbX18cHs4LjdjbX18CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItc3ViZGV2LmMgYi9k cml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLXN1YmRldi5jCmluZGV4IDJhNjRmZjAwM2U0 Yi4uZGNhMmJlYTE4MGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92 NGwyLXN1YmRldi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItc3ViZGV2 LmMKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0aWMgaW50IGNoZWNrX3N0YXRlX3BhZF9zdHJl YW0oc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwKIAkgKiBXZSBuZWVkIHRvIHRha2UgdGhlIHN0 YXRlIGxvY2sgdG8gYWNjZXNzIHRoZSBmb3JtYXQsIGJ1dCBhcyB3ZSB0aGVuCiAJICogaGF2 ZSB0byB1bmxvY2ssIG5vdGhpbmcgcHJldmVudHMgc29tZW9uZSBjaGFuZ2luZyB0aGUgc3Rh dGUgYmVmb3JlCiAJICogdGhpcyBjYWxsIHRocmVhZCBlbnRlcnMgdGhlIGRyaXZlcidzIG9w IGFuZCB0aGUgZHJpdmVyIGhhcyB0aGUKLQkgKiBjaGFuZ2UgdG8gbG9jayB0aGUgc3RhdGUu CisJICogY2hhbmNlIHRvIGxvY2sgdGhlIHN0YXRlLgogCSAqLwogCXY0bDJfc3ViZGV2X2xv Y2tfc3RhdGUoc3RhdGUpOwogCkBAIC00NjIsNyArNDYyLDkgQEAgc3RhdGljIGxvbmcgc3Vi ZGV2X2RvX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB2b2lk ICphcmcpCiAKIAkJbWVtc2V0KGNhcC0+cmVzZXJ2ZWQsIDAsIHNpemVvZihjYXAtPnJlc2Vy dmVkKSk7CiAJCWNhcC0+dmVyc2lvbiA9IExJTlVYX1ZFUlNJT05fQ09ERTsKLQkJY2FwLT5j YXBhYmlsaXRpZXMgPSByb19zdWJkZXYgPyBWNEwyX1NVQkRFVl9DQVBfUk9fU1VCREVWIDog MDsKKwkJY2FwLT5jYXBhYmlsaXRpZXMgPQorCQkJKHJvX3N1YmRldiA/IFY0TDJfU1VCREVW X0NBUF9ST19TVUJERVYgOiAwKSB8CisJCQkoKHNkLT5mbGFncyAmIFY0TDJfU1VCREVWX0ZM X01VTFRJUExFWEVEKSA/IFY0TDJfU1VCREVWX0NBUF9NUExFWEVEIDogMCk7CiAKIAkJcmV0 dXJuIDA7CiAJfQpAQCAtMTE5Nyw3ICsxMTk5LDExIEBAIGludCB2NGwyX3N1YmRldl9saW5r X3ZhbGlkYXRlKHN0cnVjdCBtZWRpYV9saW5rICpsaW5rKQogCWlmIChyZXQpCiAJCWdvdG8g ZnJlZV9zb3VyY2U7CiAKLQkvKiBJdCBpcyBvayB0byBoYXZlIG1vcmUgc291cmNlIHN0cmVh bXMgdGhhbiBzaW5rIHN0cmVhbXMgKi8KKwkvKgorCSAqIEl0IGlzIG9rIHRvIGhhdmUgbW9y ZSBzb3VyY2Ugc3RyZWFtcyB0aGFuIHNpbmsgc3RyZWFtcyBhcyBleHRyYQorCSAqIHNvdXJj ZSBzdHJlYW1zIGNhbiBqdXN0IGJlIGlnbm9yZWQgKGkuZS4gdGhleSBnbyBub3doZXJlKSwg YnV0IGV4dHJhCisJICogc2luayBzdHJlYW1zIGlzIGFuIGVycm9yLgorCSAqLwogCWlmIChu dW1fc291cmNlX3N0cmVhbXMgPCBudW1fc2lua19zdHJlYW1zKSB7CiAJCWRldl9lcnIoZGV2 LAogCQkJIk5vdCBlbm91Z2ggc291cmNlIHN0cmVhbXM6ICVkIDwgJWRcbiIsCkBAIC0xMzU4 LDcgKzEzNjQsNyBAQCB2b2lkIF9fdjRsMl9zdWJkZXZfc3RhdGVfZnJlZShzdHJ1Y3QgdjRs Ml9zdWJkZXZfc3RhdGUgKnN0YXRlKQogCiAJbXV0ZXhfZGVzdHJveSgmc3RhdGUtPmxvY2sp OwogCi0Ja3ZmcmVlKHN0YXRlLT5yb3V0aW5nLnJvdXRlcyk7CisJa2ZyZWUoc3RhdGUtPnJv dXRpbmcucm91dGVzKTsKIAlrdmZyZWUoc3RhdGUtPnN0cmVhbV9jb25maWdzLmNvbmZpZ3Mp OwogCWt2ZnJlZShzdGF0ZS0+cGFkcyk7CiAJa2ZyZWUoc3RhdGUpOwpAQCAtMTQwMyw3ICsx NDA5LDcgQEAgaW50IF9fdjRsMl9zdWJkZXZfaW5pdF9maW5hbGl6ZShzdHJ1Y3QgdjRsMl9z dWJkZXYgKnNkLCBjb25zdCBjaGFyICpuYW1lLAogCWlmIChJU19FUlIoc3RhdGUpKQogCQly ZXR1cm4gUFRSX0VSUihzdGF0ZSk7CiAKLQlzZC0+c3RhdGUgPSBzdGF0ZTsKKwlzZC0+YWN0 aXZlX3N0YXRlID0gc3RhdGU7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE0MTEsMTYgKzE0MTcs MTYgQEAgRVhQT1JUX1NZTUJPTF9HUEwoX192NGwyX3N1YmRldl9pbml0X2ZpbmFsaXplKTsK IAogdm9pZCB2NGwyX3N1YmRldl9jbGVhbnVwKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QpCiB7 Ci0JX192NGwyX3N1YmRldl9zdGF0ZV9mcmVlKHNkLT5zdGF0ZSk7Ci0Jc2QtPnN0YXRlID0g TlVMTDsKKwlfX3Y0bDJfc3ViZGV2X3N0YXRlX2ZyZWUoc2QtPmFjdGl2ZV9zdGF0ZSk7CisJ c2QtPmFjdGl2ZV9zdGF0ZSA9IE5VTEw7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh2NGwyX3N1 YmRldl9jbGVhbnVwKTsKIAogc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICp2NGwyX3N1YmRl dl9sb2NrX2FjdGl2ZV9zdGF0ZShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkKQogewotCW11dGV4 X2xvY2soJnNkLT5zdGF0ZS0+bG9jayk7CisJbXV0ZXhfbG9jaygmc2QtPmFjdGl2ZV9zdGF0 ZS0+bG9jayk7CiAKLQlyZXR1cm4gc2QtPnN0YXRlOworCXJldHVybiBzZC0+YWN0aXZlX3N0 YXRlOwogfQogRVhQT1JUX1NZTUJPTF9HUEwodjRsMl9zdWJkZXZfbG9ja19hY3RpdmVfc3Rh dGUpOwogCkBAIC0xNDQ1LDE4ICsxNDUxLDE3IEBAIGludCB2NGwyX3N1YmRldl9zZXRfcm91 dGluZyhzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLAogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgm c3RhdGUtPmxvY2spOwogCi0Ja3ZmcmVlKGRzdC0+cm91dGVzKTsKKwlrZnJlZShkc3QtPnJv dXRlcyk7CiAJZHN0LT5yb3V0ZXMgPSBOVUxMOwogCWRzdC0+bnVtX3JvdXRlcyA9IDA7CiAK IAlpZiAoc3JjLT5udW1fcm91dGVzID4gMCkgewotCQlkc3QtPnJvdXRlcyA9IGt2bWFsbG9j X2FycmF5KHNyYy0+bnVtX3JvdXRlcywKLQkJCQkJICAgICBzaXplb2YoKnNyYy0+cm91dGVz KSwgR0ZQX0tFUk5FTCk7CisJCWRzdC0+cm91dGVzID0ga21lbWR1cChzcmMtPnJvdXRlcywK KwkJCQkgICAgICBzcmMtPm51bV9yb3V0ZXMgKiBzaXplb2YoKnNyYy0+cm91dGVzKSwKKwkJ CQkgICAgICBHRlBfS0VSTkVMKTsKIAkJaWYgKCFkc3QtPnJvdXRlcykKIAkJCXJldHVybiAt RU5PTUVNOwogCi0JCW1lbWNweShkc3QtPnJvdXRlcywgc3JjLT5yb3V0ZXMsCi0JCSAgICAg ICBzcmMtPm51bV9yb3V0ZXMgKiBzaXplb2YoKnNyYy0+cm91dGVzKSk7CiAJCWRzdC0+bnVt X3JvdXRlcyA9IHNyYy0+bnVtX3JvdXRlczsKIAl9CiAKQEAgLTE1MDcsOCArMTUxMiw5IEBA IHY0bDJfc3RhdGVfZ2V0X3N0cmVhbV9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRl ICpzdGF0ZSwgdW5zaWduZWQgaW50IHBhZCwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHY0bDJf c3RhdGVfZ2V0X3N0cmVhbV9mb3JtYXQpOwogCi1pbnQgdjRsMl9zdGF0ZV9maW5kX29wcG9z aXRlX2VuZChzdHJ1Y3QgdjRsMl9zdWJkZXZfa3JvdXRpbmcgKnJvdXRpbmcsIHUzMiBwYWQs Ci0JCQkJIHUzMiBzdHJlYW0sIHUzMiAqb3RoZXJfcGFkLCB1MzIgKm90aGVyX3N0cmVhbSkK K2ludCB2NGwyX3N1YmRldl9yb3V0aW5nX2ZpbmRfb3Bwb3NpdGVfZW5kKGNvbnN0IHN0cnVj dCB2NGwyX3N1YmRldl9rcm91dGluZyAqcm91dGluZywKKwkJCQkJICB1MzIgcGFkLCB1MzIg c3RyZWFtLCB1MzIgKm90aGVyX3BhZCwKKwkJCQkJICB1MzIgKm90aGVyX3N0cmVhbSkKIHsK IAl1bnNpZ25lZCBpbnQgaTsKIApAQCAtMTUxNywzNyArMTUyMyw0MSBAQCBpbnQgdjRsMl9z dGF0ZV9maW5kX29wcG9zaXRlX2VuZChzdHJ1Y3QgdjRsMl9zdWJkZXZfa3JvdXRpbmcgKnJv dXRpbmcsIHUzMiBwYWQsCiAKIAkJaWYgKHJvdXRlLT5zb3VyY2VfcGFkID09IHBhZCAmJgog CQkgICAgcm91dGUtPnNvdXJjZV9zdHJlYW0gPT0gc3RyZWFtKSB7Ci0JCQkqb3RoZXJfcGFk ID0gcm91dGUtPnNpbmtfcGFkOwotCQkJKm90aGVyX3N0cmVhbSA9IHJvdXRlLT5zaW5rX3N0 cmVhbTsKKwkJCWlmIChvdGhlcl9wYWQpCisJCQkJKm90aGVyX3BhZCA9IHJvdXRlLT5zaW5r X3BhZDsKKwkJCWlmIChvdGhlcl9zdHJlYW0pCisJCQkJKm90aGVyX3N0cmVhbSA9IHJvdXRl LT5zaW5rX3N0cmVhbTsKIAkJCXJldHVybiAwOwogCQl9CiAKIAkJaWYgKHJvdXRlLT5zaW5r X3BhZCA9PSBwYWQgJiYgcm91dGUtPnNpbmtfc3RyZWFtID09IHN0cmVhbSkgewotCQkJKm90 aGVyX3BhZCA9IHJvdXRlLT5zb3VyY2VfcGFkOwotCQkJKm90aGVyX3N0cmVhbSA9IHJvdXRl LT5zb3VyY2Vfc3RyZWFtOworCQkJaWYgKG90aGVyX3BhZCkKKwkJCQkqb3RoZXJfcGFkID0g cm91dGUtPnNvdXJjZV9wYWQ7CisJCQlpZiAob3RoZXJfc3RyZWFtKQorCQkJCSpvdGhlcl9z dHJlYW0gPSByb3V0ZS0+c291cmNlX3N0cmVhbTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQog CiAJcmV0dXJuIC1FSU5WQUw7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTCh2NGwyX3N0YXRlX2Zp bmRfb3Bwb3NpdGVfZW5kKTsKK0VYUE9SVF9TWU1CT0xfR1BMKHY0bDJfc3ViZGV2X3JvdXRp bmdfZmluZF9vcHBvc2l0ZV9lbmQpOwogCiBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICoK LXY0bDJfc3RhdGVfZ2V0X29wcG9zaXRlX3N0cmVhbV9mb3JtYXQoc3RydWN0IHY0bDJfc3Vi ZGV2X3N0YXRlICpzdGF0ZSwgdTMyIHBhZCwKLQkJCQkgICAgICB1MzIgc3RyZWFtKQordjRs Ml9zdWJkZXZfc3RhdGVfZ2V0X29wcG9zaXRlX3N0cmVhbV9mb3JtYXQoc3RydWN0IHY0bDJf c3ViZGV2X3N0YXRlICpzdGF0ZSwKKwkJCQkJICAgICB1MzIgcGFkLCB1MzIgc3RyZWFtKQog ewogCXUzMiBvdGhlcl9wYWQsIG90aGVyX3N0cmVhbTsKIAlpbnQgcmV0OwogCi0JcmV0ID0g djRsMl9zdGF0ZV9maW5kX29wcG9zaXRlX2VuZCgmc3RhdGUtPnJvdXRpbmcsIHBhZCwgc3Ry ZWFtLAotCQkJCQkgICAmb3RoZXJfcGFkLCAmb3RoZXJfc3RyZWFtKTsKKwlyZXQgPSB2NGwy X3N1YmRldl9yb3V0aW5nX2ZpbmRfb3Bwb3NpdGVfZW5kKCZzdGF0ZS0+cm91dGluZywgcGFk LCBzdHJlYW0sCisJCQkJCQkgICAgJm90aGVyX3BhZCwgJm90aGVyX3N0cmVhbSk7CiAJaWYg KHJldCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gdjRsMl9zdGF0ZV9nZXRfc3RyZWFt X2Zvcm1hdChzdGF0ZSwgb3RoZXJfcGFkLCBvdGhlcl9zdHJlYW0pOwogfQotRVhQT1JUX1NZ TUJPTF9HUEwodjRsMl9zdGF0ZV9nZXRfb3Bwb3NpdGVfc3RyZWFtX2Zvcm1hdCk7CitFWFBP UlRfU1lNQk9MX0dQTCh2NGwyX3N1YmRldl9zdGF0ZV9nZXRfb3Bwb3NpdGVfc3RyZWFtX2Zv cm1hdCk7CiAKIGludCB2NGwyX3N1YmRldl9nZXRfZm10KHN0cnVjdCB2NGwyX3N1YmRldiAq c2QsIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGUsCiAJCQlzdHJ1Y3QgdjRsMl9z dWJkZXZfZm9ybWF0ICpmb3JtYXQpCkBAIC0xNTcwLDcgKzE1ODAsNyBAQCBpbnQgdjRsMl9z dWJkZXZfZ2V0X2ZtdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCBzdHJ1Y3QgdjRsMl9zdWJk ZXZfc3RhdGUgKnN0YXRlLAogfQogRVhQT1JUX1NZTUJPTF9HUEwodjRsMl9zdWJkZXZfZ2V0 X2ZtdCk7CiAKLWludCB2NGwyX3JvdXRpbmdfc2ltcGxlX3ZlcmlmeShjb25zdCBzdHJ1Y3Qg djRsMl9zdWJkZXZfa3JvdXRpbmcgKnJvdXRpbmcpCitpbnQgdjRsMl9zdWJkZXZfcm91dGlu Z192YWxpZGF0ZV8xX3RvXzEoY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X2tyb3V0aW5nICpy b3V0aW5nKQogewogCXVuc2lnbmVkIGludCBpLCBqOwogCkBAIC0xNTkyLDQgKzE2MDIsMjQg QEAgaW50IHY0bDJfcm91dGluZ19zaW1wbGVfdmVyaWZ5KGNvbnN0IHN0cnVjdCB2NGwyX3N1 YmRldl9rcm91dGluZyAqcm91dGluZykKIAogCXJldHVybiAwOwogfQotRVhQT1JUX1NZTUJP TF9HUEwodjRsMl9yb3V0aW5nX3NpbXBsZV92ZXJpZnkpOworRVhQT1JUX1NZTUJPTF9HUEwo djRsMl9zdWJkZXZfcm91dGluZ192YWxpZGF0ZV8xX3RvXzEpOworCitzdHJ1Y3QgdjRsMl9z dWJkZXZfcm91dGUgKgorX192NGwyX3N1YmRldl9uZXh0X2FjdGl2ZV9yb3V0ZShjb25zdCBz dHJ1Y3QgdjRsMl9zdWJkZXZfa3JvdXRpbmcgKnJvdXRpbmcsCisJCQkJc3RydWN0IHY0bDJf c3ViZGV2X3JvdXRlICpyb3V0ZSkKK3sKKwlpZiAocm91dGUpCisJCSsrcm91dGU7CisJZWxz ZQorCQlyb3V0ZSA9ICZyb3V0aW5nLT5yb3V0ZXNbMF07CisKKwlmb3IgKDsgcm91dGUgPCBy b3V0aW5nLT5yb3V0ZXMgKyByb3V0aW5nLT5udW1fcm91dGVzOyArK3JvdXRlKSB7CisJCWlm ICghKHJvdXRlLT5mbGFncyAmIFY0TDJfU1VCREVWX1JPVVRFX0ZMX0FDVElWRSkpCisJCQlj b250aW51ZTsKKworCQlyZXR1cm4gcm91dGU7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CitF WFBPUlRfU1lNQk9MX0dQTChfX3Y0bDJfc3ViZGV2X25leHRfYWN0aXZlX3JvdXRlKTsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdjRsMi1zdWJkZXYuaCBiL2luY2x1ZGUvbWVkaWEv djRsMi1zdWJkZXYuaAppbmRleCA1ZTUwZjJkZWQ2NTMuLjk3NTQ5MTNiMzRmOCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9tZWRpYS92NGwyLXN1YmRldi5oCisrKyBiL2luY2x1ZGUvbWVkaWEv djRsMi1zdWJkZXYuaApAQCAtNjg3LDYgKzY4Nyw5IEBAIHN0cnVjdCB2NGwyX3N1YmRldl9p cl9vcHMgewogICogVGhpcyBzdHJ1Y3R1cmUgb25seSBuZWVkcyB0byBiZSBwYXNzZWQgdG8g dGhlIHBhZCBvcCBpZiB0aGUgJ3doaWNoJyBmaWVsZAogICogb2YgdGhlIG1haW4gYXJndW1l bnQgaXMgc2V0IHRvICVWNEwyX1NVQkRFVl9GT1JNQVRfVFJZLiBGb3IKICAqICVWNEwyX1NV QkRFVl9GT1JNQVRfQUNUSVZFIGl0IGlzIHNhZmUgdG8gcGFzcyAlTlVMTC4KKyAqCisgKiBO b3RlOiBUaGlzIHN0cnVjdCBpcyBhbHNvIHVzZWQgaW4gYWN0aXZlIHN0YXRlLCBhbmQgdGhl IHRyeV8gcHJlZml4IGlzCisgKiBoaXN0b3JpY2FsIGFuZCB0byBiZSByZW1vdmVkLgogICov CiBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyB7CiAJc3RydWN0IHY0bDJfbWJ1c19m cmFtZWZtdCB0cnlfZm10OwpAQCAtNzUxLDYgKzc1NCw3IEBAIHN0cnVjdCB2NGwyX3N1YmRl dl9rcm91dGluZyB7CiAgKiAlVjRMMl9TVUJERVZfRk9STUFUX0FDVElWRSBpdCBpcyBzYWZl IHRvIHBhc3MgJU5VTEwuCiAgKi8KIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSB7CisJLyog bG9jayBmb3IgdGhlIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSBmaWVsZHMgKi8KIAlzdHJ1 Y3QgbXV0ZXggbG9jazsKIAlzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyAqcGFkczsK IAlzdHJ1Y3QgdjRsMl9zdWJkZXZfa3JvdXRpbmcgcm91dGluZzsKQEAgLTEwMDgsOCArMTAx Miw4IEBAIHN0cnVjdCB2NGwyX3N1YmRldl9wbGF0Zm9ybV9kYXRhIHsKICAqIEBzdWJkZXZf bm90aWZpZXI6IEEgc3ViLWRldmljZSBub3RpZmllciBpbXBsaWNpdGx5IHJlZ2lzdGVyZWQg Zm9yIHRoZSBzdWItCiAgKgkJICAgICBkZXZpY2UgdXNpbmcgdjRsMl9hc3luY19yZWdpc3Rl cl9zdWJkZXZfc2Vuc29yKCkuCiAgKiBAcGRhdGE6IGNvbW1vbiBwYXJ0IG9mIHN1YmRldmlj ZSBwbGF0Zm9ybSBkYXRhCi0gKiBAc3RhdGU6IGFjdGl2ZSBzdGF0ZSBmb3IgdGhlIHN1YmRl diAoTlVMTCBmb3Igc3ViZGV2cyB0cmFja2luZyB0aGUgc3RhdGUKLSAqCSAgIGludGVybmFs bHkpCisgKiBAYWN0aXZlX3N0YXRlOiBhY3RpdmUgc3RhdGUgZm9yIHRoZSBzdWJkZXYgKE5V TEwgZm9yIHN1YmRldnMgdHJhY2tpbmcgdGhlCisgKiAgICAgICAgICAgICAgICBzdGF0ZSBp bnRlcm5hbGx5KQogICoKICAqIEVhY2ggaW5zdGFuY2Ugb2YgYSBzdWJkZXYgZHJpdmVyIHNo b3VsZCBjcmVhdGUgdGhpcyBzdHJ1Y3QsIGVpdGhlcgogICogc3RhbmQtYWxvbmUgb3IgZW1i ZWRkZWQgaW4gYSBsYXJnZXIgc3RydWN0LgpAQCAtMTA1Myw3ICsxMDU3LDcgQEAgc3RydWN0 IHY0bDJfc3ViZGV2IHsKIAkgKiBlYXNpbHkgY2F0Y2ggdXNlcyBvZiBzdGF0ZSBpbiB0aGUg Y2FzZXMgd2hlcmUgdGhlIGRyaXZlciBkb2Vzbid0CiAJICogc3VwcG9ydCBpdC4KIAkgKi8K LQlzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlOworCXN0cnVjdCB2NGwyX3N1YmRl dl9zdGF0ZSAqYWN0aXZlX3N0YXRlOwogfTsKIAogCkBAIC0xNDA0LDcgKzE0MDgsNyBAQCB2 b2lkIHY0bDJfc3ViZGV2X2NsZWFudXAoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCk7CiBzdGF0 aWMgaW5saW5lIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqCiB2NGwyX3N1YmRldl9nZXRf YWN0aXZlX3N0YXRlKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QpCiB7Ci0JcmV0dXJuIHNkLT5z dGF0ZTsKKwlyZXR1cm4gc2QtPmFjdGl2ZV9zdGF0ZTsKIH0KIAogLyoqCkBAIC0xNDM4LDgg KzE0NDIsNyBAQCB2b2lkIHY0bDJfc3ViZGV2X2xvY2tfc3RhdGUoc3RydWN0IHY0bDJfc3Vi ZGV2X3N0YXRlICpzdGF0ZSk7CiB2b2lkIHY0bDJfc3ViZGV2X3VubG9ja19zdGF0ZShzdHJ1 Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlKTsKIAogLyoqCi0gKiB2NGwyX3N1YmRldl92 YWxpZGF0ZV9hbmRfbG9ja19zdGF0ZSgpIC0gR2V0cyBsb2NrZWQgVFJZIG9yIEFDVElWRSBz dWJkZXYKLSAqCQkJCQkgICBzdGF0ZQorICogdjRsMl9zdWJkZXZfbG9ja19hbmRfcmV0dXJu X3N0YXRlKCkgLSBHZXRzIGxvY2tlZCBUUlkgb3IgQUNUSVZFIHN1YmRldiBzdGF0ZQogICog QHNkOiBzdWJkZXZpY2UKICAqIEBzdGF0ZTogc3ViZGV2aWNlIHN0YXRlIGFzIHBhc3NlZCB0 byB0aGUgc3ViZGV2IG9wCiAgKgpAQCAtMTQ0OCwyMiArMTQ1MSwyMSBAQCB2b2lkIHY0bDJf c3ViZGV2X3VubG9ja19zdGF0ZShzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlKTsK ICAqIHN0YXRlIHN0b3JlZCBwcml2YXRlbHkuCiAgKgogICogSG93ZXZlciwgbmV3ZXIgc3Rh dGUtYXdhcmUgc3ViZGV2IGRyaXZlcnMsIHdoaWNoIHN0b3JlIHRoZWlyIGFjdGl2ZSBzdGF0 ZSBpbgotICogYSBjb21tb24gcGxhY2UsIHN1YmRldi0+c3RhdGUsIGV4cGVjdCB0byBhbHdh eXMgZ2V0IGEgcHJvcGVyIHN0YXRlIGFzIGEKLSAqIHBhcmFtZXRlci4KKyAqIGEgY29tbW9u IHBsYWNlLCBzdWJkZXYtPmFjdGl2ZV9zdGF0ZSwgZXhwZWN0IHRvIGFsd2F5cyBnZXQgYSBw cm9wZXIgc3RhdGUgYXMKKyAqIGEgcGFyYW1ldGVyLgogICoKLSAqIFRoZXNlIHN0YXRlLWF3 YXJlIGRyaXZlcnMgY2FuIHVzZSB2NGwyX3N1YmRldl92YWxpZGF0ZV9hbmRfbG9ja19zdGF0 ZSgpCi0gKiBpbnN0ZWFkIG9mIHY0bDJfc3ViZGV2X2xvY2tfc3RhdGUoKS4gdjRsMl9zdWJk ZXZfdmFsaWRhdGVfYW5kX2xvY2tfc3RhdGUoKQotICogc29sdmVzIHRoZSBpc3N1ZSBieSB1 c2luZyBzdWJkZXYtPnN0YXRlIGluIGNhc2UgdGhlIHBhc3NlZCBzdGF0ZSBpcwotICogTlVM TC4KKyAqIFRoZXNlIHN0YXRlLWF3YXJlIGRyaXZlcnMgY2FuIHVzZSB2NGwyX3N1YmRldl9s b2NrX2FuZF9yZXR1cm5fc3RhdGUoKSBpbnN0ZWFkCisgKiBvZiB2NGwyX3N1YmRldl9sb2Nr X3N0YXRlKCkuIHY0bDJfc3ViZGV2X2xvY2tfYW5kX3JldHVybl9zdGF0ZSgpIHNvbHZlcyB0 aGUKKyAqIGlzc3VlIGJ5IHVzaW5nIHN1YmRldi0+c3RhdGUgaW4gY2FzZSB0aGUgcGFzc2Vk IHN0YXRlIGlzIE5VTEwuCiAgKgogICogVGhpcyBpcyBhIHRlbXBvcmFyeSBoZWxwZXIgZnVu Y3Rpb24sIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHdlIGNhbiBlbnN1cmUKICAqIHRo YXQgYWxsIGRyaXZlcnMgcGFzcyBwcm9wZXIgc3RhdGUgd2hlbiBjYWxsaW5nIG90aGVyIHN1 YmRldnMuCiAgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICoK LXY0bDJfc3ViZGV2X3ZhbGlkYXRlX2FuZF9sb2NrX3N0YXRlKHN0cnVjdCB2NGwyX3N1YmRl diAqc2QsCi0JCQkJICAgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGUpCit2NGwy X3N1YmRldl9sb2NrX2FuZF9yZXR1cm5fc3RhdGUoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwK KwkJCQkgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RhdGUgPSBz dGF0ZSA/IHN0YXRlIDogc2QtPnN0YXRlOworCXN0YXRlID0gc3RhdGUgPyBzdGF0ZSA6IHNk LT5hY3RpdmVfc3RhdGU7CiAKIAl2NGwyX3N1YmRldl9sb2NrX3N0YXRlKHN0YXRlKTsKIApA QCAtMTUxOCw3ICsxNTIwLDcgQEAgdjRsMl9zdGF0ZV9nZXRfc3RyZWFtX2Zvcm1hdChzdHJ1 Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLCB1bnNpZ25lZCBpbnQgcGFkLAogCQkJICAg ICB1MzIgc3RyZWFtKTsKIAogLyoqCi0gKiB2NGwyX3N0YXRlX2ZpbmRfb3Bwb3NpdGVfZW5k KCkgLSBGaW5kIHRoZSBvcHBvc2l0ZSBzdHJlYW0KKyAqIHY0bDJfc3ViZGV2X3JvdXRpbmdf ZmluZF9vcHBvc2l0ZV9lbmQoKSAtIEZpbmQgdGhlIG9wcG9zaXRlIHN0cmVhbQogICogQHJv dXRpbmc6IHJvdXRpbmcgdXNlZCB0byBmaW5kIHRoZSBvcHBvc2l0ZSBzaWRlCiAgKiBAcGFk OiBwYWQgaWQKICAqIEBzdHJlYW06IHN0cmVhbSBpZApAQCAtMTUyOCwxNCArMTUzMCwxOCBA QCB2NGwyX3N0YXRlX2dldF9zdHJlYW1fZm9ybWF0KHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0 ZSAqc3RhdGUsIHVuc2lnbmVkIGludCBwYWQsCiAgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhl IHJvdXRpbmcgdGFibGUgdG8gZmluZCB0aGUgcGFkICsgc3RyZWFtIHdoaWNoIGlzCiAgKiBv cHBvc2l0ZSB0aGUgZ2l2ZW4gcGFkICsgc3RyZWFtLgogICoKKyAqIEBvdGhlcl9wYWQgYW5k L29yIEBvdGhlcl9zdHJlYW0gY2FuIGJlIE5VTEwgaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBu ZWVkIHRoZQorICogdmFsdWUuCisgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIC1F SU5WQUwgaWYgbm8gbWF0Y2hpbmcgcm91dGUgaXMgZm91bmQuCiAgKi8KLWludCB2NGwyX3N0 YXRlX2ZpbmRfb3Bwb3NpdGVfZW5kKHN0cnVjdCB2NGwyX3N1YmRldl9rcm91dGluZyAqcm91 dGluZywgdTMyIHBhZCwKLQkJCQkgdTMyIHN0cmVhbSwgdTMyICpvdGhlcl9wYWQsIHUzMiAq b3RoZXJfc3RyZWFtKTsKK2ludCB2NGwyX3N1YmRldl9yb3V0aW5nX2ZpbmRfb3Bwb3NpdGVf ZW5kKGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9rcm91dGluZyAqcm91dGluZywKKwkJCQkJ ICB1MzIgcGFkLCB1MzIgc3RyZWFtLCB1MzIgKm90aGVyX3BhZCwKKwkJCQkJICB1MzIgKm90 aGVyX3N0cmVhbSk7CiAKIC8qKgotICogdjRsMl9zdGF0ZV9nZXRfb3Bwb3NpdGVfc3RyZWFt X2Zvcm1hdCgpIC0gR2V0IHBvaW50ZXIgdG8gb3Bwb3NpdGUgc3RyZWFtCi0gKgkJCQkJICAg ICBmb3JtYXQKKyAqIHY0bDJfc3ViZGV2X3N0YXRlX2dldF9vcHBvc2l0ZV9zdHJlYW1fZm9y bWF0KCkgLSBHZXQgcG9pbnRlciB0byBvcHBvc2l0ZQorICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSBmb3JtYXQKICAqIEBzdGF0 ZTogc3ViZGV2aWNlIHN0YXRlCiAgKiBAcGFkOiBwYWQgaWQKICAqIEBzdHJlYW06IHN0cmVh bSBpZApAQCAtMTU0Niw4ICsxNTUyLDkgQEAgaW50IHY0bDJfc3RhdGVfZmluZF9vcHBvc2l0 ZV9lbmQoc3RydWN0IHY0bDJfc3ViZGV2X2tyb3V0aW5nICpyb3V0aW5nLCB1MzIgcGFkLAog ICogSWYgdGhlIHN0YXRlIGRvZXMgbm90IGNvbnRhaW4gdGhlIGdpdmVuIHBhZCArIHN0cmVh bSwgTlVMTCBpcyByZXR1cm5lZC4KICAqLwogc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAq Ci12NGwyX3N0YXRlX2dldF9vcHBvc2l0ZV9zdHJlYW1fZm9ybWF0KHN0cnVjdCB2NGwyX3N1 YmRldl9zdGF0ZSAqc3RhdGUsIHUzMiBwYWQsCi0JCQkJICAgICAgdTMyIHN0cmVhbSk7Cit2 NGwyX3N1YmRldl9zdGF0ZV9nZXRfb3Bwb3NpdGVfc3RyZWFtX2Zvcm1hdChzdHJ1Y3QgdjRs Ml9zdWJkZXZfc3RhdGUgKnN0YXRlLAorCQkJCQkgICAgIHUzMiBwYWQsIHUzMiBzdHJlYW0p OworCiAvKioKICAqIHY0bDJfc3ViZGV2X2dldF9mbXQoKSAtIEZpbGwgZm9ybWF0IGJhc2Vk IG9uIHN0YXRlCiAgKiBAc2Q6IHN1YmRldmljZQpAQCAtMTU2Niw4ICsxNTczLDggQEAgaW50 IHY0bDJfc3ViZGV2X2dldF9mbXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwgc3RydWN0IHY0 bDJfc3ViZGV2X3N0YXRlICpzdGF0ZSwKIAkJCXN0cnVjdCB2NGwyX3N1YmRldl9mb3JtYXQg KmZvcm1hdCk7CiAKIC8qKgotICogdjRsMl9yb3V0aW5nX3NpbXBsZV92ZXJpZnkoKSAtIFZl cmlmeSB0aGF0IGFsbCBzdHJlYW1zIGFyZSBub24tb3ZlcmxhcHBpbmcKLSAqCQkJCSAgMS10 by0xIHN0cmVhbXMKKyAqIHY0bDJfc3ViZGV2X3JvdXRpbmdfdmFsaWRhdGVfMV90b18xKCkg LSBWZXJpZnkgdGhhdCBhbGwgc3RyZWFtcyBhcmUKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBub24tb3ZlcmxhcHBpbmcgMS10by0xIHN0cmVhbXMKICAq IEByb3V0aW5nOiByb3V0aW5nIHRvIHZlcmlmeQogICoKICAqIFRoaXMgdmVyaWZpZXMgdGhh dCB0aGUgZ2l2ZW4gcm91dGluZyBjb250YWlucyBvbmx5IG5vbi1vdmVybGFwcGluZyAxLXRv LTEKQEAgLTE1NzcsNiArMTU4NCwxOSBAQCBpbnQgdjRsMl9zdWJkZXZfZ2V0X2ZtdChzdHJ1 Y3QgdjRsMl9zdWJkZXYgKnNkLCBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlLAog ICoKICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBlcnJvciB2YWx1ZSBvdGhlcndpc2UuCiAg Ki8KLWludCB2NGwyX3JvdXRpbmdfc2ltcGxlX3ZlcmlmeShjb25zdCBzdHJ1Y3QgdjRsMl9z dWJkZXZfa3JvdXRpbmcgKnJvdXRpbmcpOworaW50IHY0bDJfc3ViZGV2X3JvdXRpbmdfdmFs aWRhdGVfMV90b18xKGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9rcm91dGluZyAqcm91dGlu Zyk7CisKK3N0cnVjdCB2NGwyX3N1YmRldl9yb3V0ZSAqCitfX3Y0bDJfc3ViZGV2X25leHRf YWN0aXZlX3JvdXRlKGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9rcm91dGluZyAqcm91dGlu ZywKKwkJCQlzdHJ1Y3QgdjRsMl9zdWJkZXZfcm91dGUgKnJvdXRlKTsKKworLyoqCisgKiBm b3JfZWFjaF9hY3RpdmVfcm91dGUgLSBpdGVyYXRlIG9uIGFsbCBhY3RpdmUgcm91dGVzIG9m IGEgcm91dGluZyB0YWJsZQorICogQHJvdXRpbmc6IFRoZSByb3V0aW5nIHRhYmxlCisgKiBA cm91dGU6IFRoZSByb3V0ZSBpdGVyYXRvcgorICovCisjZGVmaW5lIGZvcl9lYWNoX2FjdGl2 ZV9yb3V0ZShyb3V0aW5nLCByb3V0ZSkgXAorCWZvciAoKHJvdXRlKSA9IE5VTEw7ICAgICAg ICAgICAgICAgICAgXAorCSAgICAgKChyb3V0ZSkgPSBfX3Y0bDJfc3ViZGV2X25leHRfYWN0 aXZlX3JvdXRlKChyb3V0aW5nKSwgKHJvdXRlKSkpOykKIAogI2VuZGlmCmRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvdjRsMi1zdWJkZXYuaCBiL2luY2x1ZGUvdWFwaS9saW51 eC92NGwyLXN1YmRldi5oCmluZGV4IGY2MWFjZTJiNTc1NS4uNDgwODkxZGJhMTkzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdjRsMi1zdWJkZXYuaAorKysgYi9pbmNsdWRl L3VhcGkvbGludXgvdjRsMi1zdWJkZXYuaApAQCAtMjAyLDE3ICsyMDIsMjAgQEAgc3RydWN0 IHY0bDJfc3ViZGV2X2NhcGFiaWxpdHkgewogLyogVGhlIHY0bDIgc3ViLWRldmljZSB2aWRl byBkZXZpY2Ugbm9kZSBpcyByZWdpc3RlcmVkIGluIHJlYWQtb25seSBtb2RlLiAqLwogI2Rl ZmluZSBWNEwyX1NVQkRFVl9DQVBfUk9fU1VCREVWCQkweDAwMDAwMDAxCiAKKy8qIFRoZSB2 NGwyIHN1Yi1kZXZpY2Ugc3VwcG9ydHMgbXVsdGlwbGV4ZWQgc3RyZWFtcy4gKi8KKyNkZWZp bmUgVjRMMl9TVUJERVZfQ0FQX01QTEVYRUQJCQkweDAwMDAwMDAyCisKIC8qCiAgKiBJcyB0 aGUgcm91dGUgYWN0aXZlPyBBbiBhY3RpdmUgcm91dGUgd2lsbCBzdGFydCB3aGVuIHN0cmVh bWluZyBpcyBlbmFibGVkCiAgKiBvbiBhIHZpZGVvIG5vZGUuCiAgKi8KLSNkZWZpbmUgVjRM Ml9TVUJERVZfUk9VVEVfRkxfQUNUSVZFCQkoMSA8PCAwKQorI2RlZmluZSBWNEwyX1NVQkRF Vl9ST1VURV9GTF9BQ1RJVkUJCV9CSVRVTCgwKQogCiAvKgogICogSXMgdGhlIHJvdXRlIGlt bXV0YWJsZSwgaS5lLiBjYW4gaXQgYmUgYWN0aXZhdGVkIGFuZCBpbmFjdGl2YXRlZD8KICAq IFNldCBieSB0aGUgZHJpdmVyLgogICovCi0jZGVmaW5lIFY0TDJfU1VCREVWX1JPVVRFX0ZM X0lNTVVUQUJMRQkJKDEgPDwgMSkKKyNkZWZpbmUgVjRMMl9TVUJERVZfUk9VVEVfRkxfSU1N VVRBQkxFCQlfQklUVUwoMSkKIAogLyoKICAqIElzIHRoZSByb3V0ZSBhIHNvdXJjZSBlbmRw b2ludD8gQSBzb3VyY2UgZW5kcG9pbnQgcm91dGUgcmVmZXJzIHRvIGEgc3RyZWFtCkBAIC0y MjEsNyArMjI0LDcgQEAgc3RydWN0IHY0bDJfc3ViZGV2X2NhcGFiaWxpdHkgewogICogZmll bGRzIGFyZSB1bnVzZWQuCiAgKiBTZXQgYnkgdGhlIGRyaXZlci4KICAqLwotI2RlZmluZSBW NEwyX1NVQkRFVl9ST1VURV9GTF9TT1VSQ0UJCSgxIDw8IDIpCisjZGVmaW5lIFY0TDJfU1VC REVWX1JPVVRFX0ZMX1NPVVJDRQkJX0JJVFVMKDIpCiAKIC8qKgogICogc3RydWN0IHY0bDJf c3ViZGV2X3JvdXRlIC0gQSByb3V0ZSBpbnNpZGUgYSBzdWJkZXYKQEAgLTI0NiwxNSArMjQ5 LDE1IEBAIHN0cnVjdCB2NGwyX3N1YmRldl9yb3V0ZSB7CiAgKiBzdHJ1Y3QgdjRsMl9zdWJk ZXZfcm91dGluZyAtIFN1YmRldiByb3V0aW5nIGluZm9ybWF0aW9uCiAgKgogICogQHdoaWNo OiBjb25maWd1cmF0aW9uIHR5cGUgKGZyb20gZW51bSB2NGwyX3N1YmRldl9mb3JtYXRfd2hl bmNlKQotICogQHJvdXRlczogcG9pbnRlciB0byB0aGUgcm91dGVzIGFycmF5CiAgKiBAbnVt X3JvdXRlczogdGhlIHRvdGFsIG51bWJlciBvZiByb3V0ZXMgaW4gdGhlIHJvdXRlcyBhcnJh eQorICogQHJvdXRlczogcG9pbnRlciB0byB0aGUgcm91dGVzIGFycmF5CiAgKiBAcmVzZXJ2 ZWQ6IGRyaXZlcnMgYW5kIGFwcGxpY2F0aW9ucyBtdXN0IHplcm8gdGhpcyBhcnJheQogICov CiBzdHJ1Y3QgdjRsMl9zdWJkZXZfcm91dGluZyB7CiAJX191MzIgd2hpY2g7Ci0JX191NjQg cm91dGVzOwogCV9fdTMyIG51bV9yb3V0ZXM7Ci0JX191MzIgcmVzZXJ2ZWRbNV07CisJX191 NjQgcm91dGVzOworCV9fdTMyIHJlc2VydmVkWzZdOwogfTsKIAogLyogQmFja3dhcmRzIGNv bXBhdGliaWxpdHkgZGVmaW5lIC0tLSB0byBiZSByZW1vdmVkICovCg== --------------FEF71ABCF86C775ACEB8479B--