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 C4259C433EF for ; Fri, 4 Feb 2022 19:06:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230431AbiBDTF7 (ORCPT ); Fri, 4 Feb 2022 14:05:59 -0500 Received: from smtp-out1.suse.de ([195.135.220.28]:44036 "EHLO smtp-out1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230058AbiBDTF6 (ORCPT ); Fri, 4 Feb 2022 14:05:58 -0500 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 704EF210EA; Fri, 4 Feb 2022 19:05:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1644001557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wLMIIg32wAYjSuQhX9Z3Uuba6juaB9dX8JNgITecp6Y=; b=RzbhhYtxQ9I9i3ZAt/YsJaoAqRALwNz9AwhDfw3McgNHU9XdZXamUss7SKgBCqf4py9a6B NQ0BJxJ4aJFcquL8syMy/qURE1d5w/+1WZ2IWTNlBk3N1R3/TaQvP3wH+48Y4AMpyPd/F5 qWmRF+niUOZFtojFMMKxKTa2+OfEHS0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1644001557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wLMIIg32wAYjSuQhX9Z3Uuba6juaB9dX8JNgITecp6Y=; b=YHwvEzqIo93RLC0ADdqgFpKhk4dz3WVgRme3kVFv0S8Hk4qSX8NdCv2vRasBEplShu2P9E KS3EpTsb3apJgXCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2A13013ADE; Fri, 4 Feb 2022 19:05:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Oi1+CBV5/WEaAwAAMHmgww (envelope-from ); Fri, 04 Feb 2022 19:05:57 +0000 Message-ID: <515668f4-9faf-ed8e-385e-7020eed38b18@suse.de> Date: Fri, 4 Feb 2022 20:05:56 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH 03/19] iosys-map: Add a few more helpers Content-Language: en-US To: Lucas De Marchi , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: John Harrison , Matthew Brost , Daniele Ceraolo Spurio , Matt Roper , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , =?UTF-8?Q?Christian_K=c3=b6nig?= , Sumit Semwal , linux-kernel@vger.kernel.org References: <20220204174436.830121-1-lucas.demarchi@intel.com> <20220204174436.830121-4-lucas.demarchi@intel.com> From: Thomas Zimmermann In-Reply-To: <20220204174436.830121-4-lucas.demarchi@intel.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------EJHe7aT1MX8MACmRfxSbCbA0" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------EJHe7aT1MX8MACmRfxSbCbA0 Content-Type: multipart/mixed; boundary="------------0I6IFackrZgWOt9wWijvIv8D"; protected-headers="v1" From: Thomas Zimmermann To: Lucas De Marchi , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: John Harrison , Matthew Brost , Daniele Ceraolo Spurio , Matt Roper , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , =?UTF-8?Q?Christian_K=c3=b6nig?= , Sumit Semwal , linux-kernel@vger.kernel.org Message-ID: <515668f4-9faf-ed8e-385e-7020eed38b18@suse.de> Subject: Re: [PATCH 03/19] iosys-map: Add a few more helpers References: <20220204174436.830121-1-lucas.demarchi@intel.com> <20220204174436.830121-4-lucas.demarchi@intel.com> In-Reply-To: <20220204174436.830121-4-lucas.demarchi@intel.com> --------------0I6IFackrZgWOt9wWijvIv8D Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkNCg0KQW0gMDQuMDIuMjIgdW0gMTg6NDQgc2NocmllYiBMdWNhcyBEZSBNYXJjaGk6DQo+ IEZpcnN0IHRoZSBzaW1wbGVzdCBvbmVzOg0KPiANCj4gCS0gaW9zeXNfbWFwX21lbXNldCgp OiB3aGVuIGFic3RyYWN0aW5nIHN5c3RlbSBhbmQgSS9PIG1lbW9yeSwNCj4gCSAganVzdCBs aWtlIHRoZSBtZW1jcHkoKSB1c2UgY2FzZSwgbWVtc2V0KCkgYWxzbyBoYXMgZGVkaWNhdGVk DQo+IAkgIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgZm9yIHVzaW5nIElPIG1lbW9yeS4NCj4g CS0gaW9zeXNfbWFwX21lbWNweV9mcm9tKCk6IHdlIG1heSBuZWVkIHRvIGNvcHkgZGF0YSBm cm9tIEkvTw0KPiAJICBtZW1vcnksIG5vdCBvbmx5IHRvLg0KPiANCj4gSW4gY2VydGFpbiBz aXR1YXRpb25zIGl0J3MgdXNlZnVsIHRvIGJlIGFibGUgdG8gcmVhZCBvciB3cml0ZSB0byBh bg0KPiBvZmZzZXQgdGhhdCBpcyBjYWxjdWxhdGVkIGJ5IGhhdmluZyB0aGUgbWVtb3J5IGxh eW91dCBnaXZlbiBieSBhIHN0cnVjdA0KPiBkZWNsYXJhdGlvbi4gVXN1YWxseSB3ZSBhcmUg Z29pbmcgdG8gcmVhZC93cml0ZSBhIHU4LCB1MTYsIHUzMiBvciB1NjQuDQo+IA0KPiBBcyBh IHByZS1yZXF1aXNpdGUgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiwgYWRkIGlvc3lzX21hcF9t ZW1jcHlfZnJvbSgpDQo+IHRvIGJlIHRoZSBlcXVpdmFsZW50IG9mIGlvc3lzX21hcF9tZW1j cHlfdG8oKSwgYnV0IGluIHRoZSBvdGhlcg0KPiBkaXJlY3Rpb24uIFRoZW4gYWRkIDIgcGFp cnMgb2YgbWFjcm9zOg0KPiANCj4gCS0gaW9zeXNfbWFwX3JkKCkgLyBpb3N5c19tYXBfd3Io KQ0KPiAJLSBpb3N5c19tYXBfcmRfZmllbGQoKSAvIGlvc3lzX21hcF93cl9maWVsZCgpDQo+ IA0KPiBUaGUgZmlyc3QgcGFpciB0YWtlcyB0aGUgQy10eXBlIGFuZCBvZmZzZXQgdG8gcmVh ZC93cml0ZS4gVGhlIHNlY29uZA0KPiBwYWlyIHVzZXMgYSBzdHJ1Y3QgZGVzY3JpYmluZyB0 aGUgbGF5b3V0IG9mIHRoZSBtYXBwaW5nIGluIG9yZGVyIHRvDQo+IGNhbGN1bGF0ZSB0aGUg b2Zmc2V0IGFuZCBzaXplIGJlaW5nIHJlYWQvd3JpdHRlbi4NCj4gDQo+IFdlIGNvdWxkIHVz ZSByZWFkYiwgcmVhZHcsIHJlYWRsLCByZWFkcSBhbmQgdGhlIHdyaXRlKiBjb3VudGVycGFy dHMsDQo+IGhvd2V2ZXIgZHVlIHRvIGFsaWdubWVudCBpc3N1ZXMgdGhpcyBtYXkgbm90IHdv cmsgb24gYWxsIGFyY2hpdGVjdHVyZXMuDQo+IElmIGFsaWdubWVudCBuZWVkcyB0byBiZSBj aGVja2VkIHRvIGNhbGwgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBpdCdzIG5vdA0KPiBwb3NzaWJs ZSB0byBkZWNpZGUgYXQgY29tcGlsZS10aW1lIHdoaWNoIGZ1bmN0aW9uIHRvIGNhbGw6IHNv IGp1c3QgbGVhdmUNCj4gdGhlIGRlY2lzaW9uIHRvIHRoZSBtZW1jcHkgZnVuY3Rpb24gdGhh dCB3aWxsIGRvIGV4YWN0bHkgdGhhdC4NCj4gDQo+IEZpbmFsbHksIGluIG9yZGVyIHRvIHVz ZSB0aGUgYWJvdmUgbWFjcm9zIHdpdGggYSBtYXAgZGVyaXZlZCBmcm9tDQo+IGFub3RoZXIs IGFkZCBhbm90aGVyIGluaXRpYWxpemVyOiBJT1NZU19NQVBfSU5JVF9PRkZTRVQoKS4NCj4g DQo+IENjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPg0KPiBDYzog Q2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogVGhv bWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+DQo+IENjOiBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwu b3JnDQo+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlA aW50ZWwuY29tPg0KPiAtLS0NCj4gICBpbmNsdWRlL2xpbnV4L2lvc3lzLW1hcC5oIHwgMTU0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ICAgMSBmaWxlIGNo YW5nZWQsIDE1MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9pb3N5cy1tYXAuaCBiL2luY2x1ZGUvbGludXgvaW9zeXMt bWFwLmgNCj4gaW5kZXggZWRkN2ZhM2JlOWU5Li45NmY4YjYxYWM2ZmIgMTAwNjQ0DQo+IC0t LSBhL2luY2x1ZGUvbGludXgvaW9zeXMtbWFwLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9p b3N5cy1tYXAuaA0KPiBAQCAtNiw2ICs2LDcgQEANCj4gICAjaWZuZGVmIF9fSU9TWVNfTUFQ X0hfXw0KPiAgICNkZWZpbmUgX19JT1NZU19NQVBfSF9fDQo+ICAgDQo+ICsjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+ICAgI2luY2x1 ZGUgPGxpbnV4L3N0cmluZy5oPg0KPiAgIA0KPiBAQCAtMTMzLDYgKzEzNCw0NSBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgaW9zeXNfbWFwX3NldF92YWRkcihzdHJ1Y3QgaW9zeXNfbWFwICpt YXAsIHZvaWQgKnZhZGRyKQ0KPiAgIAltYXAtPmlzX2lvbWVtID0gZmFsc2U7DQo+ICAgfQ0K PiAgIA0KPiArLyoqDQo+ICsgKiBJT1NZU19NQVBfSU5JVF9PRkZTRVQgLSBJbml0aWFsaXpl cyBzdHJ1Y3QgaW9zeXNfbWFwIGZyb20gYW5vdGhlciBpb3N5c19tYXANCj4gKyAqIEBtYXBf OglUaGUgZG1hLWJ1ZiBtYXBwaW5nIHN0cnVjdHVyZSB0byBjb3B5IGZyb20NCj4gKyAqIEBv ZmZzZXRfOglPZmZzZXQgdG8gYWRkIHRvIHRoZSBvdGhlciBtYXBwaW5nDQo+ICsgKg0KPiAr ICogSW5pdGlhbGl6ZXMgYSBuZXcgaW9zeXNfbWFwIHN0cnVjdCBiYXNlZCBvbiBhbm90aGVy IHBhc3NlZCBhcyBhcmd1bWVudC4gSXQNCj4gKyAqIGRvZXMgYSBzaGFsbG93IGNvcHkgb2Yg dGhlIHN0cnVjdCBzbyBpdCdzIHBvc3NpYmxlIHRvIHVwZGF0ZSB0aGUgYmFjayBzdG9yYWdl DQo+ICsgKiB3aXRob3V0IGNoYW5naW5nIHdoZXJlIHRoZSBvcmlnaW5hbCBtYXAgcG9pbnRz IHRvLiBJdCBpcyB0aGUgZXF1aXZhbGVudCBvZg0KPiArICogZG9pbmc6DQo+ICsgKg0KPiAr ICogLi4gY29kZS1ibG9jazogYw0KPiArICoNCj4gKyAqCWlvc3lzX21hcCBtYXAgPSBvdGhl cl9tYXA7DQo+ICsgKglpb3N5c19tYXBfaW5jcigmbWFwLCAmb2Zmc2V0KTsNCj4gKyAqDQo+ ICsgKiBFeGFtcGxlIHVzYWdlOg0KPiArICoNCj4gKyAqIC4uIGNvZGUtYmxvY2s6IGMNCj4g KyAqDQo+ICsgKgl2b2lkIGZvbyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpb3N5c19t YXAgKmJhc2VfbWFwKQ0KPiArICoJew0KPiArICoJCS4uLg0KPiArICoJCXN0cnVjdCBpb3N5 c19tYXAgbWFwID0gSU9TWVNfTUFQX0lOSVRfT0ZGU0VUKGJhc2VfbWFwLCBGSUVMRF9PRkZT RVQpOw0KPiArICoJCS4uLg0KPiArICoJfQ0KPiArICoNCj4gKyAqIFRoZSBhZHZhbnRhZ2Ug b2YgdXNpbmcgdGhlIGluaXRpYWxpemVyIG92ZXIganVzdCBpbmNyZWFzaW5nIHRoZSBvZmZz ZXQgd2l0aA0KPiArICogYGBpb3N5c19tYXBfaW5jcigpYGAgbGlrZSBhYm92ZSBpcyB0aGF0 IHRoZSBuZXcgbWFwIHdpbGwgYWx3YXlzIHBvaW50IHRvIHRoZQ0KPiArICogcmlnaHQgcGxh Y2Ugb2YgdGhlIGJ1ZmZlciBkdXJpbmcgIGl0cyBzY29wZS4gSXQgcmVkdWNlcyB0aGUgcmlz ayBvZiB1cGRhdGluZw0KPiArICogdGhlIHdyb25nIHBhcnQgb2YgdGhlIGJ1ZmZlciBhbmQg aGF2aW5nIG5vIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdGhhdC4gSWYNCj4gKyAqIHRoZSBh c3NpZ25tZW50IHRvIElPU1lTX01BUF9JTklUX09GRlNFVCgpIGlzIGZvcmdvdHRlbiwgdGhl IGNvbXBpbGVyIGNhbiB3YXJuDQo+ICsgKiB1c2luZyBhIHVuaW5pdGlhbGl6ZWQgdmFyaWFi bGUuDQo+ICsgKi8NCj4gKyNkZWZpbmUgSU9TWVNfTUFQX0lOSVRfT0ZGU0VUKG1hcF8sIG9m ZnNldF8pCShzdHJ1Y3QgaW9zeXNfbWFwKQlcDQo+ICsJewkJCQkJCQkJXA0KPiArCQkudmFk ZHIgPSAobWFwXyktPnZhZGRyICsgKG9mZnNldF8pLAkJCVwNCj4gKwkJLmlzX2lvbWVtID0g KG1hcF8pLT5pc19pb21lbSwJCQkJXA0KPiArCX0NCg0KSSBhbHJlYWR5IG5haydlZCB0aGlz IG1hY3JvLiBUaGlzIHdvcmtzIGJlY2F1c2Ugb2YgdGhlIGFsaWFzaW5nIHJ1bGVzIA0Kd2l0 aGluIHRoZSB1bmlvbiBhbmQgdGhlIGZhY3QgdGhhdCB0aGVyZSBhcmUgb25seSBwbGFpbiBw b2ludGVycy4gQnV0IA0KdGhpcyBpcyBmcmFnaWxlLiBEbyBhbnl0aGluZyBtb3JlIGNvbXBs aWNhdGVkIGFuZCBpdCBicmVha3MuIFRoZXJlJ3Mgbm90IA0KZXZlbiBhIHRlc3QgdGhhdCB3 b3VsZCB0ZWxsIHlvdSB0aGF0IGl0IGZhaWxlZC4NCg0KVGhlcmVmb3JlLCBzdHJ1Y3QgaW9z eXNfbWFwIHNob3VsZCBvbmx5IGJlIGluaXRpYWxpemVkIGJ5IHRoZSBjb2RlIHRoYXQgDQpj cmVhdGVzIHRoZSBzdG9yZWQgcG9pbnRlci4NCg0KSG93ZXZlciwgeW91IHdvbid0IG5lZWQg dGhlIG9mZnNldCdlZCBpb3N5c19tYXAgYmVjYXVzZSB0aGUgDQptZW1jcHlfdG8vZnJvbSBo ZWxwZXJzIG5vdyBoYXZlIHRoZSBvZmZzZXQgcGFyYW1ldGVyLg0KDQoNCg0KPiArDQo+ICAg LyoqDQo+ICAgICogaW9zeXNfbWFwX3NldF92YWRkcl9pb21lbSAtIFNldHMgYSBpb3N5cyBt YXBwaW5nIHN0cnVjdHVyZSB0byBhbiBhZGRyZXNzIGluIEkvTyBtZW1vcnkNCj4gICAgKiBA bWFwOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gQEAgLTIyMCw3ICsyNjAsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgaW9zeXNfbWFwX2NsZWFyKHN0cnVjdCBpb3N5c19tYXAgKm1h cCkNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiBpb3N5c19tYXBfbWVtY3B5X3RvX29m ZnNldCAtIE1lbWNweSBpbnRvIG9mZnNldCBvZiBpb3N5c19tYXANCj4gKyAqIGlvc3lzX21h cF9tZW1jcHlfdG8gLSBNZW1jcHkgaW50byBpb3N5c19tYXANCg0KVGhhdCdzIHRoZSBmaXgg Zm9yIHRoZSBvdGhlciBwYXRjaC4gOikNCg0KPiAgICAqIEBkc3Q6CVRoZSBpb3N5c19tYXAg c3RydWN0dXJlDQo+ICAgICogQGRzdF9vZmZzZXQ6CVRoZSBvZmZzZXQgZnJvbSB3aGljaCB0 byBjb3B5DQo+ICAgICogQHNyYzoJVGhlIHNvdXJjZSBidWZmZXINCj4gQEAgLTIzOSw2ICsy NzksMjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGlvc3lzX21hcF9tZW1jcHlfdG8oc3RydWN0 IGlvc3lzX21hcCAqZHN0LCBzaXplX3QgZHN0X29mZnNldCwNCj4gICAJCW1lbWNweShkc3Qt PnZhZGRyICsgZHN0X29mZnNldCwgc3JjLCBsZW4pOw0KPiAgIH0NCj4gICANCj4gKy8qKg0K PiArICogaW9zeXNfbWFwX21lbWNweV9mcm9tIC0gTWVtY3B5IGZyb20gaW9zeXNfbWFwIGlu dG8gc3lzdGVtIG1lbW9yeQ0KPiArICogQGRzdDoJRGVzdGluYXRpb24gaW4gc3lzdGVtIG1l bW9yeQ0KPiArICogQHNyYzoJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzcmNf b2Zmc2V0OglUaGUgb2Zmc2V0IGZyb20gd2hpY2ggdG8gY29weQ0KPiArICogQGxlbjoJVGhl IG51bWJlciBvZiBieXRlIGluIHNyYw0KPiArICoNCj4gKyAqIENvcGllcyBkYXRhIGZyb20g YSBpb3N5c19tYXAgd2l0aCBhbiBvZmZzZXQuIFRoZSBkZXN0IGJ1ZmZlciBpcyBpbg0KPiAr ICogc3lzdGVtIG1lbW9yeS4gRGVwZW5kaW5nIG9uIHRoZSBtYXBwaW5nIGxvY2F0aW9uLCB0 aGUgaGVscGVyIHBpY2tzIHRoZQ0KPiArICogY29ycmVjdCBtZXRob2Qgb2YgYWNjZXNzaW5n IHRoZSBtZW1vcnkuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19tYXBf bWVtY3B5X2Zyb20odm9pZCAqZHN0LCBjb25zdCBzdHJ1Y3QgaW9zeXNfbWFwICpzcmMsDQo+ ICsJCQkJCSBzaXplX3Qgc3JjX29mZnNldCwgc2l6ZV90IGxlbikNCj4gK3sNCj4gKwlpZiAo c3JjLT5pc19pb21lbSkNCj4gKwkJbWVtY3B5X2Zyb21pbyhkc3QsIHNyYy0+dmFkZHJfaW9t ZW0gKyBzcmNfb2Zmc2V0LCBsZW4pOw0KPiArCWVsc2UNCj4gKwkJbWVtY3B5KGRzdCwgc3Jj LT52YWRkciArIHNyY19vZmZzZXQsIGxlbik7DQo+ICt9DQo+ICsNCj4gICAvKioNCj4gICAg KiBpb3N5c19tYXBfaW5jciAtIEluY3JlbWVudHMgdGhlIGFkZHJlc3Mgc3RvcmVkIGluIGEg aW9zeXMgbWFwcGluZw0KPiAgICAqIEBtYXA6CVRoZSBpb3N5c19tYXAgc3RydWN0dXJlDQo+ IEBAIC0yNTUsNCArMzE1LDk2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19tYXBfaW5j cihzdHJ1Y3QgaW9zeXNfbWFwICptYXAsIHNpemVfdCBpbmNyKQ0KPiAgIAkJbWFwLT52YWRk ciArPSBpbmNyOw0KPiAgIH0NCj4gICANCj4gKy8qKg0KPiArICogaW9zeXNfbWFwX21lbXNl dCAtIE1lbXNldCBpb3N5c19tYXANCj4gKyAqIEBkc3Q6CVRoZSBpb3N5c19tYXAgc3RydWN0 dXJlDQo+ICsgKiBAb2Zmc2V0OglPZmZzZXQgZnJvbSBkc3Qgd2hlcmUgdG8gc3RhcnQgc2V0 dGluZyB2YWx1ZQ0KPiArICogQHZhbHVlOglUaGUgdmFsdWUgdG8gc2V0DQo+ICsgKiBAbGVu OglUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNldCBpbiBkc3QNCj4gKyAqDQo+ICsgKiBTZXQg dmFsdWUgaW4gaW9zeXNfbWFwLiBEZXBlbmRpbmcgb24gdGhlIGJ1ZmZlcidzIGxvY2F0aW9u LCB0aGUgaGVscGVyDQo+ICsgKiBwaWNrcyB0aGUgY29ycmVjdCBtZXRob2Qgb2YgYWNjZXNz aW5nIHRoZSBtZW1vcnkuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19t YXBfbWVtc2V0KHN0cnVjdCBpb3N5c19tYXAgKmRzdCwgc2l6ZV90IG9mZnNldCwNCj4gKwkJ CQkgICAgaW50IHZhbHVlLCBzaXplX3QgbGVuKQ0KPiArew0KPiArCWlmIChkc3QtPmlzX2lv bWVtKQ0KPiArCQltZW1zZXRfaW8oZHN0LT52YWRkcl9pb21lbSArIG9mZnNldCwgdmFsdWUs IGxlbik7DQo+ICsJZWxzZQ0KPiArCQltZW1zZXQoZHN0LT52YWRkciArIG9mZnNldCwgdmFs dWUsIGxlbik7DQo+ICt9DQoNCkkndmUgZm91bmQgdGhhdCBtZW1zZXQzMigpIGFuZCBtZW1z ZXQ2NCgpIGNhbiBzaWduaWZpY2FudGx5IGZhc3Rlci4gSWYgDQpldmVyIG5lZWRlZCwgd2Ug Y2FuIGFkZCB2YXJpYW50cyBoZXJlIGFzIHdlbGwuDQoNCj4gKw0KPiArLyoqDQo+ICsgKiBp b3N5c19tYXBfcmQgLSBSZWFkIGEgQy10eXBlIHZhbHVlIGZyb20gdGhlIGlvc3lzX21hcA0K PiArICoNCj4gKyAqIEBtYXBfXzoJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBv ZmZzZXRfXzoJVGhlIG9mZnNldCBmcm9tIHdoaWNoIHRvIHJlYWQNCj4gKyAqIEB0eXBlX186 CVR5cGUgb2YgdGhlIHZhbHVlIGJlaW5nIHJlYWQNCj4gKyAqDQo+ICsgKiBSZWFkIGEgQyB0 eXBlIHZhbHVlIGZyb20gaW9zeXNfbWFwLCBoYW5kbGluZyBwb3NzaWJsZSB1bi1hbGlnbmVk IGFjY2Vzc2VzIHRvDQo+ICsgKiB0aGUgbWFwcGluZy4NCj4gKyAqDQo+ICsgKiBSZXR1cm5z Og0KPiArICogVGhlIHZhbHVlIHJlYWQgZnJvbSB0aGUgbWFwcGluZy4NCj4gKyAqLw0KPiAr I2RlZmluZSBpb3N5c19tYXBfcmQobWFwX18sIG9mZnNldF9fLCB0eXBlX18pICh7CQkJXA0K PiArCXR5cGVfXyB2YWw7CQkJCQkJCVwNCj4gKwlpb3N5c19tYXBfbWVtY3B5X2Zyb20oJnZh bCwgbWFwX18sIG9mZnNldF9fLCBzaXplb2YodmFsKSk7CVwNCj4gKwl2YWw7CQkJCQkJCQlc DQo+ICt9KQ0KPiArDQo+ICsvKioNCj4gKyAqIGlvc3lzX21hcF93ciAtIFdyaXRlIGEgQy10 eXBlIHZhbHVlIHRvIHRoZSBpb3N5c19tYXANCj4gKyAqDQo+ICsgKiBAbWFwX186CVRoZSBp b3N5c19tYXAgc3RydWN0dXJlDQo+ICsgKiBAb2Zmc2V0X186CVRoZSBvZmZzZXQgZnJvbSB0 aGUgbWFwcGluZyB0byB3cml0ZSB0bw0KPiArICogQHR5cGVfXzoJVHlwZSBvZiB0aGUgdmFs dWUgYmVpbmcgd3JpdHRlbg0KPiArICogQHZhbF9fOglWYWx1ZSB0byB3cml0ZQ0KPiArICoN Cj4gKyAqIFdyaXRlIGEgQy10eXBlIHZhbHVlIHRvIHRoZSBpb3N5c19tYXAsIGhhbmRsaW5n IHBvc3NpYmxlIHVuLWFsaWduZWQgYWNjZXNzZXMNCj4gKyAqIHRvIHRoZSBtYXBwaW5nLg0K PiArICovDQo+ICsjZGVmaW5lIGlvc3lzX21hcF93cihtYXBfXywgb2Zmc2V0X18sIHR5cGVf XywgdmFsX18pICh7CQkJXA0KPiArCXR5cGVfXyB2YWwgPSAodmFsX18pOwkJCQkJCVwNCj4g Kwlpb3N5c19tYXBfbWVtY3B5X3RvKG1hcF9fLCBvZmZzZXRfXywgJnZhbCwgc2l6ZW9mKHZh bCkpOwlcDQo+ICt9KQ0KPiArDQo+ICsvKioNCj4gKyAqIGlvc3lzX21hcF9yZF9maWVsZCAt IFJlYWQgYSBtZW1iZXIgZnJvbSBhIHN0cnVjdCBpbiB0aGUgaW9zeXNfbWFwDQo+ICsgKg0K PiArICogQG1hcF9fOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzdHJ1Y3Rf dHlwZV9fOglUaGUgc3RydWN0IGRlc2NyaWJpbmcgdGhlIGxheW91dCBvZiB0aGUgbWFwcGlu Zw0KPiArICogQGZpZWxkX186CQlNZW1iZXIgb2YgdGhlIHN0cnVjdCB0byByZWFkDQo+ICsg Kg0KPiArICogUmVhZCBhIHZhbHVlIGZyb20gaW9zeXNfbWFwIGFzc3VtaW5nIGl0cyBsYXlv dXQgaXMgZGVzY3JpYmVkIGJ5IGEgc3RydWN0LA0KPiArICogcGFzc2VkIGFzIGFyZ3VtZW50 LiBUaGUgb2Zmc2V0IGFuZCBzaXplIHRvIHRoZSBzdHJ1Y3QgbWVtYmVyIGlzIGNhbGN1bGF0 ZWQNCj4gKyAqIGFuZCBwb3NzaWJsZSB1bi1hbGlnbmVkIGFjY2Vzc2VzIHRvIHRoZSBtYXBw aW5nIGhhbmRsZWQuDQo+ICsgKg0KPiArICogUmV0dXJuczoNCj4gKyAqIFRoZSB2YWx1ZSBy ZWFkIGZyb20gdGhlIG1hcHBpbmcuDQo+ICsgKi8NCj4gKyNkZWZpbmUgaW9zeXNfbWFwX3Jk X2ZpZWxkKG1hcF9fLCBzdHJ1Y3RfdHlwZV9fLCBmaWVsZF9fKSAoewkJCVwNCg0KVGhpcyBt YWNybyBzaG91bGQgYWxzbyBoYXZlIGFuIG9mZnNldF9fIHBhcmFtZXRlciBhbmQgZm9yd2Fy ZCBpdCB0byANCmlvc3lzX21hcF9yZC4NCg0KPiArCXN0cnVjdF90eXBlX18gKnM7CQkJCQkJ CVwNCj4gKwlpb3N5c19tYXBfcmQobWFwX18sIG9mZnNldG9mKHN0cnVjdF90eXBlX18sIGZp ZWxkX18pLAkJCVwNCj4gKwkJICAgICB0eXBlb2Yocy0+ZmllbGRfXykpOwkJCQkJXA0KPiAr fSkNCj4gKw0KPiArLyoqDQo+ICsgKiBpb3N5c19tYXBfd3JfZmllbGQgLSBXcml0ZSB0byBh IG1lbWJlciBvZiBhIHN0cnVjdCBpbiB0aGUgaW9zeXNfbWFwDQo+ICsgKg0KPiArICogQG1h cF9fOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzdHJ1Y3RfdHlwZV9fOglU aGUgc3RydWN0IGRlc2NyaWJpbmcgdGhlIGxheW91dCBvZiB0aGUgbWFwcGluZw0KPiArICog QGZpZWxkX186CQlNZW1iZXIgb2YgdGhlIHN0cnVjdCB0byByZWFkDQo+ICsgKiBAdmFsX186 CQlWYWx1ZSB0byB3cml0ZQ0KPiArICoNCj4gKyAqIFdyaXRlIGEgdmFsdWUgdG8gdGhlIGlv c3lzX21hcCBhc3N1bWluZyBpdHMgbGF5b3V0IGlzIGRlc2NyaWJlZCBieSBhIHN0cnVjdCwN Cj4gKyAqIHBhc3NlZCBhcyBhcmd1bWVudC4gVGhlIG9mZnNldCBhbmQgc2l6ZSB0byB0aGUg c3RydWN0IG1lbWJlciBpcyBjYWxjdWxhdGVkDQo+ICsgKiBhbmQgcG9zc2libGUgdW4tYWxp Z25lZCBhY2Nlc3NlcyB0byB0aGUgbWFwcGluZyBoYW5kbGVkLg0KPiArICovDQo+ICsjZGVm aW5lIGlvc3lzX21hcF93cl9maWVsZChtYXBfXywgc3RydWN0X3R5cGVfXywgZmllbGRfXywg dmFsX18pICh7CQlcDQoNCkFuZCB0aGlzIG9uZSBzaG91bGQgYWxzbyBoYXZlIGFuIG9mZnNl dF9fIHBhcmFtZXRlci4NCg0KQmVzdCByZWdhcmRzDQpUaG9tYXMNCg0KPiArCXN0cnVjdF90 eXBlX18gKnM7CQkJCQkJCVwNCj4gKwlpb3N5c19tYXBfd3IobWFwX18sIG9mZnNldG9mKHN0 cnVjdF90eXBlX18sIGZpZWxkX18pLAkJCVwNCj4gKwkJICAgICB0eXBlb2Yocy0+ZmllbGRf XyksIHZhbF9fKTsJCQkJXA0KPiArfSkNCj4gKw0KPiAgICNlbmRpZiAvKiBfX0lPU1lTX01B UF9IX18gKi8NCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERl dmVsb3Blcg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxk c3RyLiA1LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJu YmVyZykNCkdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------0I6IFackrZgWOt9wWijvIv8D-- --------------EJHe7aT1MX8MACmRfxSbCbA0 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmH9eRQFAwAAAAAACgkQlh/E3EQov+Dh qRAAsOzpwO2wZ2Abk4HUpU2xkepbg75KwpMltmrpW09NuiED9EXCBYkkskEHT6Hla4YPakzire4H ncaFahaeupLHEOlYQ0Cm7AddEhQSF5JGBCyrPj4eWw7Tx8zdZRdaIm2kVNnERHx60XULK7p4txuL 7BLe/oYPSkCS5MJMcqULvjDSrZpmkb5CrgCni4+qezGEg1FGsmQ3wvXInQeNtlgNFfXaMfrGKRHE r0HkSUCjc3LNNvNBmljvrdM+Uv4i58bFX0MsmARRSqeHt/LsiswLgtDt8fmOEd3EC90pjuyZbmjG QeDkGsR32cjPRZWKz7u+gIGE8AVQHU5S0dFfybR/YLn6+Zeo8q4a8LdZ94cLRz7RRfwYiA2qiMHZ IdY9+IVd660y2VEr0s1Od/asfCjg2lkDGzuleah2na3XSR2okgWV6QPZW6RwAC6qdxkemGOzSDZq NdimYP19cXogiEatTrAcf2Vf60oUEfg5zafu1kPvUiewr+9+i744GgmFe9oFdBQ3qVF+9cO+q9Zd a9Ifi68p7cguSqeAEsQ+cbU/B+3JmaKfC4VU7Dewpxk00l6KUUoJV5GAoqPHZ1xIgwTO1QjQgFwK 0CjPkHh6Hdi+ksyNTwgiqXBFlXEgrXK3XAttiXk7QQnIa86WV/FFAyKjhNrxyUy/M2mIKKPDfCCb CZU= =X401 -----END PGP SIGNATURE----- --------------EJHe7aT1MX8MACmRfxSbCbA0-- 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 43C86C433FE for ; Fri, 4 Feb 2022 19:06:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B8F4610E918; Fri, 4 Feb 2022 19:06:00 +0000 (UTC) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id D25E610E4E4; Fri, 4 Feb 2022 19:05:58 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 704EF210EA; Fri, 4 Feb 2022 19:05:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1644001557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wLMIIg32wAYjSuQhX9Z3Uuba6juaB9dX8JNgITecp6Y=; b=RzbhhYtxQ9I9i3ZAt/YsJaoAqRALwNz9AwhDfw3McgNHU9XdZXamUss7SKgBCqf4py9a6B NQ0BJxJ4aJFcquL8syMy/qURE1d5w/+1WZ2IWTNlBk3N1R3/TaQvP3wH+48Y4AMpyPd/F5 qWmRF+niUOZFtojFMMKxKTa2+OfEHS0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1644001557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wLMIIg32wAYjSuQhX9Z3Uuba6juaB9dX8JNgITecp6Y=; b=YHwvEzqIo93RLC0ADdqgFpKhk4dz3WVgRme3kVFv0S8Hk4qSX8NdCv2vRasBEplShu2P9E KS3EpTsb3apJgXCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2A13013ADE; Fri, 4 Feb 2022 19:05:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Oi1+CBV5/WEaAwAAMHmgww (envelope-from ); Fri, 04 Feb 2022 19:05:57 +0000 Message-ID: <515668f4-9faf-ed8e-385e-7020eed38b18@suse.de> Date: Fri, 4 Feb 2022 20:05:56 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH 03/19] iosys-map: Add a few more helpers Content-Language: en-US To: Lucas De Marchi , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20220204174436.830121-1-lucas.demarchi@intel.com> <20220204174436.830121-4-lucas.demarchi@intel.com> From: Thomas Zimmermann In-Reply-To: <20220204174436.830121-4-lucas.demarchi@intel.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------EJHe7aT1MX8MACmRfxSbCbA0" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Matthew Brost , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , linux-kernel@vger.kernel.org, Daniele Ceraolo Spurio , =?UTF-8?Q?Christian_K=c3=b6nig?= , John Harrison Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------EJHe7aT1MX8MACmRfxSbCbA0 Content-Type: multipart/mixed; boundary="------------0I6IFackrZgWOt9wWijvIv8D"; protected-headers="v1" From: Thomas Zimmermann To: Lucas De Marchi , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: John Harrison , Matthew Brost , Daniele Ceraolo Spurio , Matt Roper , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , =?UTF-8?Q?Christian_K=c3=b6nig?= , Sumit Semwal , linux-kernel@vger.kernel.org Message-ID: <515668f4-9faf-ed8e-385e-7020eed38b18@suse.de> Subject: Re: [PATCH 03/19] iosys-map: Add a few more helpers References: <20220204174436.830121-1-lucas.demarchi@intel.com> <20220204174436.830121-4-lucas.demarchi@intel.com> In-Reply-To: <20220204174436.830121-4-lucas.demarchi@intel.com> --------------0I6IFackrZgWOt9wWijvIv8D Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkNCg0KQW0gMDQuMDIuMjIgdW0gMTg6NDQgc2NocmllYiBMdWNhcyBEZSBNYXJjaGk6DQo+ IEZpcnN0IHRoZSBzaW1wbGVzdCBvbmVzOg0KPiANCj4gCS0gaW9zeXNfbWFwX21lbXNldCgp OiB3aGVuIGFic3RyYWN0aW5nIHN5c3RlbSBhbmQgSS9PIG1lbW9yeSwNCj4gCSAganVzdCBs aWtlIHRoZSBtZW1jcHkoKSB1c2UgY2FzZSwgbWVtc2V0KCkgYWxzbyBoYXMgZGVkaWNhdGVk DQo+IAkgIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgZm9yIHVzaW5nIElPIG1lbW9yeS4NCj4g CS0gaW9zeXNfbWFwX21lbWNweV9mcm9tKCk6IHdlIG1heSBuZWVkIHRvIGNvcHkgZGF0YSBm cm9tIEkvTw0KPiAJICBtZW1vcnksIG5vdCBvbmx5IHRvLg0KPiANCj4gSW4gY2VydGFpbiBz aXR1YXRpb25zIGl0J3MgdXNlZnVsIHRvIGJlIGFibGUgdG8gcmVhZCBvciB3cml0ZSB0byBh bg0KPiBvZmZzZXQgdGhhdCBpcyBjYWxjdWxhdGVkIGJ5IGhhdmluZyB0aGUgbWVtb3J5IGxh eW91dCBnaXZlbiBieSBhIHN0cnVjdA0KPiBkZWNsYXJhdGlvbi4gVXN1YWxseSB3ZSBhcmUg Z29pbmcgdG8gcmVhZC93cml0ZSBhIHU4LCB1MTYsIHUzMiBvciB1NjQuDQo+IA0KPiBBcyBh IHByZS1yZXF1aXNpdGUgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiwgYWRkIGlvc3lzX21hcF9t ZW1jcHlfZnJvbSgpDQo+IHRvIGJlIHRoZSBlcXVpdmFsZW50IG9mIGlvc3lzX21hcF9tZW1j cHlfdG8oKSwgYnV0IGluIHRoZSBvdGhlcg0KPiBkaXJlY3Rpb24uIFRoZW4gYWRkIDIgcGFp cnMgb2YgbWFjcm9zOg0KPiANCj4gCS0gaW9zeXNfbWFwX3JkKCkgLyBpb3N5c19tYXBfd3Io KQ0KPiAJLSBpb3N5c19tYXBfcmRfZmllbGQoKSAvIGlvc3lzX21hcF93cl9maWVsZCgpDQo+ IA0KPiBUaGUgZmlyc3QgcGFpciB0YWtlcyB0aGUgQy10eXBlIGFuZCBvZmZzZXQgdG8gcmVh ZC93cml0ZS4gVGhlIHNlY29uZA0KPiBwYWlyIHVzZXMgYSBzdHJ1Y3QgZGVzY3JpYmluZyB0 aGUgbGF5b3V0IG9mIHRoZSBtYXBwaW5nIGluIG9yZGVyIHRvDQo+IGNhbGN1bGF0ZSB0aGUg b2Zmc2V0IGFuZCBzaXplIGJlaW5nIHJlYWQvd3JpdHRlbi4NCj4gDQo+IFdlIGNvdWxkIHVz ZSByZWFkYiwgcmVhZHcsIHJlYWRsLCByZWFkcSBhbmQgdGhlIHdyaXRlKiBjb3VudGVycGFy dHMsDQo+IGhvd2V2ZXIgZHVlIHRvIGFsaWdubWVudCBpc3N1ZXMgdGhpcyBtYXkgbm90IHdv cmsgb24gYWxsIGFyY2hpdGVjdHVyZXMuDQo+IElmIGFsaWdubWVudCBuZWVkcyB0byBiZSBj aGVja2VkIHRvIGNhbGwgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBpdCdzIG5vdA0KPiBwb3NzaWJs ZSB0byBkZWNpZGUgYXQgY29tcGlsZS10aW1lIHdoaWNoIGZ1bmN0aW9uIHRvIGNhbGw6IHNv IGp1c3QgbGVhdmUNCj4gdGhlIGRlY2lzaW9uIHRvIHRoZSBtZW1jcHkgZnVuY3Rpb24gdGhh dCB3aWxsIGRvIGV4YWN0bHkgdGhhdC4NCj4gDQo+IEZpbmFsbHksIGluIG9yZGVyIHRvIHVz ZSB0aGUgYWJvdmUgbWFjcm9zIHdpdGggYSBtYXAgZGVyaXZlZCBmcm9tDQo+IGFub3RoZXIs IGFkZCBhbm90aGVyIGluaXRpYWxpemVyOiBJT1NZU19NQVBfSU5JVF9PRkZTRVQoKS4NCj4g DQo+IENjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPg0KPiBDYzog Q2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogVGhv bWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+DQo+IENjOiBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwu b3JnDQo+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlA aW50ZWwuY29tPg0KPiAtLS0NCj4gICBpbmNsdWRlL2xpbnV4L2lvc3lzLW1hcC5oIHwgMTU0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ICAgMSBmaWxlIGNo YW5nZWQsIDE1MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9pb3N5cy1tYXAuaCBiL2luY2x1ZGUvbGludXgvaW9zeXMt bWFwLmgNCj4gaW5kZXggZWRkN2ZhM2JlOWU5Li45NmY4YjYxYWM2ZmIgMTAwNjQ0DQo+IC0t LSBhL2luY2x1ZGUvbGludXgvaW9zeXMtbWFwLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9p b3N5cy1tYXAuaA0KPiBAQCAtNiw2ICs2LDcgQEANCj4gICAjaWZuZGVmIF9fSU9TWVNfTUFQ X0hfXw0KPiAgICNkZWZpbmUgX19JT1NZU19NQVBfSF9fDQo+ICAgDQo+ICsjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+ICAgI2luY2x1 ZGUgPGxpbnV4L3N0cmluZy5oPg0KPiAgIA0KPiBAQCAtMTMzLDYgKzEzNCw0NSBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgaW9zeXNfbWFwX3NldF92YWRkcihzdHJ1Y3QgaW9zeXNfbWFwICpt YXAsIHZvaWQgKnZhZGRyKQ0KPiAgIAltYXAtPmlzX2lvbWVtID0gZmFsc2U7DQo+ICAgfQ0K PiAgIA0KPiArLyoqDQo+ICsgKiBJT1NZU19NQVBfSU5JVF9PRkZTRVQgLSBJbml0aWFsaXpl cyBzdHJ1Y3QgaW9zeXNfbWFwIGZyb20gYW5vdGhlciBpb3N5c19tYXANCj4gKyAqIEBtYXBf OglUaGUgZG1hLWJ1ZiBtYXBwaW5nIHN0cnVjdHVyZSB0byBjb3B5IGZyb20NCj4gKyAqIEBv ZmZzZXRfOglPZmZzZXQgdG8gYWRkIHRvIHRoZSBvdGhlciBtYXBwaW5nDQo+ICsgKg0KPiAr ICogSW5pdGlhbGl6ZXMgYSBuZXcgaW9zeXNfbWFwIHN0cnVjdCBiYXNlZCBvbiBhbm90aGVy IHBhc3NlZCBhcyBhcmd1bWVudC4gSXQNCj4gKyAqIGRvZXMgYSBzaGFsbG93IGNvcHkgb2Yg dGhlIHN0cnVjdCBzbyBpdCdzIHBvc3NpYmxlIHRvIHVwZGF0ZSB0aGUgYmFjayBzdG9yYWdl DQo+ICsgKiB3aXRob3V0IGNoYW5naW5nIHdoZXJlIHRoZSBvcmlnaW5hbCBtYXAgcG9pbnRz IHRvLiBJdCBpcyB0aGUgZXF1aXZhbGVudCBvZg0KPiArICogZG9pbmc6DQo+ICsgKg0KPiAr ICogLi4gY29kZS1ibG9jazogYw0KPiArICoNCj4gKyAqCWlvc3lzX21hcCBtYXAgPSBvdGhl cl9tYXA7DQo+ICsgKglpb3N5c19tYXBfaW5jcigmbWFwLCAmb2Zmc2V0KTsNCj4gKyAqDQo+ ICsgKiBFeGFtcGxlIHVzYWdlOg0KPiArICoNCj4gKyAqIC4uIGNvZGUtYmxvY2s6IGMNCj4g KyAqDQo+ICsgKgl2b2lkIGZvbyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpb3N5c19t YXAgKmJhc2VfbWFwKQ0KPiArICoJew0KPiArICoJCS4uLg0KPiArICoJCXN0cnVjdCBpb3N5 c19tYXAgbWFwID0gSU9TWVNfTUFQX0lOSVRfT0ZGU0VUKGJhc2VfbWFwLCBGSUVMRF9PRkZT RVQpOw0KPiArICoJCS4uLg0KPiArICoJfQ0KPiArICoNCj4gKyAqIFRoZSBhZHZhbnRhZ2Ug b2YgdXNpbmcgdGhlIGluaXRpYWxpemVyIG92ZXIganVzdCBpbmNyZWFzaW5nIHRoZSBvZmZz ZXQgd2l0aA0KPiArICogYGBpb3N5c19tYXBfaW5jcigpYGAgbGlrZSBhYm92ZSBpcyB0aGF0 IHRoZSBuZXcgbWFwIHdpbGwgYWx3YXlzIHBvaW50IHRvIHRoZQ0KPiArICogcmlnaHQgcGxh Y2Ugb2YgdGhlIGJ1ZmZlciBkdXJpbmcgIGl0cyBzY29wZS4gSXQgcmVkdWNlcyB0aGUgcmlz ayBvZiB1cGRhdGluZw0KPiArICogdGhlIHdyb25nIHBhcnQgb2YgdGhlIGJ1ZmZlciBhbmQg aGF2aW5nIG5vIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdGhhdC4gSWYNCj4gKyAqIHRoZSBh c3NpZ25tZW50IHRvIElPU1lTX01BUF9JTklUX09GRlNFVCgpIGlzIGZvcmdvdHRlbiwgdGhl IGNvbXBpbGVyIGNhbiB3YXJuDQo+ICsgKiB1c2luZyBhIHVuaW5pdGlhbGl6ZWQgdmFyaWFi bGUuDQo+ICsgKi8NCj4gKyNkZWZpbmUgSU9TWVNfTUFQX0lOSVRfT0ZGU0VUKG1hcF8sIG9m ZnNldF8pCShzdHJ1Y3QgaW9zeXNfbWFwKQlcDQo+ICsJewkJCQkJCQkJXA0KPiArCQkudmFk ZHIgPSAobWFwXyktPnZhZGRyICsgKG9mZnNldF8pLAkJCVwNCj4gKwkJLmlzX2lvbWVtID0g KG1hcF8pLT5pc19pb21lbSwJCQkJXA0KPiArCX0NCg0KSSBhbHJlYWR5IG5haydlZCB0aGlz IG1hY3JvLiBUaGlzIHdvcmtzIGJlY2F1c2Ugb2YgdGhlIGFsaWFzaW5nIHJ1bGVzIA0Kd2l0 aGluIHRoZSB1bmlvbiBhbmQgdGhlIGZhY3QgdGhhdCB0aGVyZSBhcmUgb25seSBwbGFpbiBw b2ludGVycy4gQnV0IA0KdGhpcyBpcyBmcmFnaWxlLiBEbyBhbnl0aGluZyBtb3JlIGNvbXBs aWNhdGVkIGFuZCBpdCBicmVha3MuIFRoZXJlJ3Mgbm90IA0KZXZlbiBhIHRlc3QgdGhhdCB3 b3VsZCB0ZWxsIHlvdSB0aGF0IGl0IGZhaWxlZC4NCg0KVGhlcmVmb3JlLCBzdHJ1Y3QgaW9z eXNfbWFwIHNob3VsZCBvbmx5IGJlIGluaXRpYWxpemVkIGJ5IHRoZSBjb2RlIHRoYXQgDQpj cmVhdGVzIHRoZSBzdG9yZWQgcG9pbnRlci4NCg0KSG93ZXZlciwgeW91IHdvbid0IG5lZWQg dGhlIG9mZnNldCdlZCBpb3N5c19tYXAgYmVjYXVzZSB0aGUgDQptZW1jcHlfdG8vZnJvbSBo ZWxwZXJzIG5vdyBoYXZlIHRoZSBvZmZzZXQgcGFyYW1ldGVyLg0KDQoNCg0KPiArDQo+ICAg LyoqDQo+ICAgICogaW9zeXNfbWFwX3NldF92YWRkcl9pb21lbSAtIFNldHMgYSBpb3N5cyBt YXBwaW5nIHN0cnVjdHVyZSB0byBhbiBhZGRyZXNzIGluIEkvTyBtZW1vcnkNCj4gICAgKiBA bWFwOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gQEAgLTIyMCw3ICsyNjAsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgaW9zeXNfbWFwX2NsZWFyKHN0cnVjdCBpb3N5c19tYXAgKm1h cCkNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiBpb3N5c19tYXBfbWVtY3B5X3RvX29m ZnNldCAtIE1lbWNweSBpbnRvIG9mZnNldCBvZiBpb3N5c19tYXANCj4gKyAqIGlvc3lzX21h cF9tZW1jcHlfdG8gLSBNZW1jcHkgaW50byBpb3N5c19tYXANCg0KVGhhdCdzIHRoZSBmaXgg Zm9yIHRoZSBvdGhlciBwYXRjaC4gOikNCg0KPiAgICAqIEBkc3Q6CVRoZSBpb3N5c19tYXAg c3RydWN0dXJlDQo+ICAgICogQGRzdF9vZmZzZXQ6CVRoZSBvZmZzZXQgZnJvbSB3aGljaCB0 byBjb3B5DQo+ICAgICogQHNyYzoJVGhlIHNvdXJjZSBidWZmZXINCj4gQEAgLTIzOSw2ICsy NzksMjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGlvc3lzX21hcF9tZW1jcHlfdG8oc3RydWN0 IGlvc3lzX21hcCAqZHN0LCBzaXplX3QgZHN0X29mZnNldCwNCj4gICAJCW1lbWNweShkc3Qt PnZhZGRyICsgZHN0X29mZnNldCwgc3JjLCBsZW4pOw0KPiAgIH0NCj4gICANCj4gKy8qKg0K PiArICogaW9zeXNfbWFwX21lbWNweV9mcm9tIC0gTWVtY3B5IGZyb20gaW9zeXNfbWFwIGlu dG8gc3lzdGVtIG1lbW9yeQ0KPiArICogQGRzdDoJRGVzdGluYXRpb24gaW4gc3lzdGVtIG1l bW9yeQ0KPiArICogQHNyYzoJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzcmNf b2Zmc2V0OglUaGUgb2Zmc2V0IGZyb20gd2hpY2ggdG8gY29weQ0KPiArICogQGxlbjoJVGhl IG51bWJlciBvZiBieXRlIGluIHNyYw0KPiArICoNCj4gKyAqIENvcGllcyBkYXRhIGZyb20g YSBpb3N5c19tYXAgd2l0aCBhbiBvZmZzZXQuIFRoZSBkZXN0IGJ1ZmZlciBpcyBpbg0KPiAr ICogc3lzdGVtIG1lbW9yeS4gRGVwZW5kaW5nIG9uIHRoZSBtYXBwaW5nIGxvY2F0aW9uLCB0 aGUgaGVscGVyIHBpY2tzIHRoZQ0KPiArICogY29ycmVjdCBtZXRob2Qgb2YgYWNjZXNzaW5n IHRoZSBtZW1vcnkuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19tYXBf bWVtY3B5X2Zyb20odm9pZCAqZHN0LCBjb25zdCBzdHJ1Y3QgaW9zeXNfbWFwICpzcmMsDQo+ ICsJCQkJCSBzaXplX3Qgc3JjX29mZnNldCwgc2l6ZV90IGxlbikNCj4gK3sNCj4gKwlpZiAo c3JjLT5pc19pb21lbSkNCj4gKwkJbWVtY3B5X2Zyb21pbyhkc3QsIHNyYy0+dmFkZHJfaW9t ZW0gKyBzcmNfb2Zmc2V0LCBsZW4pOw0KPiArCWVsc2UNCj4gKwkJbWVtY3B5KGRzdCwgc3Jj LT52YWRkciArIHNyY19vZmZzZXQsIGxlbik7DQo+ICt9DQo+ICsNCj4gICAvKioNCj4gICAg KiBpb3N5c19tYXBfaW5jciAtIEluY3JlbWVudHMgdGhlIGFkZHJlc3Mgc3RvcmVkIGluIGEg aW9zeXMgbWFwcGluZw0KPiAgICAqIEBtYXA6CVRoZSBpb3N5c19tYXAgc3RydWN0dXJlDQo+ IEBAIC0yNTUsNCArMzE1LDk2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19tYXBfaW5j cihzdHJ1Y3QgaW9zeXNfbWFwICptYXAsIHNpemVfdCBpbmNyKQ0KPiAgIAkJbWFwLT52YWRk ciArPSBpbmNyOw0KPiAgIH0NCj4gICANCj4gKy8qKg0KPiArICogaW9zeXNfbWFwX21lbXNl dCAtIE1lbXNldCBpb3N5c19tYXANCj4gKyAqIEBkc3Q6CVRoZSBpb3N5c19tYXAgc3RydWN0 dXJlDQo+ICsgKiBAb2Zmc2V0OglPZmZzZXQgZnJvbSBkc3Qgd2hlcmUgdG8gc3RhcnQgc2V0 dGluZyB2YWx1ZQ0KPiArICogQHZhbHVlOglUaGUgdmFsdWUgdG8gc2V0DQo+ICsgKiBAbGVu OglUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNldCBpbiBkc3QNCj4gKyAqDQo+ICsgKiBTZXQg dmFsdWUgaW4gaW9zeXNfbWFwLiBEZXBlbmRpbmcgb24gdGhlIGJ1ZmZlcidzIGxvY2F0aW9u LCB0aGUgaGVscGVyDQo+ICsgKiBwaWNrcyB0aGUgY29ycmVjdCBtZXRob2Qgb2YgYWNjZXNz aW5nIHRoZSBtZW1vcnkuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19t YXBfbWVtc2V0KHN0cnVjdCBpb3N5c19tYXAgKmRzdCwgc2l6ZV90IG9mZnNldCwNCj4gKwkJ CQkgICAgaW50IHZhbHVlLCBzaXplX3QgbGVuKQ0KPiArew0KPiArCWlmIChkc3QtPmlzX2lv bWVtKQ0KPiArCQltZW1zZXRfaW8oZHN0LT52YWRkcl9pb21lbSArIG9mZnNldCwgdmFsdWUs IGxlbik7DQo+ICsJZWxzZQ0KPiArCQltZW1zZXQoZHN0LT52YWRkciArIG9mZnNldCwgdmFs dWUsIGxlbik7DQo+ICt9DQoNCkkndmUgZm91bmQgdGhhdCBtZW1zZXQzMigpIGFuZCBtZW1z ZXQ2NCgpIGNhbiBzaWduaWZpY2FudGx5IGZhc3Rlci4gSWYgDQpldmVyIG5lZWRlZCwgd2Ug Y2FuIGFkZCB2YXJpYW50cyBoZXJlIGFzIHdlbGwuDQoNCj4gKw0KPiArLyoqDQo+ICsgKiBp b3N5c19tYXBfcmQgLSBSZWFkIGEgQy10eXBlIHZhbHVlIGZyb20gdGhlIGlvc3lzX21hcA0K PiArICoNCj4gKyAqIEBtYXBfXzoJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBv ZmZzZXRfXzoJVGhlIG9mZnNldCBmcm9tIHdoaWNoIHRvIHJlYWQNCj4gKyAqIEB0eXBlX186 CVR5cGUgb2YgdGhlIHZhbHVlIGJlaW5nIHJlYWQNCj4gKyAqDQo+ICsgKiBSZWFkIGEgQyB0 eXBlIHZhbHVlIGZyb20gaW9zeXNfbWFwLCBoYW5kbGluZyBwb3NzaWJsZSB1bi1hbGlnbmVk IGFjY2Vzc2VzIHRvDQo+ICsgKiB0aGUgbWFwcGluZy4NCj4gKyAqDQo+ICsgKiBSZXR1cm5z Og0KPiArICogVGhlIHZhbHVlIHJlYWQgZnJvbSB0aGUgbWFwcGluZy4NCj4gKyAqLw0KPiAr I2RlZmluZSBpb3N5c19tYXBfcmQobWFwX18sIG9mZnNldF9fLCB0eXBlX18pICh7CQkJXA0K PiArCXR5cGVfXyB2YWw7CQkJCQkJCVwNCj4gKwlpb3N5c19tYXBfbWVtY3B5X2Zyb20oJnZh bCwgbWFwX18sIG9mZnNldF9fLCBzaXplb2YodmFsKSk7CVwNCj4gKwl2YWw7CQkJCQkJCQlc DQo+ICt9KQ0KPiArDQo+ICsvKioNCj4gKyAqIGlvc3lzX21hcF93ciAtIFdyaXRlIGEgQy10 eXBlIHZhbHVlIHRvIHRoZSBpb3N5c19tYXANCj4gKyAqDQo+ICsgKiBAbWFwX186CVRoZSBp b3N5c19tYXAgc3RydWN0dXJlDQo+ICsgKiBAb2Zmc2V0X186CVRoZSBvZmZzZXQgZnJvbSB0 aGUgbWFwcGluZyB0byB3cml0ZSB0bw0KPiArICogQHR5cGVfXzoJVHlwZSBvZiB0aGUgdmFs dWUgYmVpbmcgd3JpdHRlbg0KPiArICogQHZhbF9fOglWYWx1ZSB0byB3cml0ZQ0KPiArICoN Cj4gKyAqIFdyaXRlIGEgQy10eXBlIHZhbHVlIHRvIHRoZSBpb3N5c19tYXAsIGhhbmRsaW5n IHBvc3NpYmxlIHVuLWFsaWduZWQgYWNjZXNzZXMNCj4gKyAqIHRvIHRoZSBtYXBwaW5nLg0K PiArICovDQo+ICsjZGVmaW5lIGlvc3lzX21hcF93cihtYXBfXywgb2Zmc2V0X18sIHR5cGVf XywgdmFsX18pICh7CQkJXA0KPiArCXR5cGVfXyB2YWwgPSAodmFsX18pOwkJCQkJCVwNCj4g Kwlpb3N5c19tYXBfbWVtY3B5X3RvKG1hcF9fLCBvZmZzZXRfXywgJnZhbCwgc2l6ZW9mKHZh bCkpOwlcDQo+ICt9KQ0KPiArDQo+ICsvKioNCj4gKyAqIGlvc3lzX21hcF9yZF9maWVsZCAt IFJlYWQgYSBtZW1iZXIgZnJvbSBhIHN0cnVjdCBpbiB0aGUgaW9zeXNfbWFwDQo+ICsgKg0K PiArICogQG1hcF9fOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzdHJ1Y3Rf dHlwZV9fOglUaGUgc3RydWN0IGRlc2NyaWJpbmcgdGhlIGxheW91dCBvZiB0aGUgbWFwcGlu Zw0KPiArICogQGZpZWxkX186CQlNZW1iZXIgb2YgdGhlIHN0cnVjdCB0byByZWFkDQo+ICsg Kg0KPiArICogUmVhZCBhIHZhbHVlIGZyb20gaW9zeXNfbWFwIGFzc3VtaW5nIGl0cyBsYXlv dXQgaXMgZGVzY3JpYmVkIGJ5IGEgc3RydWN0LA0KPiArICogcGFzc2VkIGFzIGFyZ3VtZW50 LiBUaGUgb2Zmc2V0IGFuZCBzaXplIHRvIHRoZSBzdHJ1Y3QgbWVtYmVyIGlzIGNhbGN1bGF0 ZWQNCj4gKyAqIGFuZCBwb3NzaWJsZSB1bi1hbGlnbmVkIGFjY2Vzc2VzIHRvIHRoZSBtYXBw aW5nIGhhbmRsZWQuDQo+ICsgKg0KPiArICogUmV0dXJuczoNCj4gKyAqIFRoZSB2YWx1ZSBy ZWFkIGZyb20gdGhlIG1hcHBpbmcuDQo+ICsgKi8NCj4gKyNkZWZpbmUgaW9zeXNfbWFwX3Jk X2ZpZWxkKG1hcF9fLCBzdHJ1Y3RfdHlwZV9fLCBmaWVsZF9fKSAoewkJCVwNCg0KVGhpcyBt YWNybyBzaG91bGQgYWxzbyBoYXZlIGFuIG9mZnNldF9fIHBhcmFtZXRlciBhbmQgZm9yd2Fy ZCBpdCB0byANCmlvc3lzX21hcF9yZC4NCg0KPiArCXN0cnVjdF90eXBlX18gKnM7CQkJCQkJ CVwNCj4gKwlpb3N5c19tYXBfcmQobWFwX18sIG9mZnNldG9mKHN0cnVjdF90eXBlX18sIGZp ZWxkX18pLAkJCVwNCj4gKwkJICAgICB0eXBlb2Yocy0+ZmllbGRfXykpOwkJCQkJXA0KPiAr fSkNCj4gKw0KPiArLyoqDQo+ICsgKiBpb3N5c19tYXBfd3JfZmllbGQgLSBXcml0ZSB0byBh IG1lbWJlciBvZiBhIHN0cnVjdCBpbiB0aGUgaW9zeXNfbWFwDQo+ICsgKg0KPiArICogQG1h cF9fOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzdHJ1Y3RfdHlwZV9fOglU aGUgc3RydWN0IGRlc2NyaWJpbmcgdGhlIGxheW91dCBvZiB0aGUgbWFwcGluZw0KPiArICog QGZpZWxkX186CQlNZW1iZXIgb2YgdGhlIHN0cnVjdCB0byByZWFkDQo+ICsgKiBAdmFsX186 CQlWYWx1ZSB0byB3cml0ZQ0KPiArICoNCj4gKyAqIFdyaXRlIGEgdmFsdWUgdG8gdGhlIGlv c3lzX21hcCBhc3N1bWluZyBpdHMgbGF5b3V0IGlzIGRlc2NyaWJlZCBieSBhIHN0cnVjdCwN Cj4gKyAqIHBhc3NlZCBhcyBhcmd1bWVudC4gVGhlIG9mZnNldCBhbmQgc2l6ZSB0byB0aGUg c3RydWN0IG1lbWJlciBpcyBjYWxjdWxhdGVkDQo+ICsgKiBhbmQgcG9zc2libGUgdW4tYWxp Z25lZCBhY2Nlc3NlcyB0byB0aGUgbWFwcGluZyBoYW5kbGVkLg0KPiArICovDQo+ICsjZGVm aW5lIGlvc3lzX21hcF93cl9maWVsZChtYXBfXywgc3RydWN0X3R5cGVfXywgZmllbGRfXywg dmFsX18pICh7CQlcDQoNCkFuZCB0aGlzIG9uZSBzaG91bGQgYWxzbyBoYXZlIGFuIG9mZnNl dF9fIHBhcmFtZXRlci4NCg0KQmVzdCByZWdhcmRzDQpUaG9tYXMNCg0KPiArCXN0cnVjdF90 eXBlX18gKnM7CQkJCQkJCVwNCj4gKwlpb3N5c19tYXBfd3IobWFwX18sIG9mZnNldG9mKHN0 cnVjdF90eXBlX18sIGZpZWxkX18pLAkJCVwNCj4gKwkJICAgICB0eXBlb2Yocy0+ZmllbGRf XyksIHZhbF9fKTsJCQkJXA0KPiArfSkNCj4gKw0KPiAgICNlbmRpZiAvKiBfX0lPU1lTX01B UF9IX18gKi8NCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERl dmVsb3Blcg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxk c3RyLiA1LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJu YmVyZykNCkdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------0I6IFackrZgWOt9wWijvIv8D-- --------------EJHe7aT1MX8MACmRfxSbCbA0 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmH9eRQFAwAAAAAACgkQlh/E3EQov+Dh qRAAsOzpwO2wZ2Abk4HUpU2xkepbg75KwpMltmrpW09NuiED9EXCBYkkskEHT6Hla4YPakzire4H ncaFahaeupLHEOlYQ0Cm7AddEhQSF5JGBCyrPj4eWw7Tx8zdZRdaIm2kVNnERHx60XULK7p4txuL 7BLe/oYPSkCS5MJMcqULvjDSrZpmkb5CrgCni4+qezGEg1FGsmQ3wvXInQeNtlgNFfXaMfrGKRHE r0HkSUCjc3LNNvNBmljvrdM+Uv4i58bFX0MsmARRSqeHt/LsiswLgtDt8fmOEd3EC90pjuyZbmjG QeDkGsR32cjPRZWKz7u+gIGE8AVQHU5S0dFfybR/YLn6+Zeo8q4a8LdZ94cLRz7RRfwYiA2qiMHZ IdY9+IVd660y2VEr0s1Od/asfCjg2lkDGzuleah2na3XSR2okgWV6QPZW6RwAC6qdxkemGOzSDZq NdimYP19cXogiEatTrAcf2Vf60oUEfg5zafu1kPvUiewr+9+i744GgmFe9oFdBQ3qVF+9cO+q9Zd a9Ifi68p7cguSqeAEsQ+cbU/B+3JmaKfC4VU7Dewpxk00l6KUUoJV5GAoqPHZ1xIgwTO1QjQgFwK 0CjPkHh6Hdi+ksyNTwgiqXBFlXEgrXK3XAttiXk7QQnIa86WV/FFAyKjhNrxyUy/M2mIKKPDfCCb CZU= =X401 -----END PGP SIGNATURE----- --------------EJHe7aT1MX8MACmRfxSbCbA0-- 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 09F93C433F5 for ; Fri, 4 Feb 2022 19:06:01 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 450C910E4E4; Fri, 4 Feb 2022 19:06:00 +0000 (UTC) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id D25E610E4E4; Fri, 4 Feb 2022 19:05:58 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 704EF210EA; Fri, 4 Feb 2022 19:05:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1644001557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wLMIIg32wAYjSuQhX9Z3Uuba6juaB9dX8JNgITecp6Y=; b=RzbhhYtxQ9I9i3ZAt/YsJaoAqRALwNz9AwhDfw3McgNHU9XdZXamUss7SKgBCqf4py9a6B NQ0BJxJ4aJFcquL8syMy/qURE1d5w/+1WZ2IWTNlBk3N1R3/TaQvP3wH+48Y4AMpyPd/F5 qWmRF+niUOZFtojFMMKxKTa2+OfEHS0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1644001557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=wLMIIg32wAYjSuQhX9Z3Uuba6juaB9dX8JNgITecp6Y=; b=YHwvEzqIo93RLC0ADdqgFpKhk4dz3WVgRme3kVFv0S8Hk4qSX8NdCv2vRasBEplShu2P9E KS3EpTsb3apJgXCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2A13013ADE; Fri, 4 Feb 2022 19:05:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Oi1+CBV5/WEaAwAAMHmgww (envelope-from ); Fri, 04 Feb 2022 19:05:57 +0000 Message-ID: <515668f4-9faf-ed8e-385e-7020eed38b18@suse.de> Date: Fri, 4 Feb 2022 20:05:56 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US To: Lucas De Marchi , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20220204174436.830121-1-lucas.demarchi@intel.com> <20220204174436.830121-4-lucas.demarchi@intel.com> From: Thomas Zimmermann In-Reply-To: <20220204174436.830121-4-lucas.demarchi@intel.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------EJHe7aT1MX8MACmRfxSbCbA0" Subject: Re: [Intel-gfx] [PATCH 03/19] iosys-map: Add a few more helpers 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: , Cc: =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , linux-kernel@vger.kernel.org, Sumit Semwal , =?UTF-8?Q?Christian_K=c3=b6nig?= Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------EJHe7aT1MX8MACmRfxSbCbA0 Content-Type: multipart/mixed; boundary="------------0I6IFackrZgWOt9wWijvIv8D"; protected-headers="v1" From: Thomas Zimmermann To: Lucas De Marchi , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: John Harrison , Matthew Brost , Daniele Ceraolo Spurio , Matt Roper , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , =?UTF-8?Q?Christian_K=c3=b6nig?= , Sumit Semwal , linux-kernel@vger.kernel.org Message-ID: <515668f4-9faf-ed8e-385e-7020eed38b18@suse.de> Subject: Re: [PATCH 03/19] iosys-map: Add a few more helpers References: <20220204174436.830121-1-lucas.demarchi@intel.com> <20220204174436.830121-4-lucas.demarchi@intel.com> In-Reply-To: <20220204174436.830121-4-lucas.demarchi@intel.com> --------------0I6IFackrZgWOt9wWijvIv8D Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkNCg0KQW0gMDQuMDIuMjIgdW0gMTg6NDQgc2NocmllYiBMdWNhcyBEZSBNYXJjaGk6DQo+ IEZpcnN0IHRoZSBzaW1wbGVzdCBvbmVzOg0KPiANCj4gCS0gaW9zeXNfbWFwX21lbXNldCgp OiB3aGVuIGFic3RyYWN0aW5nIHN5c3RlbSBhbmQgSS9PIG1lbW9yeSwNCj4gCSAganVzdCBs aWtlIHRoZSBtZW1jcHkoKSB1c2UgY2FzZSwgbWVtc2V0KCkgYWxzbyBoYXMgZGVkaWNhdGVk DQo+IAkgIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgZm9yIHVzaW5nIElPIG1lbW9yeS4NCj4g CS0gaW9zeXNfbWFwX21lbWNweV9mcm9tKCk6IHdlIG1heSBuZWVkIHRvIGNvcHkgZGF0YSBm cm9tIEkvTw0KPiAJICBtZW1vcnksIG5vdCBvbmx5IHRvLg0KPiANCj4gSW4gY2VydGFpbiBz aXR1YXRpb25zIGl0J3MgdXNlZnVsIHRvIGJlIGFibGUgdG8gcmVhZCBvciB3cml0ZSB0byBh bg0KPiBvZmZzZXQgdGhhdCBpcyBjYWxjdWxhdGVkIGJ5IGhhdmluZyB0aGUgbWVtb3J5IGxh eW91dCBnaXZlbiBieSBhIHN0cnVjdA0KPiBkZWNsYXJhdGlvbi4gVXN1YWxseSB3ZSBhcmUg Z29pbmcgdG8gcmVhZC93cml0ZSBhIHU4LCB1MTYsIHUzMiBvciB1NjQuDQo+IA0KPiBBcyBh IHByZS1yZXF1aXNpdGUgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiwgYWRkIGlvc3lzX21hcF9t ZW1jcHlfZnJvbSgpDQo+IHRvIGJlIHRoZSBlcXVpdmFsZW50IG9mIGlvc3lzX21hcF9tZW1j cHlfdG8oKSwgYnV0IGluIHRoZSBvdGhlcg0KPiBkaXJlY3Rpb24uIFRoZW4gYWRkIDIgcGFp cnMgb2YgbWFjcm9zOg0KPiANCj4gCS0gaW9zeXNfbWFwX3JkKCkgLyBpb3N5c19tYXBfd3Io KQ0KPiAJLSBpb3N5c19tYXBfcmRfZmllbGQoKSAvIGlvc3lzX21hcF93cl9maWVsZCgpDQo+ IA0KPiBUaGUgZmlyc3QgcGFpciB0YWtlcyB0aGUgQy10eXBlIGFuZCBvZmZzZXQgdG8gcmVh ZC93cml0ZS4gVGhlIHNlY29uZA0KPiBwYWlyIHVzZXMgYSBzdHJ1Y3QgZGVzY3JpYmluZyB0 aGUgbGF5b3V0IG9mIHRoZSBtYXBwaW5nIGluIG9yZGVyIHRvDQo+IGNhbGN1bGF0ZSB0aGUg b2Zmc2V0IGFuZCBzaXplIGJlaW5nIHJlYWQvd3JpdHRlbi4NCj4gDQo+IFdlIGNvdWxkIHVz ZSByZWFkYiwgcmVhZHcsIHJlYWRsLCByZWFkcSBhbmQgdGhlIHdyaXRlKiBjb3VudGVycGFy dHMsDQo+IGhvd2V2ZXIgZHVlIHRvIGFsaWdubWVudCBpc3N1ZXMgdGhpcyBtYXkgbm90IHdv cmsgb24gYWxsIGFyY2hpdGVjdHVyZXMuDQo+IElmIGFsaWdubWVudCBuZWVkcyB0byBiZSBj aGVja2VkIHRvIGNhbGwgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBpdCdzIG5vdA0KPiBwb3NzaWJs ZSB0byBkZWNpZGUgYXQgY29tcGlsZS10aW1lIHdoaWNoIGZ1bmN0aW9uIHRvIGNhbGw6IHNv IGp1c3QgbGVhdmUNCj4gdGhlIGRlY2lzaW9uIHRvIHRoZSBtZW1jcHkgZnVuY3Rpb24gdGhh dCB3aWxsIGRvIGV4YWN0bHkgdGhhdC4NCj4gDQo+IEZpbmFsbHksIGluIG9yZGVyIHRvIHVz ZSB0aGUgYWJvdmUgbWFjcm9zIHdpdGggYSBtYXAgZGVyaXZlZCBmcm9tDQo+IGFub3RoZXIs IGFkZCBhbm90aGVyIGluaXRpYWxpemVyOiBJT1NZU19NQVBfSU5JVF9PRkZTRVQoKS4NCj4g DQo+IENjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPg0KPiBDYzog Q2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogVGhv bWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+DQo+IENjOiBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwu b3JnDQo+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlA aW50ZWwuY29tPg0KPiAtLS0NCj4gICBpbmNsdWRlL2xpbnV4L2lvc3lzLW1hcC5oIHwgMTU0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ICAgMSBmaWxlIGNo YW5nZWQsIDE1MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9pb3N5cy1tYXAuaCBiL2luY2x1ZGUvbGludXgvaW9zeXMt bWFwLmgNCj4gaW5kZXggZWRkN2ZhM2JlOWU5Li45NmY4YjYxYWM2ZmIgMTAwNjQ0DQo+IC0t LSBhL2luY2x1ZGUvbGludXgvaW9zeXMtbWFwLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9p b3N5cy1tYXAuaA0KPiBAQCAtNiw2ICs2LDcgQEANCj4gICAjaWZuZGVmIF9fSU9TWVNfTUFQ X0hfXw0KPiAgICNkZWZpbmUgX19JT1NZU19NQVBfSF9fDQo+ICAgDQo+ICsjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L2lvLmg+DQo+ICAgI2luY2x1 ZGUgPGxpbnV4L3N0cmluZy5oPg0KPiAgIA0KPiBAQCAtMTMzLDYgKzEzNCw0NSBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgaW9zeXNfbWFwX3NldF92YWRkcihzdHJ1Y3QgaW9zeXNfbWFwICpt YXAsIHZvaWQgKnZhZGRyKQ0KPiAgIAltYXAtPmlzX2lvbWVtID0gZmFsc2U7DQo+ICAgfQ0K PiAgIA0KPiArLyoqDQo+ICsgKiBJT1NZU19NQVBfSU5JVF9PRkZTRVQgLSBJbml0aWFsaXpl cyBzdHJ1Y3QgaW9zeXNfbWFwIGZyb20gYW5vdGhlciBpb3N5c19tYXANCj4gKyAqIEBtYXBf OglUaGUgZG1hLWJ1ZiBtYXBwaW5nIHN0cnVjdHVyZSB0byBjb3B5IGZyb20NCj4gKyAqIEBv ZmZzZXRfOglPZmZzZXQgdG8gYWRkIHRvIHRoZSBvdGhlciBtYXBwaW5nDQo+ICsgKg0KPiAr ICogSW5pdGlhbGl6ZXMgYSBuZXcgaW9zeXNfbWFwIHN0cnVjdCBiYXNlZCBvbiBhbm90aGVy IHBhc3NlZCBhcyBhcmd1bWVudC4gSXQNCj4gKyAqIGRvZXMgYSBzaGFsbG93IGNvcHkgb2Yg dGhlIHN0cnVjdCBzbyBpdCdzIHBvc3NpYmxlIHRvIHVwZGF0ZSB0aGUgYmFjayBzdG9yYWdl DQo+ICsgKiB3aXRob3V0IGNoYW5naW5nIHdoZXJlIHRoZSBvcmlnaW5hbCBtYXAgcG9pbnRz IHRvLiBJdCBpcyB0aGUgZXF1aXZhbGVudCBvZg0KPiArICogZG9pbmc6DQo+ICsgKg0KPiAr ICogLi4gY29kZS1ibG9jazogYw0KPiArICoNCj4gKyAqCWlvc3lzX21hcCBtYXAgPSBvdGhl cl9tYXA7DQo+ICsgKglpb3N5c19tYXBfaW5jcigmbWFwLCAmb2Zmc2V0KTsNCj4gKyAqDQo+ ICsgKiBFeGFtcGxlIHVzYWdlOg0KPiArICoNCj4gKyAqIC4uIGNvZGUtYmxvY2s6IGMNCj4g KyAqDQo+ICsgKgl2b2lkIGZvbyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpb3N5c19t YXAgKmJhc2VfbWFwKQ0KPiArICoJew0KPiArICoJCS4uLg0KPiArICoJCXN0cnVjdCBpb3N5 c19tYXAgbWFwID0gSU9TWVNfTUFQX0lOSVRfT0ZGU0VUKGJhc2VfbWFwLCBGSUVMRF9PRkZT RVQpOw0KPiArICoJCS4uLg0KPiArICoJfQ0KPiArICoNCj4gKyAqIFRoZSBhZHZhbnRhZ2Ug b2YgdXNpbmcgdGhlIGluaXRpYWxpemVyIG92ZXIganVzdCBpbmNyZWFzaW5nIHRoZSBvZmZz ZXQgd2l0aA0KPiArICogYGBpb3N5c19tYXBfaW5jcigpYGAgbGlrZSBhYm92ZSBpcyB0aGF0 IHRoZSBuZXcgbWFwIHdpbGwgYWx3YXlzIHBvaW50IHRvIHRoZQ0KPiArICogcmlnaHQgcGxh Y2Ugb2YgdGhlIGJ1ZmZlciBkdXJpbmcgIGl0cyBzY29wZS4gSXQgcmVkdWNlcyB0aGUgcmlz ayBvZiB1cGRhdGluZw0KPiArICogdGhlIHdyb25nIHBhcnQgb2YgdGhlIGJ1ZmZlciBhbmQg aGF2aW5nIG5vIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdGhhdC4gSWYNCj4gKyAqIHRoZSBh c3NpZ25tZW50IHRvIElPU1lTX01BUF9JTklUX09GRlNFVCgpIGlzIGZvcmdvdHRlbiwgdGhl IGNvbXBpbGVyIGNhbiB3YXJuDQo+ICsgKiB1c2luZyBhIHVuaW5pdGlhbGl6ZWQgdmFyaWFi bGUuDQo+ICsgKi8NCj4gKyNkZWZpbmUgSU9TWVNfTUFQX0lOSVRfT0ZGU0VUKG1hcF8sIG9m ZnNldF8pCShzdHJ1Y3QgaW9zeXNfbWFwKQlcDQo+ICsJewkJCQkJCQkJXA0KPiArCQkudmFk ZHIgPSAobWFwXyktPnZhZGRyICsgKG9mZnNldF8pLAkJCVwNCj4gKwkJLmlzX2lvbWVtID0g KG1hcF8pLT5pc19pb21lbSwJCQkJXA0KPiArCX0NCg0KSSBhbHJlYWR5IG5haydlZCB0aGlz IG1hY3JvLiBUaGlzIHdvcmtzIGJlY2F1c2Ugb2YgdGhlIGFsaWFzaW5nIHJ1bGVzIA0Kd2l0 aGluIHRoZSB1bmlvbiBhbmQgdGhlIGZhY3QgdGhhdCB0aGVyZSBhcmUgb25seSBwbGFpbiBw b2ludGVycy4gQnV0IA0KdGhpcyBpcyBmcmFnaWxlLiBEbyBhbnl0aGluZyBtb3JlIGNvbXBs aWNhdGVkIGFuZCBpdCBicmVha3MuIFRoZXJlJ3Mgbm90IA0KZXZlbiBhIHRlc3QgdGhhdCB3 b3VsZCB0ZWxsIHlvdSB0aGF0IGl0IGZhaWxlZC4NCg0KVGhlcmVmb3JlLCBzdHJ1Y3QgaW9z eXNfbWFwIHNob3VsZCBvbmx5IGJlIGluaXRpYWxpemVkIGJ5IHRoZSBjb2RlIHRoYXQgDQpj cmVhdGVzIHRoZSBzdG9yZWQgcG9pbnRlci4NCg0KSG93ZXZlciwgeW91IHdvbid0IG5lZWQg dGhlIG9mZnNldCdlZCBpb3N5c19tYXAgYmVjYXVzZSB0aGUgDQptZW1jcHlfdG8vZnJvbSBo ZWxwZXJzIG5vdyBoYXZlIHRoZSBvZmZzZXQgcGFyYW1ldGVyLg0KDQoNCg0KPiArDQo+ICAg LyoqDQo+ICAgICogaW9zeXNfbWFwX3NldF92YWRkcl9pb21lbSAtIFNldHMgYSBpb3N5cyBt YXBwaW5nIHN0cnVjdHVyZSB0byBhbiBhZGRyZXNzIGluIEkvTyBtZW1vcnkNCj4gICAgKiBA bWFwOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gQEAgLTIyMCw3ICsyNjAsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgaW9zeXNfbWFwX2NsZWFyKHN0cnVjdCBpb3N5c19tYXAgKm1h cCkNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiBpb3N5c19tYXBfbWVtY3B5X3RvX29m ZnNldCAtIE1lbWNweSBpbnRvIG9mZnNldCBvZiBpb3N5c19tYXANCj4gKyAqIGlvc3lzX21h cF9tZW1jcHlfdG8gLSBNZW1jcHkgaW50byBpb3N5c19tYXANCg0KVGhhdCdzIHRoZSBmaXgg Zm9yIHRoZSBvdGhlciBwYXRjaC4gOikNCg0KPiAgICAqIEBkc3Q6CVRoZSBpb3N5c19tYXAg c3RydWN0dXJlDQo+ICAgICogQGRzdF9vZmZzZXQ6CVRoZSBvZmZzZXQgZnJvbSB3aGljaCB0 byBjb3B5DQo+ICAgICogQHNyYzoJVGhlIHNvdXJjZSBidWZmZXINCj4gQEAgLTIzOSw2ICsy NzksMjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGlvc3lzX21hcF9tZW1jcHlfdG8oc3RydWN0 IGlvc3lzX21hcCAqZHN0LCBzaXplX3QgZHN0X29mZnNldCwNCj4gICAJCW1lbWNweShkc3Qt PnZhZGRyICsgZHN0X29mZnNldCwgc3JjLCBsZW4pOw0KPiAgIH0NCj4gICANCj4gKy8qKg0K PiArICogaW9zeXNfbWFwX21lbWNweV9mcm9tIC0gTWVtY3B5IGZyb20gaW9zeXNfbWFwIGlu dG8gc3lzdGVtIG1lbW9yeQ0KPiArICogQGRzdDoJRGVzdGluYXRpb24gaW4gc3lzdGVtIG1l bW9yeQ0KPiArICogQHNyYzoJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzcmNf b2Zmc2V0OglUaGUgb2Zmc2V0IGZyb20gd2hpY2ggdG8gY29weQ0KPiArICogQGxlbjoJVGhl IG51bWJlciBvZiBieXRlIGluIHNyYw0KPiArICoNCj4gKyAqIENvcGllcyBkYXRhIGZyb20g YSBpb3N5c19tYXAgd2l0aCBhbiBvZmZzZXQuIFRoZSBkZXN0IGJ1ZmZlciBpcyBpbg0KPiAr ICogc3lzdGVtIG1lbW9yeS4gRGVwZW5kaW5nIG9uIHRoZSBtYXBwaW5nIGxvY2F0aW9uLCB0 aGUgaGVscGVyIHBpY2tzIHRoZQ0KPiArICogY29ycmVjdCBtZXRob2Qgb2YgYWNjZXNzaW5n IHRoZSBtZW1vcnkuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19tYXBf bWVtY3B5X2Zyb20odm9pZCAqZHN0LCBjb25zdCBzdHJ1Y3QgaW9zeXNfbWFwICpzcmMsDQo+ ICsJCQkJCSBzaXplX3Qgc3JjX29mZnNldCwgc2l6ZV90IGxlbikNCj4gK3sNCj4gKwlpZiAo c3JjLT5pc19pb21lbSkNCj4gKwkJbWVtY3B5X2Zyb21pbyhkc3QsIHNyYy0+dmFkZHJfaW9t ZW0gKyBzcmNfb2Zmc2V0LCBsZW4pOw0KPiArCWVsc2UNCj4gKwkJbWVtY3B5KGRzdCwgc3Jj LT52YWRkciArIHNyY19vZmZzZXQsIGxlbik7DQo+ICt9DQo+ICsNCj4gICAvKioNCj4gICAg KiBpb3N5c19tYXBfaW5jciAtIEluY3JlbWVudHMgdGhlIGFkZHJlc3Mgc3RvcmVkIGluIGEg aW9zeXMgbWFwcGluZw0KPiAgICAqIEBtYXA6CVRoZSBpb3N5c19tYXAgc3RydWN0dXJlDQo+ IEBAIC0yNTUsNCArMzE1LDk2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19tYXBfaW5j cihzdHJ1Y3QgaW9zeXNfbWFwICptYXAsIHNpemVfdCBpbmNyKQ0KPiAgIAkJbWFwLT52YWRk ciArPSBpbmNyOw0KPiAgIH0NCj4gICANCj4gKy8qKg0KPiArICogaW9zeXNfbWFwX21lbXNl dCAtIE1lbXNldCBpb3N5c19tYXANCj4gKyAqIEBkc3Q6CVRoZSBpb3N5c19tYXAgc3RydWN0 dXJlDQo+ICsgKiBAb2Zmc2V0OglPZmZzZXQgZnJvbSBkc3Qgd2hlcmUgdG8gc3RhcnQgc2V0 dGluZyB2YWx1ZQ0KPiArICogQHZhbHVlOglUaGUgdmFsdWUgdG8gc2V0DQo+ICsgKiBAbGVu OglUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNldCBpbiBkc3QNCj4gKyAqDQo+ICsgKiBTZXQg dmFsdWUgaW4gaW9zeXNfbWFwLiBEZXBlbmRpbmcgb24gdGhlIGJ1ZmZlcidzIGxvY2F0aW9u LCB0aGUgaGVscGVyDQo+ICsgKiBwaWNrcyB0aGUgY29ycmVjdCBtZXRob2Qgb2YgYWNjZXNz aW5nIHRoZSBtZW1vcnkuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3N5c19t YXBfbWVtc2V0KHN0cnVjdCBpb3N5c19tYXAgKmRzdCwgc2l6ZV90IG9mZnNldCwNCj4gKwkJ CQkgICAgaW50IHZhbHVlLCBzaXplX3QgbGVuKQ0KPiArew0KPiArCWlmIChkc3QtPmlzX2lv bWVtKQ0KPiArCQltZW1zZXRfaW8oZHN0LT52YWRkcl9pb21lbSArIG9mZnNldCwgdmFsdWUs IGxlbik7DQo+ICsJZWxzZQ0KPiArCQltZW1zZXQoZHN0LT52YWRkciArIG9mZnNldCwgdmFs dWUsIGxlbik7DQo+ICt9DQoNCkkndmUgZm91bmQgdGhhdCBtZW1zZXQzMigpIGFuZCBtZW1z ZXQ2NCgpIGNhbiBzaWduaWZpY2FudGx5IGZhc3Rlci4gSWYgDQpldmVyIG5lZWRlZCwgd2Ug Y2FuIGFkZCB2YXJpYW50cyBoZXJlIGFzIHdlbGwuDQoNCj4gKw0KPiArLyoqDQo+ICsgKiBp b3N5c19tYXBfcmQgLSBSZWFkIGEgQy10eXBlIHZhbHVlIGZyb20gdGhlIGlvc3lzX21hcA0K PiArICoNCj4gKyAqIEBtYXBfXzoJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBv ZmZzZXRfXzoJVGhlIG9mZnNldCBmcm9tIHdoaWNoIHRvIHJlYWQNCj4gKyAqIEB0eXBlX186 CVR5cGUgb2YgdGhlIHZhbHVlIGJlaW5nIHJlYWQNCj4gKyAqDQo+ICsgKiBSZWFkIGEgQyB0 eXBlIHZhbHVlIGZyb20gaW9zeXNfbWFwLCBoYW5kbGluZyBwb3NzaWJsZSB1bi1hbGlnbmVk IGFjY2Vzc2VzIHRvDQo+ICsgKiB0aGUgbWFwcGluZy4NCj4gKyAqDQo+ICsgKiBSZXR1cm5z Og0KPiArICogVGhlIHZhbHVlIHJlYWQgZnJvbSB0aGUgbWFwcGluZy4NCj4gKyAqLw0KPiAr I2RlZmluZSBpb3N5c19tYXBfcmQobWFwX18sIG9mZnNldF9fLCB0eXBlX18pICh7CQkJXA0K PiArCXR5cGVfXyB2YWw7CQkJCQkJCVwNCj4gKwlpb3N5c19tYXBfbWVtY3B5X2Zyb20oJnZh bCwgbWFwX18sIG9mZnNldF9fLCBzaXplb2YodmFsKSk7CVwNCj4gKwl2YWw7CQkJCQkJCQlc DQo+ICt9KQ0KPiArDQo+ICsvKioNCj4gKyAqIGlvc3lzX21hcF93ciAtIFdyaXRlIGEgQy10 eXBlIHZhbHVlIHRvIHRoZSBpb3N5c19tYXANCj4gKyAqDQo+ICsgKiBAbWFwX186CVRoZSBp b3N5c19tYXAgc3RydWN0dXJlDQo+ICsgKiBAb2Zmc2V0X186CVRoZSBvZmZzZXQgZnJvbSB0 aGUgbWFwcGluZyB0byB3cml0ZSB0bw0KPiArICogQHR5cGVfXzoJVHlwZSBvZiB0aGUgdmFs dWUgYmVpbmcgd3JpdHRlbg0KPiArICogQHZhbF9fOglWYWx1ZSB0byB3cml0ZQ0KPiArICoN Cj4gKyAqIFdyaXRlIGEgQy10eXBlIHZhbHVlIHRvIHRoZSBpb3N5c19tYXAsIGhhbmRsaW5n IHBvc3NpYmxlIHVuLWFsaWduZWQgYWNjZXNzZXMNCj4gKyAqIHRvIHRoZSBtYXBwaW5nLg0K PiArICovDQo+ICsjZGVmaW5lIGlvc3lzX21hcF93cihtYXBfXywgb2Zmc2V0X18sIHR5cGVf XywgdmFsX18pICh7CQkJXA0KPiArCXR5cGVfXyB2YWwgPSAodmFsX18pOwkJCQkJCVwNCj4g Kwlpb3N5c19tYXBfbWVtY3B5X3RvKG1hcF9fLCBvZmZzZXRfXywgJnZhbCwgc2l6ZW9mKHZh bCkpOwlcDQo+ICt9KQ0KPiArDQo+ICsvKioNCj4gKyAqIGlvc3lzX21hcF9yZF9maWVsZCAt IFJlYWQgYSBtZW1iZXIgZnJvbSBhIHN0cnVjdCBpbiB0aGUgaW9zeXNfbWFwDQo+ICsgKg0K PiArICogQG1hcF9fOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzdHJ1Y3Rf dHlwZV9fOglUaGUgc3RydWN0IGRlc2NyaWJpbmcgdGhlIGxheW91dCBvZiB0aGUgbWFwcGlu Zw0KPiArICogQGZpZWxkX186CQlNZW1iZXIgb2YgdGhlIHN0cnVjdCB0byByZWFkDQo+ICsg Kg0KPiArICogUmVhZCBhIHZhbHVlIGZyb20gaW9zeXNfbWFwIGFzc3VtaW5nIGl0cyBsYXlv dXQgaXMgZGVzY3JpYmVkIGJ5IGEgc3RydWN0LA0KPiArICogcGFzc2VkIGFzIGFyZ3VtZW50 LiBUaGUgb2Zmc2V0IGFuZCBzaXplIHRvIHRoZSBzdHJ1Y3QgbWVtYmVyIGlzIGNhbGN1bGF0 ZWQNCj4gKyAqIGFuZCBwb3NzaWJsZSB1bi1hbGlnbmVkIGFjY2Vzc2VzIHRvIHRoZSBtYXBw aW5nIGhhbmRsZWQuDQo+ICsgKg0KPiArICogUmV0dXJuczoNCj4gKyAqIFRoZSB2YWx1ZSBy ZWFkIGZyb20gdGhlIG1hcHBpbmcuDQo+ICsgKi8NCj4gKyNkZWZpbmUgaW9zeXNfbWFwX3Jk X2ZpZWxkKG1hcF9fLCBzdHJ1Y3RfdHlwZV9fLCBmaWVsZF9fKSAoewkJCVwNCg0KVGhpcyBt YWNybyBzaG91bGQgYWxzbyBoYXZlIGFuIG9mZnNldF9fIHBhcmFtZXRlciBhbmQgZm9yd2Fy ZCBpdCB0byANCmlvc3lzX21hcF9yZC4NCg0KPiArCXN0cnVjdF90eXBlX18gKnM7CQkJCQkJ CVwNCj4gKwlpb3N5c19tYXBfcmQobWFwX18sIG9mZnNldG9mKHN0cnVjdF90eXBlX18sIGZp ZWxkX18pLAkJCVwNCj4gKwkJICAgICB0eXBlb2Yocy0+ZmllbGRfXykpOwkJCQkJXA0KPiAr fSkNCj4gKw0KPiArLyoqDQo+ICsgKiBpb3N5c19tYXBfd3JfZmllbGQgLSBXcml0ZSB0byBh IG1lbWJlciBvZiBhIHN0cnVjdCBpbiB0aGUgaW9zeXNfbWFwDQo+ICsgKg0KPiArICogQG1h cF9fOgkJVGhlIGlvc3lzX21hcCBzdHJ1Y3R1cmUNCj4gKyAqIEBzdHJ1Y3RfdHlwZV9fOglU aGUgc3RydWN0IGRlc2NyaWJpbmcgdGhlIGxheW91dCBvZiB0aGUgbWFwcGluZw0KPiArICog QGZpZWxkX186CQlNZW1iZXIgb2YgdGhlIHN0cnVjdCB0byByZWFkDQo+ICsgKiBAdmFsX186 CQlWYWx1ZSB0byB3cml0ZQ0KPiArICoNCj4gKyAqIFdyaXRlIGEgdmFsdWUgdG8gdGhlIGlv c3lzX21hcCBhc3N1bWluZyBpdHMgbGF5b3V0IGlzIGRlc2NyaWJlZCBieSBhIHN0cnVjdCwN Cj4gKyAqIHBhc3NlZCBhcyBhcmd1bWVudC4gVGhlIG9mZnNldCBhbmQgc2l6ZSB0byB0aGUg c3RydWN0IG1lbWJlciBpcyBjYWxjdWxhdGVkDQo+ICsgKiBhbmQgcG9zc2libGUgdW4tYWxp Z25lZCBhY2Nlc3NlcyB0byB0aGUgbWFwcGluZyBoYW5kbGVkLg0KPiArICovDQo+ICsjZGVm aW5lIGlvc3lzX21hcF93cl9maWVsZChtYXBfXywgc3RydWN0X3R5cGVfXywgZmllbGRfXywg dmFsX18pICh7CQlcDQoNCkFuZCB0aGlzIG9uZSBzaG91bGQgYWxzbyBoYXZlIGFuIG9mZnNl dF9fIHBhcmFtZXRlci4NCg0KQmVzdCByZWdhcmRzDQpUaG9tYXMNCg0KPiArCXN0cnVjdF90 eXBlX18gKnM7CQkJCQkJCVwNCj4gKwlpb3N5c19tYXBfd3IobWFwX18sIG9mZnNldG9mKHN0 cnVjdF90eXBlX18sIGZpZWxkX18pLAkJCVwNCj4gKwkJICAgICB0eXBlb2Yocy0+ZmllbGRf XyksIHZhbF9fKTsJCQkJXA0KPiArfSkNCj4gKw0KPiAgICNlbmRpZiAvKiBfX0lPU1lTX01B UF9IX18gKi8NCg0KLS0gDQpUaG9tYXMgWmltbWVybWFubg0KR3JhcGhpY3MgRHJpdmVyIERl dmVsb3Blcg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQpNYXhmZWxk c3RyLiA1LCA5MDQwOSBOw7xybmJlcmcsIEdlcm1hbnkNCihIUkIgMzY4MDksIEFHIE7DvHJu YmVyZykNCkdlc2Now6RmdHNmw7xocmVyOiBJdm8gVG90ZXYNCg== --------------0I6IFackrZgWOt9wWijvIv8D-- --------------EJHe7aT1MX8MACmRfxSbCbA0 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmH9eRQFAwAAAAAACgkQlh/E3EQov+Dh qRAAsOzpwO2wZ2Abk4HUpU2xkepbg75KwpMltmrpW09NuiED9EXCBYkkskEHT6Hla4YPakzire4H ncaFahaeupLHEOlYQ0Cm7AddEhQSF5JGBCyrPj4eWw7Tx8zdZRdaIm2kVNnERHx60XULK7p4txuL 7BLe/oYPSkCS5MJMcqULvjDSrZpmkb5CrgCni4+qezGEg1FGsmQ3wvXInQeNtlgNFfXaMfrGKRHE r0HkSUCjc3LNNvNBmljvrdM+Uv4i58bFX0MsmARRSqeHt/LsiswLgtDt8fmOEd3EC90pjuyZbmjG QeDkGsR32cjPRZWKz7u+gIGE8AVQHU5S0dFfybR/YLn6+Zeo8q4a8LdZ94cLRz7RRfwYiA2qiMHZ IdY9+IVd660y2VEr0s1Od/asfCjg2lkDGzuleah2na3XSR2okgWV6QPZW6RwAC6qdxkemGOzSDZq NdimYP19cXogiEatTrAcf2Vf60oUEfg5zafu1kPvUiewr+9+i744GgmFe9oFdBQ3qVF+9cO+q9Zd a9Ifi68p7cguSqeAEsQ+cbU/B+3JmaKfC4VU7Dewpxk00l6KUUoJV5GAoqPHZ1xIgwTO1QjQgFwK 0CjPkHh6Hdi+ksyNTwgiqXBFlXEgrXK3XAttiXk7QQnIa86WV/FFAyKjhNrxyUy/M2mIKKPDfCCb CZU= =X401 -----END PGP SIGNATURE----- --------------EJHe7aT1MX8MACmRfxSbCbA0--