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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 C4091C021B8 for ; Tue, 4 Mar 2025 08:17:00 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpNRh-000890-2Y; Tue, 04 Mar 2025 03:16:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNRK-00087G-2s for qemu-devel@nongnu.org; Tue, 04 Mar 2025 03:15:47 -0500 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpNRG-0007sN-9N for qemu-devel@nongnu.org; Tue, 04 Mar 2025 03:15:45 -0500 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-43bc4b16135so10216905e9.1 for ; Tue, 04 Mar 2025 00:15:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741076137; x=1741680937; darn=nongnu.org; h=mime-version:user-agent:autocrypt:references:in-reply-to:date:cc:to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=VgkegMN5SL/hQNiSzAPqwRhkX40+/MiKy2N9NLhUHng=; b=DRf2wk/mWLT98jnjIcptKlaHq9qZq0zXJ07yPVTZZG+mzgEbe8MLCUeO49jvv0C34W L78Ma52Xun29ICk7rRz6HIcqyuJtl2y58YzEZSOz4R8R+3xzgtDtVNKBhNvfcCTO52OJ l/bq6jWNaoCQtZh7LJY42PbCjYqcVJ5PkNtAfiOBjLGeGKcFVN3HTF4s4eRkpi9NDGgZ wo1f0n8ppqCwvB743y5c+1wKLFhAscbrV2Rv13QwJAMO/J9wBuL6rrzqIs4fwuGnFXDx ptT+flJUi5SL5gNtuP0VYJddFOaqW1w50g03M2eaYmHjFDpVnL4tDriWRDEgjV2hx+jh wvcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741076137; x=1741680937; h=mime-version:user-agent:autocrypt:references:in-reply-to:date:cc:to :from:subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=VgkegMN5SL/hQNiSzAPqwRhkX40+/MiKy2N9NLhUHng=; b=KBTRxTd2Qgm7Iaa/BayudFHXJZGh8ij0+RbmNz4l3xh+47CGkNyH5CYjrNirYM1GhE F/Zo6MO8JexzI9qQYdGkGhrV1SwowRmzn+7Ar9SGmq0/PLOVsp0Ui0UsIncfTh2934YL wWKrjZXp00/i0pq+HfzDBpntkiXKFObWgFQgW09MGPx8lDdY8MeMlFG8kstTN37cMZAE FfZnq4ygn1GAJIB0STRV9OBEO0Na0JTRZjVIOq82EwYkJwrXPKRY7F3h9BJUBFe0kAHs 4cHm2dPPvoC8RfjxRSviP2oatpUyYd7OBKC4L4bc/cFwDOCVEK0O1/VLENBSyAAfDHDX yUzA== X-Gm-Message-State: AOJu0YxDazh6zFKvbhSX7yx3x4WXStaqx7/80UVjEnEDmIzNeDzus3wM JEPy0rQtr/1BIRhRcEfCa42zpjIU8e1iqADOWKvLqsuXD/57yHsv X-Gm-Gg: ASbGncsN8KCwRU0YxRqVVK0xU67TIIlyWSSJxFIYVf9Q8Vpl0f8Ncu52urwp9G2V3cs PD+EpiJtTPB5AlPIbwM5V+K/AiHDx2KwX3OH5k1sik2LNBSoIgPXya6qwHXJQJDOTkBpNJ7hOzO VhDWyeCzwq2iIxlH0u5B1HUoJ72+VlyedPEpD97Smreory/3Tk6LUvX0p+BXdl0sEB2iTM49cJh ra7aRI+oLkzjCYqCUHr8W5xMHRYs8vGc3zN7p8P4mgBYr5zELg6sjCV7OTjEL+IVXDggb/gHE38 c1Xj38Xys/AgVXKhMVXm2CNF9AqsqmuUaSNNpCD6gpFgXXnaY3bGUYylpw== X-Google-Smtp-Source: AGHT+IHAQ0HWcg6YZWKotdNXX1wWi+oVx3Zi6h8kQzAzPR7vnvfG6ZshsRLKcRwh22mXswk4u5AKpw== X-Received: by 2002:a05:600c:3b23:b0:439:98b0:f8ce with SMTP id 5b1f17b1804b1-43ba66e60f5mr141863135e9.7.1741076136981; Tue, 04 Mar 2025 00:15:36 -0800 (PST) Received: from [172.21.179.157] ([195.226.174.194]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43b73703f83sm190097905e9.13.2025.03.04.00.15.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 00:15:36 -0800 (PST) Message-ID: <78cf1dff9432efcd21280085572800af717a758a.camel@gmail.com> Subject: Re: [PATCH v2 7/9] vfio/igd: Decouple common quirks from legacy mode From: Corvin =?ISO-8859-1?Q?K=F6hne?= To: Tomita Moeko , Alex Williamson , =?ISO-8859-1?Q?C=E9dric?= Le Goater Cc: qemu-devel@nongnu.org Date: Tue, 04 Mar 2025 09:15:35 +0100 In-Reply-To: References: <20250303175220.74917-1-tomitamoeko@gmail.com> <20250303175220.74917-8-tomitamoeko@gmail.com> Autocrypt: addr=corvin.koehne@gmail.com; prefer-encrypt=mutual; keydata=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 LwksVmgc9s79+9pSpeP5DbIeMzhrIK Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-TgerMmUiWi7DDOZCQC1m" User-Agent: Evolution 3.54.3 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=corvin.koehne@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org --=-TgerMmUiWi7DDOZCQC1m Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gVHVlLCAyMDI1LTAzLTA0IGF0IDA5OjA3ICswMTAwLCBDb3J2aW4gS8O2aG5lIHdyb3RlOgo+ IE9uIFR1ZSwgMjAyNS0wMy0wNCBhdCAwMTo1MiArMDgwMCwgVG9taXRhIE1vZWtvIHdyb3RlOgo+ ID4gU28gZmFyLCBJR0Qtc3BlY2lmaWMgcXVpcmtzIGFsbCByZXF1aXJlIGVuYWJsaW5nIGxlZ2Fj eSBtb2RlLCB3aGljaCBpcwo+ID4gdG9nZ2xlZCBieSBhc3NpZ25pbmcgSUdEIHRvIDAwOjAyLjAu IEhvd2V2ZXIsIHNvbWUgcXVpcmtzLCBsaWtlIHRoZSBCRFNNCj4gPiBhbmQgR0dDIHJlZ2lzdGVy IHF1aXJrcywgc2hvdWxkIGJlIGFwcGxpZWQgdG8gYWxsIHN1cHBvcnRlZCBJR0QgZGV2aWNlcy4K PiA+IEEgbmV3IGZlYXR1cmUgYml0LCBWRklPX0ZFQVRVUkVfRU5BQkxFX0lHRF9MRUdBQ1lfTU9E RSwgaXMgaW50cm9kdWNlZCB0bwo+ID4gY29udHJvbCB0aGUgbGVnYWN5IG1vZGUgb25seSBxdWly a3MuCj4gPiAKPiA+IFRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWx0eSwgdGhpcyBiaXQg aXMgc2V0IGJ5IGRlZmF1bHQsIGJ1dAo+ID4gbGVnYWN5IG1vZGUgaXMgb25seSBlbmFibGVkIHdo ZW46Cj4gPiAtIE1hY2hpbmUgdHlwZSBpcyBpNDQwZngKPiA+IC0gSUdEIGRldmljZSBpcyBhdCBn dWVzdCBCREYgMDA6MDIuMAo+ID4gLSBOb3QgbWFudWFsbHkgZGlzYWJsZWQgYnkgeC1pZ2QtbGVn YWN5LW1vZGU9b2ZmCj4gPiAKPiA+IE5vdGUgdGhhdCBRRU1VIHdpbGwgbm93IGZhaWwgaW1tZWRp YXRlbHkgaWYgYW55IGVycm9yIG9jY3VycyB3aGVuCj4gPiBzZXR0aW5nIHVwIGxlZ2FjeSBtb2Rl LCBpbnN0ZWFkIG9mIHNpbXBseSBjb250aW51ZXMgbGlrZSBiZWZvcmUuIElmCj4gPiBsZWdhY3kg bW9kZSBpcyB1bndhbnRlZCwgaXQgY2FuIGJlIGV4cGxpY2l0bHkgZGlzYWJsZWQgYnkKPiA+IHgt aWdkLWxlZ2FjeS1tb2RlPW9mZi4KPiA+IAo+ID4gQWRkaXRpb25hbGx5LCB0aGUgaG90cGx1ZyBj aGVjayBpbiBsZWdhY3kgbW9kZSBpcyByZW1vdmVkIGFzIGl0IHdpbGwgYmUKPiA+IGNoZWNrZWQg d2hlbiBlbmFibGluZyB0aGUgT3BSZWdpb24gcXVpcmsuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6 IFRvbWl0YSBNb2VrbyA8dG9taXRhbW9la29AZ21haWwuY29tPgo+ID4gLS0tCj4gPiDCoGh3L3Zm aW8vaWdkLmMgfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiA+IMKgaHcvdmZpby9wY2kuYyB8wqDCoCAyICsKPiA+IMKgaHcvdmZpby9wY2ku aCB8wqDCoCAzICsrCj4gPiDCoDMgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgNTQg ZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9ody92ZmlvL2lnZC5jIGIvaHcvdmZp by9pZ2QuYwo+ID4gaW5kZXggZjVlMTlmMTI0MS4uNDBmNTgwM2JlOSAxMDA2NDQKPiA+IC0tLSBh L2h3L3ZmaW8vaWdkLmMKPiA+ICsrKyBiL2h3L3ZmaW8vaWdkLmMKPiA+IEBAIC0xNSw2ICsxNSw3 IEBACj4gPiDCoCNpbmNsdWRlICJxZW11L2Vycm9yLXJlcG9ydC5oIgo+ID4gwqAjaW5jbHVkZSAi cWFwaS9lcnJvci5oIgo+ID4gwqAjaW5jbHVkZSAicWFwaS9xbXAvcWVycm9yLmgiCj4gPiArI2lu Y2x1ZGUgImh3L2JvYXJkcy5oIgo+ID4gwqAjaW5jbHVkZSAiaHcvaHcuaCIKPiA+IMKgI2luY2x1 ZGUgImh3L252cmFtL2Z3X2NmZy5oIgo+ID4gwqAjaW5jbHVkZSAicGNpLmgiCj4gPiBAQCAtNDMy LDkgKzQzMyw3IEBAIHZvaWQgdmZpb19wcm9iZV9pZ2RfYmFyMF9xdWlyayhWRklPUENJRGV2aWNl ICp2ZGV2LCBpbnQKPiA+IG5yKQo+ID4gwqDCoMKgwqDCoCAqIGJ1cyBhZGRyZXNzLgo+ID4gwqDC oMKgwqDCoCAqLwo+ID4gwqDCoMKgwqAgaWYgKCF2ZmlvX3BjaV9pcyh2ZGV2LCBQQ0lfVkVORE9S X0lEX0lOVEVMLCBQQ0lfQU5ZX0lEKSB8fAo+ID4gLcKgwqDCoMKgwqDCoMKgICF2ZmlvX2lzX3Zn YSh2ZGV2KSB8fCBuciAhPSAwIHx8Cj4gPiAtwqDCoMKgwqDCoMKgwqAgJnZkZXYtPnBkZXYgIT0g cGNpX2ZpbmRfZGV2aWNlKHBjaV9kZXZpY2Vfcm9vdF9idXMoJnZkZXYtPnBkZXYpLAo+ID4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMCwgUENJX0RFVkZOKDB4MiwgMCkpKSB7Cj4gPiArwqDCoMKgwqDC oMKgwqAgIXZmaW9faXNfdmdhKHZkZXYpIHx8IG5yICE9IDApIHsKPiA+IMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuOwo+ID4gwqDCoMKgwqAgfQo+ID4gwqAKPiA+IEBAIC00ODIsMTUgKzQ4MSwxMiBA QCB2b2lkIHZmaW9fcHJvYmVfaWdkX2JhcjBfcXVpcmsoVkZJT1BDSURldmljZSAqdmRldiwKPiA+ IGludAo+ID4gbnIpCj4gPiDCoMKgwqDCoCBRTElTVF9JTlNFUlRfSEVBRCgmdmRldi0+YmFyc1tu cl0ucXVpcmtzLCBiZHNtX3F1aXJrLCBuZXh0KTsKPiA+IMKgfQo+ID4gwqAKPiA+IC1ib29sIHZm aW9fcHJvYmVfaWdkX2NvbmZpZ19xdWlyayhWRklPUENJRGV2aWNlICp2ZGV2LAo+ID4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgRXJyb3IgKiplcnJwIEdfR05VQ19VTlVTRUQpCj4gPiArYm9vbCB2ZmlvX3Byb2JlX2lnZF9j b25maWdfcXVpcmsoVkZJT1BDSURldmljZSAqdmRldiwgRXJyb3IgKiplcnJwKQo+ID4gwqB7Cj4g PiAtwqDCoMKgIGdfYXV0b2ZyZWUgc3RydWN0IHZmaW9fcmVnaW9uX2luZm8gKnJvbSA9IE5VTEw7 Cj4gPiDCoMKgwqDCoCBpbnQgcmV0LCBnZW47Cj4gPiDCoMKgwqDCoCB1aW50NjRfdCBnbXNfc2l6 ZTsKPiA+IMKgwqDCoMKgIHVpbnQ2NF90ICpiZHNtX3NpemU7Cj4gPiDCoMKgwqDCoCB1aW50MzJf dCBnbWNoOwo+ID4gLcKgwqDCoCBFcnJvciAqZXJyID0gTlVMTDsKPiA+IMKgCj4gPiDCoMKgwqDC oCAvKgo+ID4gwqDCoMKgwqDCoCAqIFRoaXMgbXVzdCBiZSBhbiBJbnRlbCBWR0EgZGV2aWNlIGF0 IGFkZHJlc3MgMDA6MDIuMCBmb3IgdXMgdG8gZXZlbgo+ID4gQEAgLTQ5OCw5ICs0OTQsNyBAQCBi b29sIHZmaW9fcHJvYmVfaWdkX2NvbmZpZ19xdWlyayhWRklPUENJRGV2aWNlICp2ZGV2LAo+ID4g wqDCoMKgwqDCoCAqIFBDSSBidXMgYWRkcmVzcy4KPiA+IMKgwqDCoMKgwqAgKi8KPiA+IMKgwqDC oMKgIGlmICghdmZpb19wY2lfaXModmRldiwgUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0FOWV9J RCkgfHwKPiA+IC3CoMKgwqDCoMKgwqDCoCAhdmZpb19pc192Z2EodmRldikgfHwKPiA+IC3CoMKg wqDCoMKgwqDCoCAmdmRldi0+cGRldiAhPSBwY2lfZmluZF9kZXZpY2UocGNpX2RldmljZV9yb290 X2J1cygmdmRldi0+cGRldiksCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwLCBQQ0lfREVWRk4o MHgyLCAwKSkpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoCAhdmZpb19pc192Z2EodmRldikpIHsKPiA+ IMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7Cj4gPiDCoMKgwqDCoCB9Cj4gPiDCoAo+ID4g QEAgLTUxNiw1NiArNTEwLDYyIEBAIGJvb2wgdmZpb19wcm9iZV9pZ2RfY29uZmlnX3F1aXJrKFZG SU9QQ0lEZXZpY2UgKnZkZXYsCj4gPiDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiB0cnVlOwo+ID4g wqDCoMKgwqAgfQo+ID4gwqAKPiA+IC3CoMKgwqAgLyoKPiA+IC3CoMKgwqDCoCAqIE1vc3Qgb2Yg d2hhdCB3ZSdyZSBkb2luZyBoZXJlIGlzIHRvIGVuYWJsZSB0aGUgUk9NIHRvIHJ1biwgc28gaWYK PiA+IC3CoMKgwqDCoCAqIHRoZXJlJ3Mgbm8gUk9NLCB0aGVyZSdzIG5vIHBvaW50IGluIHNldHRp bmcgdXAgdGhpcyBxdWlyay4KPiA+IC3CoMKgwqDCoCAqIE5CLiBXZSBvbmx5IHNlZW0gdG8gZ2V0 IEJJT1MgUk9Ncywgc28gYSBVRUZJIFZNIHdvdWxkIG5lZWQgQ1NNCj4gPiBzdXBwb3J0Lgo+ID4g LcKgwqDCoMKgICovCj4gPiAtwqDCoMKgIHJldCA9IHZmaW9fZ2V0X3JlZ2lvbl9pbmZvKCZ2ZGV2 LT52YmFzZWRldiwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgVkZJT19QQ0lfUk9NX1JFR0lPTl9JTkRFWCwgJnJvbSk7Cj4g PiAtwqDCoMKgIGlmICgocmV0IHx8ICFyb20tPnNpemUpICYmICF2ZGV2LT5wZGV2LnJvbWZpbGUp IHsKPiA+IC3CoMKgwqDCoMKgwqDCoCBlcnJvcl9yZXBvcnQoIklHRCBkZXZpY2UgJXMgaGFzIG5v IFJPTSwgbGVnYWN5IG1vZGUgZGlzYWJsZWQiLAo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdmRldi0+dmJhc2VkZXYubmFtZSk7Cj4gPiAtwqDCoMKgwqDCoMKg wqAgcmV0dXJuIHRydWU7Cj4gPiAtwqDCoMKgIH0KPiA+IC0KPiA+IC3CoMKgwqAgLyoKPiA+IC3C oMKgwqDCoCAqIElnbm9yZSB0aGUgaG90cGx1ZyBjb3JuZXIgY2FzZSwgbWFyayB0aGUgUk9NIGZh aWxlZCwgd2UgY2FuJ3QKPiA+IC3CoMKgwqDCoCAqIGNyZWF0ZSB0aGUgZGV2aWNlcyB3ZSBuZWVk IGZvciBsZWdhY3kgbW9kZSBpbiB0aGUgaG90cGx1ZyBzY2VuYXJpby4KPiA+IC3CoMKgwqDCoCAq Lwo+ID4gLcKgwqDCoCBpZiAodmRldi0+cGRldi5xZGV2LmhvdHBsdWdnZWQpIHsKPiA+IC3CoMKg wqDCoMKgwqDCoCBlcnJvcl9yZXBvcnQoIklHRCBkZXZpY2UgJXMgaG90cGx1Z2dlZCwgUk9NIGRp c2FibGVkLCAiCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi bGVnYWN5IG1vZGUgZGlzYWJsZWQiLCB2ZGV2LT52YmFzZWRldi5uYW1lKTsKPiA+IC3CoMKgwqDC oMKgwqDCoCB2ZGV2LT5yb21fcmVhZF9mYWlsZWQgPSB0cnVlOwo+ID4gLcKgwqDCoMKgwqDCoMKg IHJldHVybiB0cnVlOwo+ID4gLcKgwqDCoCB9Cj4gPiAtCj4gPiDCoMKgwqDCoCBnbWNoID0gdmZp b19wY2lfcmVhZF9jb25maWcoJnZkZXYtPnBkZXYsIElHRF9HTUNILCA0KTsKPiA+IMKgCj4gPiDC oMKgwqDCoCAvKgo+ID4gLcKgwqDCoMKgICogSWYgSUdEIFZHQSBEaXNhYmxlIGlzIGNsZWFyIChl eHBlY3RlZCkgYW5kIFZHQSBpcyBub3QgYWxyZWFkeQo+ID4gZW5hYmxlZCwKPiA+IC3CoMKgwqDC oCAqIHRyeSB0byBlbmFibGUgaXQuwqAgUHJvYmFibHkgc2hvdWxkbid0IGJlIHVzaW5nIGxlZ2Fj eSBtb2RlIHdpdGhvdXQKPiA+IFZHQSwKPiA+IC3CoMKgwqDCoCAqIGJ1dCBhbHNvIG5vIHBvaW50 IGluIHVzIGVuYWJsaW5nIFZHQSBpZiBkaXNhYmxlZCBpbiBoYXJkd2FyZS4KPiA+ICvCoMKgwqDC oCAqIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsdHksIGVuYWJsZSBsZWdhY3kgbW9kZSB3aGVuCj4g PiArwqDCoMKgwqAgKiAtIE1hY2hpbmUgdHlwZSBpcyBpNDQwZnggKHBjX3BpaXgpCj4gPiArwqDC oMKgwqAgKiAtIElHRCBkZXZpY2UgaXMgYXQgZ3Vlc3QgQkRGIDAwOjAyLjAKPiA+ICvCoMKgwqDC oCAqIC0gTm90IG1hbnVhbGx5IGRpc2FibGVkIGJ5IHgtaWdkLWxlZ2FjeS1tb2RlPW9mZgo+ID4g wqDCoMKgwqDCoCAqLwo+ID4gLcKgwqDCoCBpZiAoIShnbWNoICYgMHgyKSAmJiAhdmRldi0+dmdh ICYmICF2ZmlvX3BvcHVsYXRlX3ZnYSh2ZGV2LCAmZXJyKSkgewo+ID4gLcKgwqDCoMKgwqDCoMKg IGVycm9yX3JlcG9ydGZfZXJyKGVyciwgVkZJT19NU0dfUFJFRklYLCB2ZGV2LT52YmFzZWRldi5u YW1lKTsKPiA+IC3CoMKgwqDCoMKgwqDCoCBlcnJvcl9yZXBvcnQoIklHRCBkZXZpY2UgJXMgZmFp bGVkIHRvIGVuYWJsZSBWR0EgYWNjZXNzLCAiCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAibGVnYWN5IG1vZGUgZGlzYWJsZWQiLCB2ZGV2LT52YmFzZWRldi5u YW1lKTsKPiA+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsKPiA+IC3CoMKgwqAgfQo+ID4g K8KgwqDCoCBpZiAoKHZkZXYtPmZlYXR1cmVzICYgVkZJT19GRUFUVVJFX0VOQUJMRV9JR0RfTEVH QUNZX01PREUpICYmCj4gPiArwqDCoMKgwqDCoMKgwqAgIXN0cmNtcChNQUNISU5FX0dFVF9DTEFT UyhxZGV2X2dldF9tYWNoaW5lKCkpLT5mYW1pbHksICJwY19waWl4IikKPiA+ICYmCj4gPiArwqDC oMKgwqDCoMKgwqAgKCZ2ZGV2LT5wZGV2ID09IHBjaV9maW5kX2RldmljZShwY2lfZGV2aWNlX3Jv b3RfYnVzKCZ2ZGV2LT5wZGV2KSwKPiA+ICvCoMKgwqDCoMKgwqDCoCAwLCBQQ0lfREVWRk4oMHgy LCAwKSkpKSB7Cj4gCj4gU3VnZ2VzdGlvbiwgcmVmYWN0b3IgaXMgbGlrZToKPiAKPiBpZiAoeC1p Z2QtbGVnYWN5LW1vZGUgPSAib2ZmIikgewo+IMKgwqAvKiBMZWdhY3kgbW9kZSBkaXNhYmxlZCBi eSB1c2VyICovCj4gwqAgcmV0dXJuCj4gfSBlbHNlIGlmICh4LWlnZC1sZWdhY3ktbW9kZSA9ICJh dXRvIikgewo+IMKgIGlmIChzdHJjbXAoTUFDSElORV9HRVRfQ0xBU1MocWRldl9nZXRfbWFjaGlu ZSgpKS0+ZmFtaWx5LCAicGNfcGlpeCIpIHx8wqAKPiDCoMKgwqDCoMKgwqDCoMKgICgmdmRldi0+ cGRldiA9PSBwY2lfZmluZF9kZXZpY2UocGNpX2RldmljZV9yb290X2J1cygmdmRldi0+cGRldiks IDAsCj4gwqDCoMKgwqDCoMKgwqDCoCBQQ0lfREVWRk4oMHgyLCAwKSkpKSB7Cj4gwqDCoMKgIC8q IE5vIGxlZ2FjeSBtb2RlIGRldGVjdGVkICovCj4gwqDCoMKgIHJldHVybjsKPiDCoCB9Cj4gfQo+ IAo+IC8qIFNldHVwIGxlZ2FjeSBtb2RlICovCj4gCj4gVGhpcyBzdHlsZSB3b3VsZCBhdm9pZCBp bnRlbmRpbmcgdGhpcyB3aG9sZSBjb2RlIGJsb2NrIGZvciBzZXR0aW5nIHVwIGxlZ2FjeQo+IG1v ZGUuCj4gCj4gPiArwqDCoMKgwqDCoMKgwqAgLyoKPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogSUdE IGxlZ2FjeSBtb2RlIHJlcXVpcmVzOgo+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKiAtIFZCSU9TIGlu IFJPTSBCQVIgb3IgZmlsZQo+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKiAtIFZHQSBJTy9NTUlPIHJh bmdlcyBhcmUgY2xhaW1lZCBieSBJR0QKPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogLSBPcFJlZ2lv bgo+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKiAtIFNhbWUgTFBDIGJyaWRnZSBhbmQgSG9zdCBicmlk Z2UgVklEL0RJRC9TVklEL1NTSUQgYXMgaG9zdAo+ID4gK8KgwqDCoMKgwqDCoMKgwqAgKi8KPiA+ ICvCoMKgwqDCoMKgwqDCoCBnX2F1dG9mcmVlIHN0cnVjdCB2ZmlvX3JlZ2lvbl9pbmZvICpyb20g PSBOVUxMOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgIHdhcm5fcmVwb3J0KCJJR0QgbGVnYWN5 IG1vZGUgZW5hYmxlZCwgIgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICJ1c2UgeC1pZ2QtbGVnYWN5LW1vZGU9b2ZmIHRvIGRpc2FibGUgaXQgaWYKPiA+IHVud2Fu dGVkLiIpOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgIC8qCj4gPiArwqDCoMKgwqDCoMKgwqDC oCAqIE1vc3Qgb2Ygd2hhdCB3ZSdyZSBkb2luZyBoZXJlIGlzIHRvIGVuYWJsZSB0aGUgUk9NIHRv IHJ1biwgc28gaWYKPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogdGhlcmUncyBubyBST00sIHRoZXJl J3Mgbm8gcG9pbnQgaW4gc2V0dGluZyB1cCB0aGlzIHF1aXJrLgo+ID4gK8KgwqDCoMKgwqDCoMKg wqAgKiBOQi4gV2Ugb25seSBzZWVtIHRvIGdldCBCSU9TIFJPTXMsIHNvIFVFRkkgVk0gd291bGQg bmVlZCBDU00KPiA+IHN1cHBvcnQuCj4gPiArwqDCoMKgwqDCoMKgwqDCoCAqLwo+ID4gK8KgwqDC oMKgwqDCoMKgIHJldCA9IHZmaW9fZ2V0X3JlZ2lvbl9pbmZvKCZ2ZGV2LT52YmFzZWRldiwKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBWRklPX1BDSV9ST01fUkVHSU9OX0lOREVYLCAmcm9tKTsKPiA+ICvCoMKg wqDCoMKgwqDCoCBpZiAoKHJldCB8fCAhcm9tLT5zaXplKSAmJiAhdmRldi0+cGRldi5yb21maWxl KSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlcnJvcl9zZXRnKGVycnAsICJEZXZpY2Ug aGFzIG5vIFJPTSIpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGZhbHNlOwo+ ID4gK8KgwqDCoMKgwqDCoMKgIH0KPiA+IMKgCj4gPiAtwqDCoMKgIC8qIFNldHVwIE9wUmVnaW9u IGFjY2VzcyAqLwo+ID4gLcKgwqDCoCBpZiAoIXZmaW9fcGNpX2lnZF9zZXR1cF9vcHJlZ2lvbih2 ZGV2LCAmZXJyKSkgewo+ID4gLcKgwqDCoMKgwqDCoMKgIGVycm9yX2FwcGVuZF9oaW50KCZlcnIs ICJJR0QgbGVnYWN5IG1vZGUgZGlzYWJsZWRcbiIpOwo+ID4gLcKgwqDCoMKgwqDCoMKgIGVycm9y X3JlcG9ydF9lcnIoZXJyKTsKPiA+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsKPiA+IC3C oMKgwqAgfQo+ID4gK8KgwqDCoMKgwqDCoMKgIC8qCj4gPiArwqDCoMKgwqDCoMKgwqDCoCAqIElm IElHRCBWR0EgRGlzYWJsZSBpcyBjbGVhciAoZXhwZWN0ZWQpIGFuZCBWR0EgaXMgbm90IGFscmVh ZHkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgICogZW5hYmxlZCwgdHJ5IHRvIGVuYWJsZSBpdC4gUHJv YmFibHkgc2hvdWxkbid0IGJlIHVzaW5nIGxlZ2FjeQo+ID4gbW9kZQo+ID4gK8KgwqDCoMKgwqDC oMKgwqAgKiB3aXRob3V0IFZHQSwgYnV0IGFsc28gbm8gcG9pbnQgaW4gdXMgZW5hYmxpbmcgVkdB IGlmIGRpc2FibGVkIGluCj4gPiArwqDCoMKgwqDCoMKgwqDCoCAqIGhhcmR3YXJlLgo+ID4gK8Kg wqDCoMKgwqDCoMKgwqAgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIShnbWNoICYgMHgyKSAm JiAhdmRldi0+dmdhICYmICF2ZmlvX3BvcHVsYXRlX3ZnYSh2ZGV2LCBlcnJwKSkKPiA+IHsKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVycm9yX3NldGcoZXJycCwgIlVuYWJsZSB0byBlbmFi bGUgVkdBIGFjY2VzcyIpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGZhbHNl Owo+ID4gK8KgwqDCoMKgwqDCoMKgIH0KPiA+IMKgCj4gPiAtwqDCoMKgIC8qIFNldHVwIExQQyBi cmlkZ2UgLyBIb3N0IGJyaWRnZSBQQ0kgSURzICovCj4gPiAtwqDCoMKgIGlmICghdmZpb19wY2lf aWdkX3NldHVwX2xwY19icmlkZ2UodmRldiwgJmVycikpIHsKPiA+IC3CoMKgwqDCoMKgwqDCoCBl cnJvcl9hcHBlbmRfaGludCgmZXJyLCAiSUdEIGxlZ2FjeSBtb2RlIGRpc2FibGVkXG4iKTsKPiA+ IC3CoMKgwqDCoMKgwqDCoCBlcnJvcl9yZXBvcnRfZXJyKGVycik7Cj4gPiAtwqDCoMKgwqDCoMKg wqAgcmV0dXJuIHRydWU7Cj4gPiArwqDCoMKgwqDCoMKgwqAgLyogU2V0dXAgT3BSZWdpb24gYWNj ZXNzICovCj4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKCF2ZmlvX3BjaV9pZ2Rfc2V0dXBfb3ByZWdp b24odmRldiwgZXJycCkpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxz ZTsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAgLyogU2V0 dXAgTFBDIGJyaWRnZSAvIEhvc3QgYnJpZGdlIFBDSSBJRHMgKi8KPiA+ICvCoMKgwqDCoMKgwqDC oCBpZiAoIXZmaW9fcGNpX2lnZF9zZXR1cF9scGNfYnJpZGdlKHZkZXYsIGVycnApKSB7Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4gPiArwqDCoMKgwqDCoMKgwqAg fQo+ID4gwqDCoMKgwqAgfQo+ID4gwqAKPiA+IMKgwqDCoMKgIC8qCj4gPiBkaWZmIC0tZ2l0IGEv aHcvdmZpby9wY2kuYyBiL2h3L3ZmaW8vcGNpLmMKPiA+IGluZGV4IGE1OGQ1NTU5MzQuLmIwNjIw YTBhZTggMTAwNjQ0Cj4gPiAtLS0gYS9ody92ZmlvL3BjaS5jCj4gPiArKysgYi9ody92ZmlvL3Bj aS5jCj4gPiBAQCAtMzM2Myw2ICszMzYzLDggQEAgc3RhdGljIGNvbnN0IFByb3BlcnR5IHZmaW9f cGNpX2Rldl9wcm9wZXJ0aWVzW10gPSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIFZGSU9fRkVBVFVSRV9FTkFCTEVfUkVRX0JJVCwgdHJ1ZSksCj4gPiDCoMKg wqDCoCBERUZJTkVfUFJPUF9CSVQoIngtaWdkLW9wcmVnaW9uIiwgVkZJT1BDSURldmljZSwgZmVh dHVyZXMsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFZGSU9f RkVBVFVSRV9FTkFCTEVfSUdEX09QUkVHSU9OX0JJVCwgZmFsc2UpLAo+ID4gK8KgwqDCoCBERUZJ TkVfUFJPUF9CSVQoIngtaWdkLWxlZ2FjeS1tb2RlIiwgVkZJT1BDSURldmljZSwgZmVhdHVyZXMs Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgVkZJT19GRUFUVVJF X0VOQUJMRV9JR0RfTEVHQUNZX01PREVfQklULCB0cnVlKSwKPiAKPiBUaGlzIHByb3BlcnR5IGlz bid0IHVzZWQgaW4gdGhpcyBjb21taXQgYW55d2hlcmUuIFdoYXQgYW0gSSBtaXNzaW5nPwo+IAoK U3J5LCBtaXNzZWQgdGhhdCB0aGlzIHNldHMgVkZJT19GRUFUVVJFX0VOQUJMRV9JR0RfTEVHQUNZ X01PREVfQklUIHdoaWNoIGlzCmluZGVlZCB1c2VkLgoKPiA+IMKgwqDCoMKgIERFRklORV9QUk9Q X09OX09GRl9BVVRPKCJlbmFibGUtbWlncmF0aW9uIiwgVkZJT1BDSURldmljZSwKPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZiYXNl ZGV2LmVuYWJsZV9taWdyYXRpb24sIE9OX09GRl9BVVRPX0FVVE8pLAo+ID4gwqDCoMKgwqAgREVG SU5FX1BST1BfQk9PTCgibWlncmF0aW9uLWV2ZW50cyIsIFZGSU9QQ0lEZXZpY2UsCj4gPiBkaWZm IC0tZ2l0IGEvaHcvdmZpby9wY2kuaCBiL2h3L3ZmaW8vcGNpLmgKPiA+IGluZGV4IDJlODFmOWVi MTkuLmI3YjA3NjQ0YTggMTAwNjQ0Cj4gPiAtLS0gYS9ody92ZmlvL3BjaS5oCj4gPiArKysgYi9o dy92ZmlvL3BjaS5oCj4gPiBAQCAtMTU0LDYgKzE1NCw5IEBAIHN0cnVjdCBWRklPUENJRGV2aWNl IHsKPiA+IMKgI2RlZmluZSBWRklPX0ZFQVRVUkVfRU5BQkxFX0lHRF9PUFJFR0lPTl9CSVQgMgo+ ID4gwqAjZGVmaW5lIFZGSU9fRkVBVFVSRV9FTkFCTEVfSUdEX09QUkVHSU9OIFwKPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKDEgPDwgVkZJT19GRUFUVVJFX0VOQUJMRV9JR0RfT1BSRUdJT05fQklUKQo+ID4gKyNkZWZp bmUgVkZJT19GRUFUVVJFX0VOQUJMRV9JR0RfTEVHQUNZX01PREVfQklUIDQKPiA+ICsjZGVmaW5l IFZGSU9fRkVBVFVSRV9FTkFCTEVfSUdEX0xFR0FDWV9NT0RFIFwKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoMSA8PAo+ ID4gVkZJT19GRUFUVVJFX0VOQUJMRV9JR0RfTEVHQUNZX01PREVfQklUKQo+ID4gwqDCoMKgwqAg T25PZmZBdXRvIGRpc3BsYXk7Cj4gPiDCoMKgwqDCoCB1aW50MzJfdCBkaXNwbGF5X3hyZXM7Cj4g PiDCoMKgwqDCoCB1aW50MzJfdCBkaXNwbGF5X3lyZXM7Cj4gCgo= --=-TgerMmUiWi7DDOZCQC1m Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgvRSla3m2t/H2U9G2FTaVjFeAmoFAmfGtqcACgkQ2FTaVjFe AmqLNg//bhcIfqYHkKKv5k4vNVSoS+0e7uHcacM+/fzucFCnyxdULKdzjJfKESY8 y4rFN+YxJvBuu38swIeNnEkSCYTfp7n2r6vjp1D7nUNjbK5i7dXDF+Jj+g/HsZT4 4fS8Bsf19fUKThery1algXMtsaWdZiLFJFwQ2R8Sr7J7WsEdoG9mL5JLSqsZWQRe aotKluE+tcKMEkdUil3SY52knMmy62M+xziYWcyVbBUVwDsiujRHq3vy7RDMwN49 2HCl2hnH84ZN0JJj6ypKHzLibMjlc+xzAPbQhG/g7HbP3chMVVHi3/P5VRoEzl2x 5CItxS/n8cXAEQei6bQQgJQDm/94FfH9xfSt8df4jTgWO0vWpsv5iXhuxjCXlHTf 8dFQQbvSkClKTm2jUAEi8/MECruWnNfyaWWq/PZzJMFoaFk2wRzuZpZgY1ZyQw4X +AqEzXCG1uVAWM+rKXupS4PG+bLsDu+3aBsHcfsSny83PfaqOTlzKAN1/CztfbrO qd06QFmbkAF+GCVrpxmJyQPvrOnUGBe3WBoY8/3ALfeFLwc46xximDtlN6i2Xwhj wrkmbk8DqmqeECO3wt2dGXXuTGfsDEqbQIU29ur+uhpoTdiXs3BZErVu2Va8xXYI 2g+mQVfNa3JQJnQnFaqlN972S+jGKrgHRAyrUgK7uzfnBGyv8EQ= =KyCY -----END PGP SIGNATURE----- --=-TgerMmUiWi7DDOZCQC1m--