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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 C16F8C4332F for ; Wed, 19 Oct 2022 09:54:45 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 27A3010E1C0; Wed, 19 Oct 2022 09:54:44 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4BC5010E1C0 for ; Wed, 19 Oct 2022 09:54:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666173278; x=1697709278; h=message-id:date:mime-version:subject:to:references:from: in-reply-to:content-transfer-encoding; bh=jHSEvmk9kG2+RMWqHxRh9UaZQTc3xQbs0UxNOXqsEgE=; b=dTQGTAXbNV0J6BlCKGJL1sICa4XHCi+o/DbIftDDfN3xILSX+lki2GDQ +J5L90/oIPawEQ5/TfpQ2+SrXUMiKUQD64Ecyws+sExLwQt1IluMh/1EQ oJAuhPQBz3Ws+Ohx/YoDUFhBjIXY0RfL0dXPywM05o2XeFgwtAsoPdre0 MCN6lNcRLfDV8gq5nt6nWaBVe+BoCjoWmRHvh7/R4zcbzZ1mL76/h5sD7 s0QM24JQylsh3vhCR3eEYuKqoF1s0PaOvxq70oRhef7F3Ikgt3abOr/BW WkQVM6Y6T0d4oc6A6qY8sWBvUDMKv1uV2QioU913OISOKDgOHHL5SbfGV A==; X-IronPort-AV: E=McAfee;i="6500,9779,10504"; a="293760377" X-IronPort-AV: E=Sophos;i="5.95,195,1661842800"; d="scan'208";a="293760377" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2022 02:54:37 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10504"; a="629178804" X-IronPort-AV: E=Sophos;i="5.95,195,1661842800"; d="scan'208";a="629178804" Received: from mjmcener-mobl1.amr.corp.intel.com (HELO [10.213.233.40]) ([10.213.233.40]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2022 02:54:36 -0700 Message-ID: <5589d713-c371-1121-ef74-58be63057ac4@linux.intel.com> Date: Wed, 19 Oct 2022 10:54:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.2 Content-Language: en-US To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org References: <20220928004145.745803-1-daniele.ceraolospurio@intel.com> <20220928004145.745803-12-daniele.ceraolospurio@intel.com> From: Tvrtko Ursulin Organization: Intel Corporation UK Plc In-Reply-To: <20220928004145.745803-12-daniele.ceraolospurio@intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Subject: Re: [Intel-gfx] [CI 11/15] drm/i915/huc: track delayed HuC load with a fence X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" DQpIaSwNCg0KRG9uJ3Qga25vdyBpZiB0aGlzIGlzIHJlYWwgb3Igbm90IHlldCwgaGl0IGl0 IHdoaWxlIHJ1bm5pbmcgc2VsZnRlc3RzIGEgYml0LiBTb21ldGhpbmcgdG8ga2VlcCBhbiBl eWUgb24uDQoNClsgMjkyOC4zNzA1NzddIE9ERUJVRzogaW5pdCBkZXN0cm95ZWQgKGFjdGl2 ZSBzdGF0ZSAwKSBvYmplY3QgdHlwZTogaTkxNV9zd19mZW5jZSBoaW50OiBzd19mZW5jZV9k dW1teV9ub3RpZnkrMHgwLzB4MTAgW2k5MTVdDQpbIDI5MjguMzcwOTAzXSBXQVJOSU5HOiBD UFU6IDIgUElEOiAxMTEzIGF0IGxpYi9kZWJ1Z29iamVjdHMuYzo1MDIgZGVidWdfcHJpbnRf b2JqZWN0KzB4NmIvMHg5MA0KWyAyOTI4LjM3MDk4NF0gTW9kdWxlcyBsaW5rZWQgaW46IGk5 MTUoKykgZHJtX2Rpc3BsYXlfaGVscGVyIGRybV9rbXNfaGVscGVyIG5ldGNvbnNvbGUgY21h YyBhbGdpZl9oYXNoIGFsZ2lmX3NrY2lwaGVyIGFmX2FsZyBibmVwIG5sc19pc284ODU5XzEg c25kX2hkYV9jb2RlY19oZG1pIHNuZF9oZGFfY29kZWNfcmVhbHRlayBzbmRfaGRhX2NvZGVj X2dlbmVyaWMgbGVkdHJpZ19hdWRpbyBzbmRfaW50ZWxfZHNwY2ZnIHNuZF9oZGFfY29kZWMg c25kX2h3ZGVwIHNuZF9oZGFfY29yZSBzbmRfcGNtIGludGVsX3RjY19jb29saW5nIHg4Nl9w a2dfdGVtcF90aGVybWFsIGludGVsX3Bvd2VyY2xhbXAgc25kX3NlcV9taWRpIHNuZF9zZXFf bWlkaV9ldmVudCBjb3JldGVtcCBzbmRfcmF3bWlkaSBidHVzYiBidHJ0bCBidGJjbSBrdm1f aW50ZWwgYnRtdGsgYnRpbnRlbCBhdGgxMGtfcGNpIHNuZF9zZXEga3ZtIGF0aDEwa19jb3Jl IGJsdWV0b290aCBzbmRfdGltZXIgcmFwbCBpbnRlbF9jc3RhdGUgc25kX3NlcV9kZXZpY2Ug aW5wdXRfbGVkcyBtYWM4MDIxMSBlY2RoX2dlbmVyaWMgbGliYXJjNCBhdGggc25kIGVjYyBz ZXJpb19yYXcgaW50ZWxfd21pX3RodW5kZXJib2x0IGF0MjQgc291bmRjb3JlIGNmZzgwMjEx IG1laV9tZSBpbnRlbF94aGNpX3VzYl9yb2xlX3N3aXRjaCBtZWkgaWRlYXBhZF9sYXB0b3Ag aW50ZWxfcGNoX3RoZXJtYWwgcGxhdGZvcm1fcHJvZmlsZSBzcGFyc2Vfa2V5bWFwIGFjcGlf cGFkIHNjaF9mcV9jb2RlbCBtc3IgZWZpX3BzdG9yZSBpcF90YWJsZXMgeF90YWJsZXMgYXV0 b2ZzNCBjcmN0MTBkaWZfcGNsbXVsIGNyYzMyX3BjbG11bCBnaGFzaF9jbG11bG5pX2ludGVs IHNoYTUxMl9zc3NlMyBhZXNuaV9pbnRlbCBwcmltZV9udW1iZXJzIGNyeXB0b19zaW1kIGF0 a2JkIGRybV9idWRkeSBjcnlwdGQgdml2YWxkaV9mbWFwIHI4MTY5IHR0bSBpMmNfaTgwMSBp MmNfc21idXMgY2VjIHJlYWx0ZWsgeGhjaV9wY2kgc3lzY29weWFyZWEgYWhjaQ0KWyAyOTI4 LjM3MTE0NV0gIHhoY2lfcGNpX3JlbmVzYXMgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGxpYmFo Y2kgZmJfc3lzX2ZvcHMgdmlkZW8gd21pIFtsYXN0IHVubG9hZGVkOiBkcm1fa21zX2hlbHBl cl0NClsgMjkyOC4zNzE0ODldIENQVTogMiBQSUQ6IDExMTMgQ29tbTogbW9kcHJvYmUgVGFp bnRlZDogRyAgICAgVSAgVyAgICAgICAgICA2LjEuMC1yYzEgIzE5Ng0KWyAyOTI4LjM3MTU1 MF0gSGFyZHdhcmUgbmFtZTogTEVOT1ZPIDgwTVgvTGVub3ZvIEUzMS04MCwgQklPUyBEQ0NO MzRXVyhWMi4wMykgMTIvMDEvMjAxNQ0KWyAyOTI4LjM3MTYxNV0gUklQOiAwMDEwOmRlYnVn X3ByaW50X29iamVjdCsweDZiLzB4OTANClsgMjkyOC4zNzE2NjRdIENvZGU6IDQ5IDg5IGMx IDhiIDQzIDEwIDgzIGMyIDAxIDQ4IGM3IGM3IGU4IGJlIGQ2IGJiIDhiIDRiIDE0IDg5IDE1 IGNhIGJlIGI0IDAyIDRjIDhiIDQ1IDAwIDQ4IDhiIDE0IGM1IDQwIDU2IGE4IGJiIGU4IGVj IDViIDYwIDAwIDwwZj4gMGIgODMgMDUgMjggNWEgM2UgMDEgMDEgNDggODMgYzQgMDggNWIg NWQgYzMgODMgMDUgMWEgNWEgM2UgMDENClsgMjkyOC4zNzE3ODJdIFJTUDogMDAxODpmZmZm OWVkODQxNjA3YTE4IEVGTEFHUzogMDAwMTAyODYNClsgMjkyOC4zNzE4NDFdIFJBWDogMDAw MDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY5MjA4MTE2YTFkNDggUkNYOiAwMDAwMDAwMDAwMDAw MDAwDQpbIDI5MjguMzcxOTA5XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiBmZmZmZmZm ZmJiZDI3N2QyIFJESTogMDAwMDAwMDBmZmZmZmZmZg0KWyAyOTI4LjM3MjAyNF0gUkJQOiBm ZmZmZmZmZmMxNzZhNTQwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IGZmZmZmZmZmYmMw N2ExZTANClsgMjkyOC4zNzIxMjhdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IDAwMDAw MDAwMDAwMDAwMDEgUjEyOiBmZmZmOTIwODEyMmRhODMwDQpbIDI5MjguMzcyMTkyXSBSMTM6 IGZmZmY5MjA4MDA4OWIwMDAgUjE0OiBmZmZmOTIwODEyMmRhNzcwIFIxNTogMDAwMDAwMDAw MDAwMDAwMA0KWyAyOTI4LjM3MjI1OV0gRlM6ICAwMDAwN2Y1M2U3NjE3YzQwKDAwMDApIEdT OmZmZmY5MjA4NmU1MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMA0KWyAyOTI4 LjM3MjM2NV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1 MDAzMw0KWyAyOTI4LjM3MjQyNV0gQ1IyOiAwMDAwNTVjZDI4YjMzMDcwIENSMzogMDAwMDAw MDExMGRiZDAwNiBDUjQ6IDAwMDAwMDAwMDAzNzA2ZTANClsgMjkyOC4zNzI1MjZdIENhbGwg VHJhY2U6DQpbIDI5MjguMzcyNTY4XSAgPFRBU0s+DQpbIDI5MjguMzcyNjE0XSAgPyBpbnRl bF9ndWNfaGFuZ19jaGVjaysweGIwLzB4YjAgW2k5MTVdDQpbIDI5MjguMzczMDAxXSAgX19p OTE1X3N3X2ZlbmNlX2luaXQrMHgyYi8weDUwIFtpOTE1XQ0KWyAyOTI4LjM3MzM3NF0gIGlu dGVsX2h1Y19pbml0X2Vhcmx5KzB4NzUvMHhiMCBbaTkxNV0NClsgMjkyOC4zNzM4NjhdICBp bnRlbF91Y19pbml0X2Vhcmx5KzB4NGUvMHgyMTAgW2k5MTVdDQpbIDI5MjguMzc0MjQxXSAg aW50ZWxfZ3RfY29tbW9uX2luaXRfZWFybHkrMHgxNmYvMHgxODAgW2k5MTVdDQpbIDI5Mjgu Mzc0NzE4XSAgaW50ZWxfcm9vdF9ndF9pbml0X2Vhcmx5KzB4NDkvMHg2MCBbaTkxNV0NClsg MjkyOC4zNzUwNzRdICBpOTE1X2RyaXZlcl9wcm9iZSsweDkxNy8weGVkMCBbaTkxNV0NClsg MjkyOC4zNzUzOThdICA/IGRybV9wcml2YWN5X3NjcmVlbl9nZXQrMHgxNjMvMHgxYTANClsg MjkyOC4zNzU1MTJdICBpOTE1X3BjaV9wcm9iZSsweGIwLzB4MjMwIFtpOTE1XQ0KWyAyOTI4 LjM3NTgyM10gID8gX3Jhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKzB4MzgvMHg1MA0KWyAy OTI4LjM3NTg5Nl0gIHBjaV9kZXZpY2VfcHJvYmUrMHhhNC8weDE0MA0KWyAyOTI4LjM3NTkz MF0gIHJlYWxseV9wcm9iZSsweGQ4LzB4MzgwDQpbIDI5MjguMzc1OTkyXSAgPyBwbV9ydW50 aW1lX2JhcnJpZXIrMHg1MC8weDgwDQpbIDI5MjguMzc2MDU2XSAgX19kcml2ZXJfcHJvYmVf ZGV2aWNlKzB4NzgvMHgxNzANClsgMjkyOC4zNzYxMDNdICBkcml2ZXJfcHJvYmVfZGV2aWNl KzB4MWUvMHg4MA0KWyAyOTI4LjM3NjEzNF0gIF9fZHJpdmVyX2F0dGFjaCsweDk4LzB4MWUw DQpbIDI5MjguMzc2MTYxXSAgPyBfX2RldmljZV9hdHRhY2hfZHJpdmVyKzB4ZjAvMHhmMA0K WyAyOTI4LjM3NjIwNl0gID8gX19kZXZpY2VfYXR0YWNoX2RyaXZlcisweGYwLzB4ZjANClsg MjkyOC4zNzYyMzddICBidXNfZm9yX2VhY2hfZGV2KzB4NzgvMHhjMA0KWyAyOTI4LjM3NjI4 NV0gIGJ1c19hZGRfZHJpdmVyKzB4MWFkLzB4MjAwDQpbIDI5MjguMzc2MzE1XSAgZHJpdmVy X3JlZ2lzdGVyKzB4OGYvMHhlMA0KWyAyOTI4LjM3NjM0NF0gIGk5MTVfaW5pdCsweDFhLzB4 NzMgW2k5MTVdDQpbIDI5MjguMzc2NzE1XSAgPyAweGZmZmZmZmZmYzA0ZDAwMDANClsgMjky OC4zNzY3NjZdICBkb19vbmVfaW5pdGNhbGwrMHg1OC8weDMwMA0KWyAyOTI4LjM3NjgyNF0g ID8gcmN1X3JlYWRfbG9ja19zY2hlZF9oZWxkKzB4M2YvMHg3MA0KWyAyOTI4LjM3Njg4NF0g ID8gdHJhY2Vfa21hbGxvYysweDJjLzB4ZDANClsgMjkyOC4zNzY5NTFdICA/IGttYWxsb2Nf dHJhY2UrMHg0NC8weDUwDQpbIDI5MjguMzc3MDA5XSAgZG9faW5pdF9tb2R1bGUrMHg0Yy8w eDFlMA0KWyAyOTI4LjM3NzA2OV0gIF9fZG9fc3lzX2Zpbml0X21vZHVsZSsweGI0LzB4MTIw DQpbIDI5MjguMzc3MTU2XSAgZG9fc3lzY2FsbF82NCsweDU2LzB4ODANClsgMjkyOC4zNzcy MTBdICA/IGRvX3N5c2NhbGxfNjQrMHg2My8weDgwDQpbIDI5MjguMzc3MjY0XSAgPyBsb2Nr ZGVwX2hhcmRpcnFzX29uKzB4NzkvMHgxMDANClsgMjkyOC4zNzczMjFdICA/IGRvX3N5c2Nh bGxfNjQrMHg2My8weDgwDQpbIDI5MjguMzc3Mzg5XSAgPyBsb2NrZGVwX2hhcmRpcnFzX29u KzB4NzkvMHgxMDANClsgMjkyOC4zNzc0NjRdICA/IGRvX3N5c2NhbGxfNjQrMHg2My8weDgw DQpbIDI5MjguMzc3NTE2XSAgPyBkb19zeXNjYWxsXzY0KzB4NjMvMHg4MA0KWyAyOTI4LjM3 NzU2Nl0gID8gbG9ja2RlcF9oYXJkaXJxc19vbisweDc5LzB4MTAwDQpbIDI5MjguMzc3NjI0 XSAgPyBkb19zeXNjYWxsXzY0KzB4NjMvMHg4MA0KWyAyOTI4LjM3NzY3M10gID8gbG9ja2Rl cF9oYXJkaXJxc19vbisweDc5LzB4MTAwDQpbIDI5MjguMzc3NzI4XSAgPyBkb19zeXNjYWxs XzY0KzB4NjMvMHg4MA0KWyAyOTI4LjM3Nzc3OV0gID8gZG9fc3lzY2FsbF82NCsweDYzLzB4 ODANClsgMjkyOC4zNzc4MzBdICA/IGRvX3N5c2NhbGxfNjQrMHg2My8weDgwDQpbIDI5Mjgu Mzc3ODgyXSAgPyBsb2NrZGVwX2hhcmRpcnFzX29uKzB4NzkvMHgxMDANClsgMjkyOC4zNzc5 MzldICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0Ni8weGIwDQpbIDI5Mjgu Mzc4MDAyXSBSSVA6IDAwMzM6MHg3ZjUzZTZkMWVhM2QNClsgMjkyOC4zNzgwNTRdIENvZGU6 IDViIDQxIDVjIGMzIDY2IDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIGYzIDBmIDFlIGZhIDQ4 IDg5IGY4IDQ4IDg5IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRj IDhiIDRjIDI0IDA4IDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIg MGQgYzMgYTMgMGYgMDAgZjcgZDggNjQgODkgMDEgNDgNClsgMjkyOC4zNzgxODRdIFJTUDog MDAyYjowMDAwN2ZmZWU3ZDliYzA4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAw MDAwMDAwMDAxMzkNClsgMjkyOC4zNzgyNjBdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6 IDAwMDA1NWNkMjhiMmNkZjAgUkNYOiAwMDAwN2Y1M2U2ZDFlYTNkDQpbIDI5MjguMzc4MzI3 XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwNTVjZDI4YjMzOWYwIFJESTogMDAw MDAwMDAwMDAwMDAwNQ0KWyAyOTI4LjM3ODM5Ml0gUkJQOiAwMDAwMDAwMDAwMDQwMDAwIFIw ODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDINClsgMjkyOC4zNzg0 NzJdIFIxMDogMDAwMDAwMDAwMDAwMDAwNSBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAw MDAwNTVjZDI4YjMzOWYwDQpbIDI5MjguMzc4NTM5XSBSMTM6IDAwMDA1NWNkMjhiMmNmMjAg UjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDU1Y2QyOGIzM2ViMA0KWyAyOTI4LjM3 ODYzNF0gIDwvVEFTSz4NClsgMjkyOC4zNzg2NzVdIGlycSBldmVudCBzdGFtcDogMTMzMTQz DQpbIDI5MjguMzc4NzM4XSBoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICgxMzMxNTMpOiBb PGZmZmZmZmZmYmFhZmVmOTI+XSBfX3VwX2NvbnNvbGVfc2VtKzB4NTIvMHg2MA0KWyAyOTI4 LjM3ODgzM10gaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMTMzMTYyKTogWzxmZmZmZmZm ZmJhYWZlZjc3Pl0gX191cF9jb25zb2xlX3NlbSsweDM3LzB4NjANClsgMjkyOC4zNzg5NTld IHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDEzMjgxNCk6IFs8ZmZmZmZmZmZiYWE4NmJj MT5dIF9faXJxX2V4aXRfcmN1KzB4YzEvMHgxMTANClsgMjkyOC4zNzkwMzddIHNvZnRpcnFz IGxhc3QgZGlzYWJsZWQgYXQgKDEzMjYwMSk6IFs8ZmZmZmZmZmZiYWE4NmJjMT5dIF9faXJx X2V4aXRfcmN1KzB4YzEvMHgxMTANClsgMjkyOC4zNzkxMjZdIC0tLVsgZW5kIHRyYWNlIDAw MDAwMDAwMDAwMDAwMDAgXS0tLQ0KDQpSZWdhcmRzLA0KDQpUdnJ0a28NCg0KT24gMjgvMDkv MjAyMiAwMTo0MSwgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyB3cm90ZToNCj4gR2l2ZW4gdGhh dCBIdUMgbG9hZCBpcyBkZWxheWVkIG9uIERHMiwgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQg Zm9yIGEgZmVuY2UNCj4gdGhhdCBjYW4gYmUgdXNlZCB0byB3YWl0IGZvciBsb2FkIGNvbXBs ZXRpb24uIE5vIHdhaXRlcnMgYXJlIGFkZGVkIGluIHRoaXMNCj4gcGF0Y2ggKHRoZXkncmUg Y29taW5nIHVwIGluIHRoZSBuZXh0IG9uZSksIHRvIGtlZXAgdGhlIGZvY3VzIG9mIHRoZQ0K PiBwYXRjaCBvbiB0aGUgdHJhY2tpbmcgbG9naWMuDQo+IA0KPiBUaGUgZnVsbCBIdUMgbG9h ZGluZyBmbG93IG9uIGJvb3QgREcyIGlzIGFzIGZvbGxvd3M6DQo+IDEpIGk5MTUgZXhwb3J0 cyB0aGUgR1NDIGFzIGFuIGF1eCBkZXZpY2U7DQo+IDIpIHRoZSBtZWktZ3NjIGRyaXZlciBp cyBsb2FkZWQgb24gdGhlIGF1eCBkZXZpY2U7DQo+IDMpIHRoZSBtZWktcHhwIGNvbXBvbmVu dCBpcyBsb2FkZWQ7DQo+IDQpIG1laS1weHAgY2FsbHMgYmFjayBpbnRvIGk5MTUgYW5kIHdl IGxvYWQgdGhlIEh1Qy4NCj4gDQo+IEJldHdlZW4gc3RlcHMgMSBhbmQgMiB0aGVyZSBjYW4g YmUgc2V2ZXJhbCBzZWNvbmRzIG9mIGdhcCwgbWFpbmx5IGR1ZSB0bw0KPiB0aGUga2VybmVs IGRvaW5nIG90aGVyIHdvcmsgZHVyaW5nIHRoZSBib290Lg0KPiBUaGUgcmVzdW1lIGZsb3cg aXMgc2xpZ2h0bHkgZGlmZmVyZW50LCBiZWNhdXNlIHdlIGRvbid0IG5lZWQgdG8NCj4gcmUt ZXhwb3NlIG9yIHJlLXByb2JlIHRoZSBhdXggZGV2aWNlLCBzbyB3ZSBnbyBkaXJlY3RseSB0 byBzdGVwIDMgb25jZQ0KPiBpOTE1IGFuZCBtZWktZ3NjIGhhdmUgY29tcGxldGVkIHRoZWly IHJlc3VtZSBmbG93Lg0KPiANCj4gSGVyZSdzIGFuIGV4YW1wbGUgb2YgdGhlIGJvb3QgdGlt aW5nLCBjYXB0dXJlZCB3aXRoIHNvbWUgbG9ncyBhZGRlZCB0bw0KPiBpOTE1Og0KPiANCj4g WyAgIDE3LjkwODMwN10gW2RybV0gYWRkaW5nIEdTQyBkZXZpY2UNCj4gWyAgIDE3LjkxNTcx N10gW2RybV0gaTkxNSBwcm9iZSBkb25lDQo+IFsgICAyMi4yODI5MTddIFtkcm1dIG1laS1n c2MgYm91bmQNCj4gWyAgIDIyLjkzODE1M10gW2RybV0gSHVDIGF1dGhlbnRpY2F0ZWQNCj4g DQo+IEFsc28gdG8gbm90ZSBpcyB0aGF0IGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIGR1cmlu ZyBHU0MgSFcgaW5pdCB0aGUNCj4gbWVpLWdzYyBkcml2ZXIgd2lsbCBzdGlsbCBiaW5kLCBi dXQgc3RlcHMgMyBhbmQgNCB3aWxsIG5vdCBoYXBwZW4uDQo+IA0KPiBUaGUgc3RhdHVzIHRy YWNraW5nIGlzIGRvbmUgYnkgcmVnaXN0ZXJpbmcgYSBidXNfbm90aWZpZXIgdG8gcmVjZWl2 ZSBhDQo+IGNhbGxiYWNrIHdoZW4gdGhlIG1laS1nc2MgZHJpdmVyIGJpbmRzLCB3aXRoIGEg bGFyZ2UgZW5vdWdoIHRpbWVvdXQgdG8NCj4gYWNjb3VudCBmb3IgZGVsYXlzLiBPbmNlIG1l aS1nc2MgaXMgYm91bmQsIHdlIHN3aXRjaCB0byBhIHNtYWxsZXINCj4gdGltZW91dCB0byB3 YWl0IGZvciB0aGUgbWVpLXB4cCBjb21wb25lbnQgdG8gbG9hZC4NCj4gVGhlIGZlbmNlIGlz IHNpZ25hbGxlZCBvbiBIdUMgbG9hZCBjb21wbGV0ZSBvciBpZiBhbnl0aGluZyBnb2VzIHdy b25nIGluDQo+IGFueSBvZiB0aGUgdHJhY2tpbmcgc3RlcHMuIFRpbWVvdXQgYXJlIGVuZm9y Y2VkIHZpYSBocnRpbWVyIGNhbGxiYWNrcy4NCj4gDQo+IHYyOiBmaXggaW5jbHVkZXMgKEph bmkpDQo+IHY1OiBnc2Nfbm90aWZpZXIoKSByZW1vdmUgdW5uZWVkZWQgKCkNCj4gDQo+IFNp Z25lZC1vZmYtYnk6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3Nw dXJpb0BpbnRlbC5jb20+DQo+IFJldmlld2VkLWJ5OiBBbGFuIFByZXZpbiA8YWxhbi5wcmV2 aW4udGVyZXMuYWxleGlzQGludGVsLmNvbT4NCj4gLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZ3NjLmMgICAgfCAgMjIgKystDQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfaHVjLmMgfCAxOTkgKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2h1Yy5oIHwgIDIzICsr Kw0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMjQxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Z3NjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9nc2MuYw0KPiBpbmRleCBk NTZmNzViNjA1ZDguLjk3NmZkZjI3ZTc5MCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZ3NjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZ3NjLmMNCj4gQEAgLTE0Myw4ICsxNDMsMTQgQEAgc3RhdGljIHZvaWQgZ3Nj X2Rlc3Ryb3lfb25lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LA0KPiAgIAlzdHJ1 Y3QgaW50ZWxfZ3NjX2ludGYgKmludGYgPSAmZ3NjLT5pbnRmW2ludGZfaWRdOw0KPiAgIA0K PiAgIAlpZiAoaW50Zi0+YWRldikgew0KPiAtCQlhdXhpbGlhcnlfZGV2aWNlX2RlbGV0ZSgm aW50Zi0+YWRldi0+YXV4X2Rldik7DQo+IC0JCWF1eGlsaWFyeV9kZXZpY2VfdW5pbml0KCZp bnRmLT5hZGV2LT5hdXhfZGV2KTsNCj4gKwkJc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmF1 eF9kZXYgPSAmaW50Zi0+YWRldi0+YXV4X2RldjsNCj4gKw0KPiArCQlpZiAoaW50Zl9pZCA9 PSAwKQ0KPiArCQkJaW50ZWxfaHVjX3VucmVnaXN0ZXJfZ3NjX25vdGlmaWVyKCZnc2NfdG9f Z3QoZ3NjKS0+dWMuaHVjLA0KPiArCQkJCQkJCSAgYXV4X2Rldi0+ZGV2LmJ1cyk7DQo+ICsN Cj4gKwkJYXV4aWxpYXJ5X2RldmljZV9kZWxldGUoYXV4X2Rldik7DQo+ICsJCWF1eGlsaWFy eV9kZXZpY2VfdW5pbml0KGF1eF9kZXYpOw0KPiAgIAkJaW50Zi0+YWRldiA9IE5VTEw7DQo+ ICAgCX0NCj4gICANCj4gQEAgLTI0MywxNCArMjQ5LDI0IEBAIHN0YXRpYyB2b2lkIGdzY19p bml0X29uZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGludGVsX2dz YyAqZ3NjLA0KPiAgIAkJZ290byBmYWlsOw0KPiAgIAl9DQo+ICAgDQo+ICsJaW50Zi0+YWRl diA9IGFkZXY7IC8qIG5lZWRlZCBieSB0aGUgbm90aWZpZXIgKi8NCj4gKw0KPiArCWlmIChp bnRmX2lkID09IDApDQo+ICsJCWludGVsX2h1Y19yZWdpc3Rlcl9nc2Nfbm90aWZpZXIoJmdz Y190b19ndChnc2MpLT51Yy5odWMsDQo+ICsJCQkJCQlhdXhfZGV2LT5kZXYuYnVzKTsNCj4g Kw0KPiAgIAlyZXQgPSBhdXhpbGlhcnlfZGV2aWNlX2FkZChhdXhfZGV2KTsNCj4gICAJaWYg KHJldCA8IDApIHsNCj4gICAJCWRybV9lcnIoJmk5MTUtPmRybSwgImdzYyBhdXggYWRkIGZh aWxlZCAlZFxuIiwgcmV0KTsNCj4gKwkJaWYgKGludGZfaWQgPT0gMCkNCj4gKwkJCWludGVs X2h1Y191bnJlZ2lzdGVyX2dzY19ub3RpZmllcigmZ3NjX3RvX2d0KGdzYyktPnVjLmh1YywN Cj4gKwkJCQkJCQkgIGF1eF9kZXYtPmRldi5idXMpOw0KPiArCQlpbnRmLT5hZGV2ID0gTlVM TDsNCj4gKw0KPiAgIAkJLyogYWRldiB3aWxsIGJlIGZyZWVkIHdpdGggdGhlIHB1dF9kZXZp Y2UoKSBhbmQgLnJlbGVhc2Ugc2VxdWVuY2UgKi8NCj4gICAJCWF1eGlsaWFyeV9kZXZpY2Vf dW5pbml0KGF1eF9kZXYpOw0KPiAgIAkJZ290byBmYWlsOw0KPiAgIAl9DQo+IC0JaW50Zi0+ YWRldiA9IGFkZXY7DQo+ICAgDQo+ICAgCXJldHVybjsNCj4gICBmYWlsOg0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfaHVjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMuYw0KPiBpbmRleCBmMDE4ODkzMWQ4ZTQu LjVmMjE0NGM3OGY4YSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvaW50ZWxfaHVjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50 ZWxfaHVjLmMNCj4gQEAgLTEwLDYgKzEwLDkgQEANCj4gICAjaW5jbHVkZSAiaW50ZWxfaHVj LmgiDQo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiDQo+ICAgDQo+ICsjaW5jbHVkZSA8bGlu dXgvZGV2aWNlL2J1cy5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L21laV9hdXguaD4NCj4gKw0K PiAgIC8qKg0KPiAgICAqIERPQzogSHVDDQo+ICAgICoNCj4gQEAgLTQyLDYgKzQ1LDE2NCBA QA0KPiAgICAqIEh1Qy1zcGVjaWZpYyBjb21tYW5kcy4NCj4gICAgKi8NCj4gICANCj4gKy8q DQo+ICsgKiBNRUktR1NDIGxvYWQgaXMgYW4gYXN5bmMgcHJvY2Vzcy4gVGhlIHByb2Jpbmcg b2YgdGhlIGV4cG9zZWQgYXV4IGRldmljZQ0KPiArICogKHNlZSBpbnRlbF9nc2MuYykgdXN1 YWxseSBoYXBwZW5zIGEgZmV3IHNlY29uZHMgYWZ0ZXIgaTkxNSBwcm9iZSwgZGVwZW5kaW5n DQo+ICsgKiBvbiB3aGVuIHRoZSBrZXJuZWwgc2NoZWR1bGVzIGl0LiBVbmxlc3Mgc29tZXRo aW5nIGdvZXMgdGVycmlibHkgd3JvbmcsIHdlJ3JlDQo+ICsgKiBndWFyYW50ZWVkIGZvciB0 aGlzIHRvIGhhcHBlbiBkdXJpbmcgYm9vdCwgc28gdGhlIGJpZyB0aW1lb3V0IGlzIGEgc2Fm ZXR5IG5ldA0KPiArICogdGhhdCB3ZSBuZXZlciBleHBlY3QgdG8gbmVlZC4NCj4gKyAqIE1F SS1QWFAgKyBIdUMgbG9hZCB1c3VhbGx5IHRha2VzIH4zMDBtcywgYnV0IGlmIHRoZSBHU0Mg bmVlZHMgdG8gYmUgcmVzdW1lZA0KPiArICogYW5kL29yIHJlc2V0LCB0aGlzIGNhbiB0YWtl IGxvbmdlci4NCj4gKyAqLw0KPiArI2RlZmluZSBHU0NfSU5JVF9USU1FT1VUX01TIDEwMDAw DQo+ICsjZGVmaW5lIFBYUF9JTklUX1RJTUVPVVRfTVMgMjAwMA0KPiArDQo+ICtzdGF0aWMg aW50IHN3X2ZlbmNlX2R1bW15X25vdGlmeShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqc2YsDQo+ ICsJCQkJIGVudW0gaTkxNV9zd19mZW5jZV9ub3RpZnkgc3RhdGUpDQo+ICt7DQo+ICsJcmV0 dXJuIE5PVElGWV9ET05FOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBfX2RlbGF5ZWRf aHVjX2xvYWRfY29tcGxldGUoc3RydWN0IGludGVsX2h1YyAqaHVjKQ0KPiArew0KPiArCWlm ICghaTkxNV9zd19mZW5jZV9kb25lKCZodWMtPmRlbGF5ZWRfbG9hZC5mZW5jZSkpDQo+ICsJ CWk5MTVfc3dfZmVuY2VfY29tcGxldGUoJmh1Yy0+ZGVsYXllZF9sb2FkLmZlbmNlKTsNCj4g K30NCj4gKw0KPiArc3RhdGljIHZvaWQgZGVsYXllZF9odWNfbG9hZF9jb21wbGV0ZShzdHJ1 Y3QgaW50ZWxfaHVjICpodWMpDQo+ICt7DQo+ICsJaHJ0aW1lcl9jYW5jZWwoJmh1Yy0+ZGVs YXllZF9sb2FkLnRpbWVyKTsNCj4gKwlfX2RlbGF5ZWRfaHVjX2xvYWRfY29tcGxldGUoaHVj KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgX19nc2NfaW5pdF9lcnJvcihzdHJ1Y3Qg aW50ZWxfaHVjICpodWMpDQo+ICt7DQo+ICsJaHVjLT5kZWxheWVkX2xvYWQuc3RhdHVzID0g SU5URUxfSFVDX0RFTEFZRURfTE9BRF9FUlJPUjsNCj4gKwlfX2RlbGF5ZWRfaHVjX2xvYWRf Y29tcGxldGUoaHVjKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgZ3NjX2luaXRfZXJy b3Ioc3RydWN0IGludGVsX2h1YyAqaHVjKQ0KPiArew0KPiArCWhydGltZXJfY2FuY2VsKCZo dWMtPmRlbGF5ZWRfbG9hZC50aW1lcik7DQo+ICsJX19nc2NfaW5pdF9lcnJvcihodWMpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBnc2NfaW5pdF9kb25lKHN0cnVjdCBpbnRlbF9o dWMgKmh1YykNCj4gK3sNCj4gKwlocnRpbWVyX2NhbmNlbCgmaHVjLT5kZWxheWVkX2xvYWQu dGltZXIpOw0KPiArDQo+ICsJLyogTUVJLUdTQyBpbml0IGlzIGRvbmUsIG5vdyB3ZSB3YWl0 IGZvciBNRUktUFhQIHRvIGJpbmQgKi8NCj4gKwlodWMtPmRlbGF5ZWRfbG9hZC5zdGF0dXMg PSBJTlRFTF9IVUNfV0FJVElOR19PTl9QWFA7DQo+ICsJaWYgKCFpOTE1X3N3X2ZlbmNlX2Rv bmUoJmh1Yy0+ZGVsYXllZF9sb2FkLmZlbmNlKSkNCj4gKwkJaHJ0aW1lcl9zdGFydCgmaHVj LT5kZWxheWVkX2xvYWQudGltZXIsDQo+ICsJCQkgICAgICBtc190b19rdGltZShQWFBfSU5J VF9USU1FT1VUX01TKSwNCj4gKwkJCSAgICAgIEhSVElNRVJfTU9ERV9SRUwpOw0KPiArfQ0K PiArDQo+ICtzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgaHVjX2RlbGF5ZWRfbG9hZF90 aW1lcl9jYWxsYmFjayhzdHJ1Y3QgaHJ0aW1lciAqaHJ0aW1lcikNCj4gK3sNCj4gKwlzdHJ1 Y3QgaW50ZWxfaHVjICpodWMgPSBjb250YWluZXJfb2YoaHJ0aW1lciwgc3RydWN0IGludGVs X2h1YywgZGVsYXllZF9sb2FkLnRpbWVyKTsNCj4gKw0KPiArCWlmICghaW50ZWxfaHVjX2lz X2F1dGhlbnRpY2F0ZWQoaHVjKSkgew0KPiArCQlkcm1fZXJyKCZodWNfdG9fZ3QoaHVjKS0+ aTkxNS0+ZHJtLA0KPiArCQkJInRpbWVkIG91dCB3YWl0aW5nIGZvciBHU0MgaW5pdCB0byBs b2FkIEh1Q1xuIik7DQo+ICsNCj4gKwkJX19nc2NfaW5pdF9lcnJvcihodWMpOw0KPiArCX0N Cj4gKw0KPiArCXJldHVybiBIUlRJTUVSX05PUkVTVEFSVDsNCj4gK30NCj4gKw0KPiArc3Rh dGljIHZvaWQgaHVjX2RlbGF5ZWRfbG9hZF9zdGFydChzdHJ1Y3QgaW50ZWxfaHVjICpodWMp DQo+ICt7DQo+ICsJa3RpbWVfdCBkZWxheTsNCj4gKw0KPiArCUdFTV9CVUdfT04oaW50ZWxf aHVjX2lzX2F1dGhlbnRpY2F0ZWQoaHVjKSk7DQo+ICsNCj4gKwkvKg0KPiArCSAqIE9uIHJl c3VtZSB3ZSBkb24ndCBoYXZlIHRvIHdhaXQgZm9yIE1FSS1HU0MgdG8gYmUgcmUtcHJvYmVk LCBidXQgd2UNCj4gKwkgKiBkbyBuZWVkIHRvIHdhaXQgZm9yIE1FSS1QWFAgdG8gcmVzZXQg JiByZS1iaW5kDQo+ICsJICovDQo+ICsJc3dpdGNoIChodWMtPmRlbGF5ZWRfbG9hZC5zdGF0 dXMpIHsNCj4gKwljYXNlIElOVEVMX0hVQ19XQUlUSU5HX09OX0dTQzoNCj4gKwkJZGVsYXkg PSBtc190b19rdGltZShHU0NfSU5JVF9USU1FT1VUX01TKTsNCj4gKwkJYnJlYWs7DQo+ICsJ Y2FzZSBJTlRFTF9IVUNfV0FJVElOR19PTl9QWFA6DQo+ICsJCWRlbGF5ID0gbXNfdG9fa3Rp bWUoUFhQX0lOSVRfVElNRU9VVF9NUyk7DQo+ICsJCWJyZWFrOw0KPiArCWRlZmF1bHQ6DQo+ ICsJCWdzY19pbml0X2Vycm9yKGh1Yyk7DQo+ICsJCXJldHVybjsNCj4gKwl9DQo+ICsNCj4g KwkvKg0KPiArCSAqIFRoaXMgZmVuY2UgaXMgYWx3YXlzIGNvbXBsZXRlIHVubGVzcyB3ZSdy ZSB3YWl0aW5nIGZvciB0aGUNCj4gKwkgKiBHU0MgZGV2aWNlIHRvIGNvbWUgdXAgdG8gbG9h ZCB0aGUgSHVDLiBXZSBhcm0gdGhlIGZlbmNlIGhlcmUNCj4gKwkgKiBhbmQgY29tcGxldGUg aXQgd2hlbiB3ZSBjb25maXJtIHRoYXQgdGhlIEh1QyBpcyBsb2FkZWQgZnJvbQ0KPiArCSAq IHRoZSBQWFAgYmluZCBjYWxsYmFjay4NCj4gKwkgKi8NCj4gKwlHRU1fQlVHX09OKCFpOTE1 X3N3X2ZlbmNlX2RvbmUoJmh1Yy0+ZGVsYXllZF9sb2FkLmZlbmNlKSk7DQo+ICsJaTkxNV9z d19mZW5jZV9maW5pKCZodWMtPmRlbGF5ZWRfbG9hZC5mZW5jZSk7DQo+ICsJaTkxNV9zd19m ZW5jZV9yZWluaXQoJmh1Yy0+ZGVsYXllZF9sb2FkLmZlbmNlKTsNCj4gKwlpOTE1X3N3X2Zl bmNlX2F3YWl0KCZodWMtPmRlbGF5ZWRfbG9hZC5mZW5jZSk7DQo+ICsJaTkxNV9zd19mZW5j ZV9jb21taXQoJmh1Yy0+ZGVsYXllZF9sb2FkLmZlbmNlKTsNCj4gKw0KPiArCWhydGltZXJf c3RhcnQoJmh1Yy0+ZGVsYXllZF9sb2FkLnRpbWVyLCBkZWxheSwgSFJUSU1FUl9NT0RFX1JF TCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgZ3NjX25vdGlmaWVyKHN0cnVjdCBub3Rp Zmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpkYXRhKQ0KPiAr ew0KPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IGRhdGE7DQo+ICsJc3RydWN0IGludGVsX2h1 YyAqaHVjID0gY29udGFpbmVyX29mKG5iLCBzdHJ1Y3QgaW50ZWxfaHVjLCBkZWxheWVkX2xv YWQubmIpOw0KPiArCXN0cnVjdCBpbnRlbF9nc2NfaW50ZiAqaW50ZiA9ICZodWNfdG9fZ3Qo aHVjKS0+Z3NjLmludGZbMF07DQo+ICsNCj4gKwlpZiAoIWludGYtPmFkZXYgfHwgJmludGYt PmFkZXYtPmF1eF9kZXYuZGV2ICE9IGRldikNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlz d2l0Y2ggKGFjdGlvbikgew0KPiArCWNhc2UgQlVTX05PVElGWV9CT1VORF9EUklWRVI6IC8q IG1laSBkcml2ZXIgYm91bmQgdG8gYXV4IGRldmljZSAqLw0KPiArCQlnc2NfaW5pdF9kb25l KGh1Yyk7DQo+ICsJCWJyZWFrOw0KPiArDQo+ICsJY2FzZSBCVVNfTk9USUZZX0RSSVZFUl9O T1RfQk9VTkQ6IC8qIG1laSBkcml2ZXIgZmFpbHMgdG8gYmUgYm91bmQgKi8NCj4gKwljYXNl IEJVU19OT1RJRllfVU5CSU5EX0RSSVZFUjogLyogbWVpIGRyaXZlciBhYm91dCB0byBiZSB1 bmJvdW5kICovDQo+ICsJCWRybV9pbmZvKCZodWNfdG9fZ3QoaHVjKS0+aTkxNS0+ZHJtLA0K PiArCQkJICJtZWkgZHJpdmVyIG5vdCBib3VuZCwgZGlzYWJsaW5nIEh1QyBsb2FkXG4iKTsN Cj4gKwkJZ3NjX2luaXRfZXJyb3IoaHVjKTsNCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiArDQo+ ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgaW50ZWxfaHVjX3JlZ2lzdGVyX2dz Y19ub3RpZmllcihzdHJ1Y3QgaW50ZWxfaHVjICpodWMsIHN0cnVjdCBidXNfdHlwZSAqYnVz KQ0KPiArew0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlpZiAoIWludGVsX2h1Y19pc19sb2Fk ZWRfYnlfZ3NjKGh1YykpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWh1Yy0+ZGVsYXllZF9s b2FkLm5iLm5vdGlmaWVyX2NhbGwgPSBnc2Nfbm90aWZpZXI7DQo+ICsJcmV0ID0gYnVzX3Jl Z2lzdGVyX25vdGlmaWVyKGJ1cywgJmh1Yy0+ZGVsYXllZF9sb2FkLm5iKTsNCj4gKwlpZiAo cmV0KSB7DQo+ICsJCWRybV9lcnIoJmh1Y190b19ndChodWMpLT5pOTE1LT5kcm0sDQo+ICsJ CQkiZmFpbGVkIHRvIHJlZ2lzdGVyIEdTQyBub3RpZmllclxuIik7DQo+ICsJCWh1Yy0+ZGVs YXllZF9sb2FkLm5iLm5vdGlmaWVyX2NhbGwgPSBOVUxMOw0KPiArCQlnc2NfaW5pdF9lcnJv cihodWMpOw0KPiArCX0NCj4gK30NCj4gKw0KPiArdm9pZCBpbnRlbF9odWNfdW5yZWdpc3Rl cl9nc2Nfbm90aWZpZXIoc3RydWN0IGludGVsX2h1YyAqaHVjLCBzdHJ1Y3QgYnVzX3R5cGUg KmJ1cykNCj4gK3sNCj4gKwlpZiAoIWh1Yy0+ZGVsYXllZF9sb2FkLm5iLm5vdGlmaWVyX2Nh bGwpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWRlbGF5ZWRfaHVjX2xvYWRfY29tcGxldGUo aHVjKTsNCj4gKw0KPiArCWJ1c191bnJlZ2lzdGVyX25vdGlmaWVyKGJ1cywgJmh1Yy0+ZGVs YXllZF9sb2FkLm5iKTsNCj4gKwlodWMtPmRlbGF5ZWRfbG9hZC5uYi5ub3RpZmllcl9jYWxs ID0gTlVMTDsNCj4gK30NCj4gKw0KPiAgIHZvaWQgaW50ZWxfaHVjX2luaXRfZWFybHkoc3Ry dWN0IGludGVsX2h1YyAqaHVjKQ0KPiAgIHsNCj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBodWNfdG9fZ3QoaHVjKS0+aTkxNTsNCj4gQEAgLTU3LDYgKzIxOCwxNyBA QCB2b2lkIGludGVsX2h1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1YykNCj4g ICAJCWh1Yy0+c3RhdHVzLm1hc2sgPSBIVUNfRldfVkVSSUZJRUQ7DQo+ICAgCQlodWMtPnN0 YXR1cy52YWx1ZSA9IEhVQ19GV19WRVJJRklFRDsNCj4gICAJfQ0KPiArDQo+ICsJLyoNCj4g KwkgKiBJbml0aWFsaXplIGZlbmNlIHRvIGJlIGNvbXBsZXRlIGFzIHRoaXMgaXMgZXhwZWN0 ZWQgdG8gYmUgY29tcGxldGUNCj4gKwkgKiB1bmxlc3MgdGhlcmUgaXMgYSBkZWxheWVkIEh1 QyByZWxvYWQgaW4gcHJvZ3Jlc3MuDQo+ICsJICovDQo+ICsJaTkxNV9zd19mZW5jZV9pbml0 KCZodWMtPmRlbGF5ZWRfbG9hZC5mZW5jZSwNCj4gKwkJCSAgIHN3X2ZlbmNlX2R1bW15X25v dGlmeSk7DQo+ICsJaTkxNV9zd19mZW5jZV9jb21taXQoJmh1Yy0+ZGVsYXllZF9sb2FkLmZl bmNlKTsNCj4gKw0KPiArCWhydGltZXJfaW5pdCgmaHVjLT5kZWxheWVkX2xvYWQudGltZXIs IENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7DQo+ICsJaHVjLT5kZWxheWVk X2xvYWQudGltZXIuZnVuY3Rpb24gPSBodWNfZGVsYXllZF9sb2FkX3RpbWVyX2NhbGxiYWNr Ow0KPiAgIH0NCj4gICANCj4gICAjZGVmaW5lIEhVQ19MT0FEX01PREVfU1RSSU5HKHgpICh4 ID8gIkdTQyIgOiAibGVnYWN5IikNCj4gQEAgLTEyMiw5ICsyOTQsMjUgQEAgdm9pZCBpbnRl bF9odWNfZmluaShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpDQo+ICAgCWlmICghaW50ZWxfdWNf ZndfaXNfbG9hZGFibGUoJmh1Yy0+ZncpKQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiArCWRl bGF5ZWRfaHVjX2xvYWRfY29tcGxldGUoaHVjKTsNCj4gKw0KPiArCWk5MTVfc3dfZmVuY2Vf ZmluaSgmaHVjLT5kZWxheWVkX2xvYWQuZmVuY2UpOw0KPiAgIAlpbnRlbF91Y19md19maW5p KCZodWMtPmZ3KTsNCj4gICB9DQo+ICAgDQo+ICt2b2lkIGludGVsX2h1Y19zdXNwZW5kKHN0 cnVjdCBpbnRlbF9odWMgKmh1YykNCj4gK3sNCj4gKwlpZiAoIWludGVsX3VjX2Z3X2lzX2xv YWRhYmxlKCZodWMtPmZ3KSkNCj4gKwkJcmV0dXJuOw0KPiArDQo+ICsJLyoNCj4gKwkgKiBp biB0aGUgdW5saWtlbHkgY2FzZSB0aGF0IHdlJ3JlIHN1c3BlbmRpbmcgYmVmb3JlIHRoZSBH U0MgaGFzDQo+ICsJICogY29tcGxldGVkIGl0cyBsb2FkaW5nIHNlcXVlbmNlLCBqdXN0IHN0 b3Agd2FpdGluZy4gV2UnbGwgcmVzdGFydA0KPiArCSAqIG9uIHJlc3VtZS4NCj4gKwkgKi8N Cj4gKwlkZWxheWVkX2h1Y19sb2FkX2NvbXBsZXRlKGh1Yyk7DQo+ICt9DQo+ICsNCj4gICBp bnQgaW50ZWxfaHVjX3dhaXRfZm9yX2F1dGhfY29tcGxldGUoc3RydWN0IGludGVsX2h1YyAq aHVjKQ0KPiAgIHsNCj4gICAJc3RydWN0IGludGVsX2d0ICpndCA9IGh1Y190b19ndChodWMp Ow0KPiBAQCAtMTM2LDYgKzMyNCw5IEBAIGludCBpbnRlbF9odWNfd2FpdF9mb3JfYXV0aF9j b21wbGV0ZShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpDQo+ICAgCQkJCQlodWMtPnN0YXR1cy52 YWx1ZSwNCj4gICAJCQkJCTIsIDUwLCBOVUxMKTsNCj4gICANCj4gKwkvKiBtYXJrIHRoZSBs b2FkIHByb2Nlc3MgYXMgY29tcGxldGUgZXZlbiBpZiB0aGUgd2FpdCBmYWlsZWQgKi8NCj4g KwlkZWxheWVkX2h1Y19sb2FkX2NvbXBsZXRlKGh1Yyk7DQo+ICsNCj4gICAJaWYgKHJldCkg ew0KPiAgIAkJZHJtX2VycigmZ3QtPmk5MTUtPmRybSwgIkh1QzogRmlybXdhcmUgbm90IHZl cmlmaWVkICVkXG4iLCByZXQpOw0KPiAgIAkJaW50ZWxfdWNfZndfY2hhbmdlX3N0YXR1cygm aHVjLT5mdywgSU5URUxfVUNfRklSTVdBUkVfTE9BRF9GQUlMKTsNCj4gQEAgLTIzOSw2ICs0 MzAsMTIgQEAgaW50IGludGVsX2h1Y19jaGVja19zdGF0dXMoc3RydWN0IGludGVsX2h1YyAq aHVjKQ0KPiAgIAlyZXR1cm4gaW50ZWxfaHVjX2lzX2F1dGhlbnRpY2F0ZWQoaHVjKTsNCj4g ICB9DQo+ICAgDQo+ICtzdGF0aWMgYm9vbCBodWNfaGFzX2RlbGF5ZWRfbG9hZChzdHJ1Y3Qg aW50ZWxfaHVjICpodWMpDQo+ICt7DQo+ICsJcmV0dXJuIGludGVsX2h1Y19pc19sb2FkZWRf YnlfZ3NjKGh1YykgJiYNCj4gKwkgICAgICAgKGh1Yy0+ZGVsYXllZF9sb2FkLnN0YXR1cyAh PSBJTlRFTF9IVUNfREVMQVlFRF9MT0FEX0VSUk9SKTsNCj4gK30NCj4gKw0KPiAgIHZvaWQg aW50ZWxfaHVjX3VwZGF0ZV9hdXRoX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfaHVjICpodWMpDQo+ ICAgew0KPiAgIAlpZiAoIWludGVsX3VjX2Z3X2lzX2xvYWRhYmxlKCZodWMtPmZ3KSkNCj4g QEAgLTI0Nyw2ICs0NDQsOCBAQCB2b2lkIGludGVsX2h1Y191cGRhdGVfYXV0aF9zdGF0dXMo c3RydWN0IGludGVsX2h1YyAqaHVjKQ0KPiAgIAlpZiAoaW50ZWxfaHVjX2lzX2F1dGhlbnRp Y2F0ZWQoaHVjKSkNCj4gICAJCWludGVsX3VjX2Z3X2NoYW5nZV9zdGF0dXMoJmh1Yy0+Zncs DQo+ICAgCQkJCQkgIElOVEVMX1VDX0ZJUk1XQVJFX1JVTk5JTkcpOw0KPiArCWVsc2UgaWYg KGh1Y19oYXNfZGVsYXllZF9sb2FkKGh1YykpDQo+ICsJCWh1Y19kZWxheWVkX2xvYWRfc3Rh cnQoaHVjKTsNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2h1Yy5oDQo+IGluZGV4IDUxZjlkOTZhM2NhMy4uOTE1ZDI4MWMxYzcy IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMu aA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9odWMuaA0KPiBA QCAtNyw5ICs3LDIxIEBADQo+ICAgI2RlZmluZSBfSU5URUxfSFVDX0hfDQo+ICAgDQo+ICAg I2luY2x1ZGUgImk5MTVfcmVnX2RlZnMuaCINCj4gKyNpbmNsdWRlICJpOTE1X3N3X2ZlbmNl LmgiDQo+ICAgI2luY2x1ZGUgImludGVsX3VjX2Z3LmgiDQo+ICAgI2luY2x1ZGUgImludGVs X2h1Y19mdy5oIg0KPiAgIA0KPiArI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+DQo+ICsj aW5jbHVkZSA8bGludXgvaHJ0aW1lci5oPg0KPiArDQo+ICtzdHJ1Y3QgYnVzX3R5cGU7DQo+ ICsNCj4gK2VudW0gaW50ZWxfaHVjX2RlbGF5ZWRfbG9hZF9zdGF0dXMgew0KPiArCUlOVEVM X0hVQ19XQUlUSU5HX09OX0dTQyA9IDAsDQo+ICsJSU5URUxfSFVDX1dBSVRJTkdfT05fUFhQ LA0KPiArCUlOVEVMX0hVQ19ERUxBWUVEX0xPQURfRVJST1IsDQo+ICt9Ow0KPiArDQo+ICAg c3RydWN0IGludGVsX2h1YyB7DQo+ICAgCS8qIEdlbmVyaWMgdUMgZmlybXdhcmUgbWFuYWdl bWVudCAqLw0KPiAgIAlzdHJ1Y3QgaW50ZWxfdWNfZncgZnc7DQo+IEBAIC0yMCwxNyArMzIs MjggQEAgc3RydWN0IGludGVsX2h1YyB7DQo+ICAgCQl1MzIgbWFzazsNCj4gICAJCXUzMiB2 YWx1ZTsNCj4gICAJfSBzdGF0dXM7DQo+ICsNCj4gKwlzdHJ1Y3Qgew0KPiArCQlzdHJ1Y3Qg aTkxNV9zd19mZW5jZSBmZW5jZTsNCj4gKwkJc3RydWN0IGhydGltZXIgdGltZXI7DQo+ICsJ CXN0cnVjdCBub3RpZmllcl9ibG9jayBuYjsNCj4gKwkJZW51bSBpbnRlbF9odWNfZGVsYXll ZF9sb2FkX3N0YXR1cyBzdGF0dXM7DQo+ICsJfSBkZWxheWVkX2xvYWQ7DQo+ICAgfTsNCj4g ICANCj4gICB2b2lkIGludGVsX2h1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1 Yyk7DQo+ICAgaW50IGludGVsX2h1Y19pbml0KHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7DQo+ ICAgdm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOw0KPiArdm9p ZCBpbnRlbF9odWNfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOw0KPiAgIGludCBp bnRlbF9odWNfYXV0aChzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOw0KPiAgIGludCBpbnRlbF9o dWNfd2FpdF9mb3JfYXV0aF9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOw0KPiAg IGludCBpbnRlbF9odWNfY2hlY2tfc3RhdHVzKHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7DQo+ ICAgdm9pZCBpbnRlbF9odWNfdXBkYXRlX2F1dGhfc3RhdHVzKHN0cnVjdCBpbnRlbF9odWMg Kmh1Yyk7DQo+ICAgYm9vbCBpbnRlbF9odWNfaXNfYXV0aGVudGljYXRlZChzdHJ1Y3QgaW50 ZWxfaHVjICpodWMpOw0KPiAgIA0KPiArdm9pZCBpbnRlbF9odWNfcmVnaXN0ZXJfZ3NjX25v dGlmaWVyKHN0cnVjdCBpbnRlbF9odWMgKmh1Yywgc3RydWN0IGJ1c190eXBlICpidXMpOw0K PiArdm9pZCBpbnRlbF9odWNfdW5yZWdpc3Rlcl9nc2Nfbm90aWZpZXIoc3RydWN0IGludGVs X2h1YyAqaHVjLCBzdHJ1Y3QgYnVzX3R5cGUgKmJ1cyk7DQo+ICsNCj4gICBzdGF0aWMgaW5s aW5lIGludCBpbnRlbF9odWNfc2FuaXRpemUoc3RydWN0IGludGVsX2h1YyAqaHVjKQ0KPiAg IHsNCj4gICAJaW50ZWxfdWNfZndfc2FuaXRpemUoJmh1Yy0+ZncpOw0K