From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=quarantine dis=none) header.from=redhat.com Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTPS id 589665A0265 for ; Mon, 09 Nov 2026 16:37:14 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1794238633; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=zwm95g69v71w9gGA4+l6Z3xo2E0mmq8kJuT4qQkt6CA=; b=IgYXle7g5VqePbOamoSvnqp+5eD0uDH3je3Bgb664cyOpK3CQMatJPTegY80zjFWvDuH62 dkxqCb4k0s3E3YKjlaYii804KzG8CUWXxmuxyBRkL6az4DXV2zhJ+48s6r5JVG71loY78t K6hilHbchp7KZMvxxb2ukfbg+/CGWmI= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-290-Iwd_wyEcMve3ErTAa4oSNw-1; Mon, 09 Nov 2026 10:37:10 -0500 X-MC-Unique: Iwd_wyEcMve3ErTAa4oSNw-1 X-Mimecast-MFC-AGG-ID: Iwd_wyEcMve3ErTAa4oSNw_1794238629 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-49090fde23aso890692f8f.2 for ; Mon, 09 Nov 2026 07:37:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794238629; x=1794843429; h=content-transfer-encoding:content-type:in-reply-to:autocrypt:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zwm95g69v71w9gGA4+l6Z3xo2E0mmq8kJuT4qQkt6CA=; b=og8f6wi+9dh3PiDYPJ/XA1fUGe1qUqcn1vysOrZjjxx2by94MTo+MmE+D2m2NWGZD7 g2+gE9PPokJjH9oFeHcUGXJ38KNFEWCHt5B5aHLpv4Us+r8wuZFqtwYNa8WcDrnAQixK 9tnlcDZs6w0AYpGHezAWgaBcKKLZBLYTZYuNDchBbLeVpNxF1TtJsy6ljNvDaSAPTKd4 R55zIL3D1KD/fqRO3h8TT3bmZR0pjrZnemPMCcHCJJvdWoGkY+/VLA3fm/f6JsS8LYHD LIeGbM8L6WH1H399NG6F9NITMcoO9EUsr8/T7X3402Ku9oos2/8oLR3WGR1ulHx9SUvS jFCA== X-Forwarded-Encrypted: i=1; AL+hErGJuWcvVx41itIRYjL3tpexKbFglXWZ+9yNCz7s0MvfRv+0/oAPfJdNKAzrDB1LRPr4MGlP0Uvn86A=@passt.top X-Gm-Message-State: APuU4Z8tvO7QdTxnIEdEY1lRJITXd0QDW4+4xezLoBHUPdePkq8W4r+W SRg+mKkhCLKkjAPxGM7dzGHw+ci1/OD4hyjztwPcf7fx3qcpPGEO4Hl3G3qFfpmMz+ZJX7nKvOB xiDwBaQEKK0goH7bAytiasMXSSauKIpLXc1i80fbufO6y2+qMjyT0Fg== X-Gm-Gg: AYBFou0KuAekN+az+anRWOKZK0opzx0RqYuFgwttTkv3NKfPA8tk0ps/tG7oM0GwCkE RKL+oX0g7Akw3+lw57jWewXu4+GUJH8DfPuuKc7UMm6QgRs37+hZvG5cr3Pf5/wNnIz4dKobNQx ASPSvsUwZjH8xZf54be6nk+kY4Zoa9KjDj1zgXOSgzFDzJaspzGjMnhTVitn1H/n1ZN64CxE1YM PcFdIWbr2wR1uRgSdiu6FsyJ4mwuMniQJfrbe3QsH+eW6zaPua0XnG9f8UBgYsQOYKMT01IDzOh Bob1HqDN3Z1HmnHrwcZL3HWXfHLGlrYFZYR9YttFrtLNLY2fvG3Pk3s7OssPV2Idk4XnoIolpZc j0iEX/ER7TssFPeL6aiekqiillXGnoMJrS9Gtgh6aHabYP4jSbdxJdIbN3Jy6mTzzbqw/S6n0SD hRTMo1kZcPwxPSZzE= X-Received: by 2002:a05:6000:230d:b0:48b:9ed:b81f with SMTP id ffacd0b85a97d-4958a10a3bcmr8887052f8f.10.1794238628688; Mon, 09 Nov 2026 07:37:08 -0800 (PST) X-Received: by 2002:a05:6000:230d:b0:48b:9ed:b81f with SMTP id ffacd0b85a97d-4958a10a3bcmr8886996f8f.10.1794238628144; Mon, 09 Nov 2026 07:37:08 -0800 (PST) Received: from ?IPV6:2a01:e0a:e10:ef90:e9e7:d9a0:a4eb:dc4b? ([2a01:e0a:e10:ef90:e9e7:d9a0:a4eb:dc4b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4959650a0f1sm10730419f8f.20.2026.11.09.07.37.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Nov 2026 07:37:07 -0800 (PST) Message-ID: <6530da0a-39ee-45e8-92f4-566304c35330@redhat.com> Date: Mon, 9 Nov 2026 16:37:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 4/7] tap: Implement the pasta vhost-net from-guest path To: aerosouund , passt-dev@passt.top References: <20261016204940.33190-1-aerosound161@gmail.com> <20261016204940.33190-5-aerosound161@gmail.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20261016204940.33190-5-aerosound161@gmail.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: L9Q0w7av-1lPD02KTmPeUKFhKNGawQIwvO2l-TvF5-E_1794238629 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: QV2NRUF6JBUNEBKANOUYKGSUODBLLF6W X-Message-ID-Hash: QV2NRUF6JBUNEBKANOUYKGSUODBLLF6W X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gMTAvMTYvMjYgMjI6NDksIGFlcm9zb3V1bmQgd3JvdGU6DQo+IEZyb206IEFtbWFyIFlhc3Nl ciA8YWVyb3NvdW5kMTYxQGdtYWlsLmNvbT4NCj4gDQo+IEFkZCB0YXBfdmhvc3RfaW5wdXQoKSwg Y2FsbGVkIHdoZW4gdGhlIGtlcm5lbCBzaWduYWxzIG9uIGEgY2FsbCBldmVudGZkDQo+IHRoYXQg aXQgaGFzIHdyaXR0ZW4gZ3Vlc3QgZnJhbWVzIGludG8gdGhlIGZyb20tZ3Vlc3QgcXVldWUuIEl0 IGNvbnN1bWVzDQo+IGRlc2NyaXB0b3JzIHdpdGggY29uc3VtZV9vbmVfcnhfZGVzY3JpcHRvcigp LCBza2lwcyB0aGUgdmlydGlvX25ldCBoZWFkZXINCj4gb24gZWFjaCwgYnVpbGRzIGFuIGlvdl90 YWlsIGZyb20gd2hhdCdzIGxlZnQgYW5kIHF1ZXVlcyBpdCBmb3INCj4gcHJvY2Vzc2luZywgdGhl biB0ZWxscyB0aGUga2VybmVsIHRoZSBkZXNjcmlwdG9ycyBhcmUgZnJlZSB0byByZXVzZS4NCj4g DQo+IGNvbnN1bWVfb25lX3J4X2Rlc2NyaXB0b3IoKSBwb3BzIG9uZSBlbnRyeSBmcm9tIHRoZSB1 c2VkIHJpbmcsIGFkdmFuY2VzDQo+IG91ciByZWFkIGN1cnNvciBhbmQgdGhlIGNvdW50IG9mIGRl c2NyaXB0b3JzIGF3YWl0aW5nIGhhbmRvZmYsIGFuZA0KPiByZXR1cm5zIGEgcG9pbnRlciB0byB0 aGF0IGRlc2NyaXB0b3IncyBkYXRhLg0KPiANCj4gQm9vdHN0cmFwIHZob3N0IGluIHRhcF9zb2Nr X3R1bl9pbml0KCkuIElmIHNldHVwIGZhaWxzIHdlIGxlYXZlDQo+IGMtPnZob3N0LmZkIGF0IC0x IGFuZCBjYXJyeSBvbiB1bmFjY2VsZXJhdGVkLg0KPiANCj4gV2l0aCB2aG9zdC1uZXQgcnVubmlu ZyB0aGUga2VybmVsIHJlYWRzIHRoZSB0YXAgZmQgaXRzZWxmLCBzbyBkb24ndCBhZGQNCj4gdGhh dCBmZCB0byBvdXIgZXBvbGwgc2V0IGF0IGFsbDogdGFwX2hhbmRsZXJfcGFzdGEoKSB3b3VsZCBv dGhlcndpc2UgYmUNCj4gd29rZW4gZm9yIGRhdGEgaXQgbXVzdCBub3QgcmVhZC4NCj4gDQo+IFNp Z25lZC1vZmYtYnk6IEV1Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPg0KPiBTaWdu ZWQtb2ZmLWJ5OiBBbW1hciBZYXNzZXIgPGFlcm9zb3VuZDE2MUBnbWFpbC5jb20+DQo+IC0tLQ0K PiAgIHBhc3N0LmMgfCAgIDYgKysrDQo+ICAgdGFwLmMgICB8IDExMiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgIHRhcC5oICAgfCAg IDIgKw0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9wYXNzdC5jIGIvcGFzc3QuYw0KPiBpbmRleCA2MDAyMjMx Li4zNzJiNzQzIDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5jDQo+ICsrKyBiL3Bhc3N0LmMNCj4gQEAg LTMwNSw2ICszMDUsMTIgQEAgc3RhdGljIHZvaWQgcGFzc3Rfd29ya2VyKHZvaWQgKm9wYXF1ZSwg aW50IG5mZHMsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnRzKQ0KPiAgIAkJY2FzZSBFUE9MTF9U WVBFX0NPTkY6DQo+ICAgCQkJY29uZl9oYW5kbGVyKGMsIGV2ZW50bWFzayk7DQo+ICAgCQkJYnJl YWs7DQo+ICsJCWNhc2UgRVBPTExfVFlQRV9WSE9TVF9DQUxMOg0KPiArCQkJdGFwX3Zob3N0X2lu cHV0KGMsIHJlZiwgJm5vdyk7DQo+ICsJCQlicmVhazsNCj4gKwkJY2FzZSBFUE9MTF9UWVBFX1ZI T1NUX0VSUk9SOg0KPiArCQkJZGllKCJFcnJvciBvbiB2aG9zdC1rZXJuZWwgc29ja2V0Iik7DQo+ ICsJCQlicmVhazsNCj4gICAJCWRlZmF1bHQ6DQo+ICAgCQkJLyogQ2FuJ3QgaGFwcGVuICovDQo+ ICAgCQkJYXNzZXJ0KDApOw0KPiBkaWZmIC0tZ2l0IGEvdGFwLmMgYi90YXAuYw0KPiBpbmRleCBk ZmE2NmM3Li5hNWZkZWU4IDEwMDY0NA0KPiAtLS0gYS90YXAuYw0KPiArKysgYi90YXAuYw0KPiBA QCAtMzgsNiArMzgsNyBAQA0KPiAgICNpbmNsdWRlIDxuZXRpbmV0L3VkcC5oPg0KPiAgICNpbmNs dWRlIDxuZXRpbmV0L2lwX2ljbXAuaD4NCj4gICAjaW5jbHVkZSA8bmV0aW5ldC9pZl9ldGhlci5o Pg0KPiArI2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+DQo+IA0KPiAgICNpbmNsdWRlIDxsaW51eC9p Zl90dW4uaD4NCj4gICAjaW5jbHVkZSA8bGludXgvaWNtcHY2Lmg+DQo+IEBAIC02MSw2ICs2Miw3 IEBADQo+ICAgI2luY2x1ZGUgInZob3N0X3VzZXIuaCINCj4gICAjaW5jbHVkZSAidnVfY29tbW9u LmgiDQo+ICAgI2luY2x1ZGUgImVwb2xsX2N0bC5oIg0KPiArI2luY2x1ZGUgInZob3N0LmgiDQo+ IA0KPiAgIC8qIE1heGltdW0gYWxsb3dlZCBmcmFtZSBsZW5ndGhzIChpbmNsdWRpbmcgTDIgaGVh ZGVyKSAqLw0KPiANCj4gQEAgLTE0NDYsNyArMTQ0OCwxMSBAQCBzdGF0aWMgdm9pZCB0YXBfc3Rh cnRfY29ubmVjdGlvbihjb25zdCBzdHJ1Y3QgY3R4ICpjKQ0KPiAgIAkJYnJlYWs7DQo+ICAgCX0N Cj4gDQo+IC0JZXBvbGxfYWRkKGMtPmVwb2xsZmQsIEVQT0xMSU4gfCBFUE9MTFJESFVQLCByZWYp Ow0KPiArCS8qIFdpdGggdmhvc3QtbmV0IHJ1bm5pbmcsIHRoZSBrZXJuZWwgcmVhZHMgdGhlIHRh cCBmZCBmb3IgdXMgYW5kDQo+ICsJICogbm90aWZpZXMgdXMgb24gdGhlIGNhbGwgZXZlbnRmZCwg c28gd2UgbXVzdG4ndCB3YXRjaCBpdCBvdXJzZWx2ZXMNCj4gKwkgKi8NCj4gKwlpZiAoYy0+dmhv c3QuZmQgPT0gLTEpDQo+ICsJCWVwb2xsX2FkZChjLT5lcG9sbGZkLCBFUE9MTElOIHwgRVBPTExS REhVUCwgcmVmKTsNCj4gDQo+ICAgCWlmICghdGFwX2lzX3JlYWR5KGMpKQ0KPiAgIAkJcmV0dXJu Ow0KPiBAQCAtMTUxNCw2ICsxNTIwLDg5IEBAIHZvaWQgdGFwX2xpc3Rlbl9oYW5kbGVyKHN0cnVj dCBjdHggKmMsIHVpbnQzMl90IGV2ZW50cykNCj4gICAJdGFwX3N0YXJ0X2Nvbm5lY3Rpb24oYyk7 DQo+ICAgfQ0KPiANCj4gKy8qKg0KPiArICogY29uc3VtZV9vbmVfcnhfZGVzY3JpcHRvcigpIC0g Q29uc3VtZSBvbmUgdXNlZCBmcm9tLWd1ZXN0IGRlc2NyaXB0b3INCj4gKyAqIEBsZW46CVNldCB0 byB0aGUgbGVuZ3RoIG9mIGRhdGEgd3JpdHRlbiBieSB0aGUga2VybmVsDQo+ICsgKg0KPiArICog UG9wcyBhIHNpbmdsZSBlbnRyeSBmcm9tIHRoZSB1c2VkIHJpbmcsIGFkdmFuY2luZyBvdXIgcmVh ZCBjdXJzb3IgYW5kIHRoZQ0KPiArICogY291bnQgb2YgZGVzY3JpcHRvcnMgYXdhaXRpbmcgcmVm aWxsIGFubm91bmNlbWVudC4NCj4gKyAqDQo+ICsgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIGFzc3Vt ZXMgdGhlIGtlcm5lbCBpcyBnb2luZyB0byBwb3N0IHNpbmdsZSBkZXNjcmlwdG9ycw0KPiArICog YWx3YXlzLCBObyBjaGFpbnMuIElmIHRoYXQgY2hhbmdlcywgd2Ugd291bGQgbmVlZCB0byBpbmNy ZW1lbnQgbnVtX2ZyZWUNCj4gKyAqIGFzIHdlIGFkdmVydGlzZSBiYWNrIHRvIHRoZSBrZXJuZWwg dGhlIGZyZWUgZGVzY3JpcHRvcnMgYnkgdGhlIGxlbmd0aCBvZiB0aGUgY2hhaW4uDQo+ICsgKg0K PiArICogUmV0dXJuOiBwb2ludGVyIHRvIHRoZSBwYWNrZXQgYnVmZmVyLCBvciBOVUxMIGlmIG5v IGRhdGEgaXMgYXZhaWxhYmxlDQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkICpjb25zdW1lX29uZV9y eF9kZXNjcmlwdG9yKHNpemVfdCAqbGVuKQ0KDQpwYXNzIHRoZSBxdWV1ZV9pZHgNCj4gK3sNCj4g KwlzdHJ1Y3QgdnJpbmdfdXNlZF9wYXN0YSAqdXNlZCA9ICZ2cmluZ191c2VkX2FsbFtWSE9TVF9B VkFJTF9RX0lEWF07DQoNCnVzZSBxdWV1ZV9pZHggcmF0aGVyIHRoYW4gVkhPU1RfQVZBSUxfUV9J RFgNCg0KPiArCXVpbnQxNl90IHVzZWRfaWR4LCBsYXN0X3VzZWQ7DQo+ICsJdWludDMyX3QgaTsN Cj4gKw0KPiArCXVzZWRfaWR4ID0gbGUxNnRvaCh1c2VkLT5pZHgpOw0KPiArDQo+ICsJc21wX3Jt YigpOw0KPiArDQo+ICsJLyogSWYgdGhlIGtlcm5lbCdzIHVzZWQgaW5kZXggbWF0Y2hlcyBvdXJz LCB3ZSd2ZSBjb25zdW1lZCBldmVyeXRoaW5nDQo+ICsJICogaXQgaGFzIHBvc3RlZA0KPiArCSAq Lw0KPiArCWlmICh1c2VkX2lkeCA9PSB2aG9zdF92cV9zdGF0ZVtWSE9TVF9BVkFJTF9RX0lEWF0u bGFzdF91c2VkX2lkeCkgew0KPiArCQkqbGVuID0gMDsNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJ fQ0KPiArDQo+ICsJbGFzdF91c2VkID0gdmhvc3RfdnFfc3RhdGVbVkhPU1RfQVZBSUxfUV9JRFhd Lmxhc3RfdXNlZF9pZHggJSBWSE9TVF9OREVTQ1M7DQoNClZIT1NUX05ERVNDUyBzaG91bGQgYmUg cmVwYWNlZCBieSB2aG9zdF92cV9zdGF0ZVtxdWV1ZV9pZHhdLm51bV9mcmVlDQoNCg0KPiArCWkg PSBsZTMydG9oKHVzZWQtPnJpbmdbbGFzdF91c2VkXS5pZCk7DQo+ICsJKmxlbiA9IGxlMzJ0b2go dXNlZC0+cmluZ1tsYXN0X3VzZWRdLmxlbik7DQo+ICsNCj4gKwlpZiAoaSAhPSBsYXN0X3VzZWQp DQo+ICsJCWRpZSgidmhvc3Q6IGlkICV1IGF0IHVzZWQgcG9zaXRpb24gJXUiLCBpLCBsYXN0X3Vz ZWQpOw0KPiArDQo+ICsJLyogVGhlIGtlcm5lbCBoYXMgcXVldWVkIGZvciB1cyBzb21ldGhpbmcg d2UgY2Fubm90IHJlY2VpdmUgKi8NCj4gKwlpZiAoKmxlbiA+IFZIT1NUX0RFU0NfQllURVMpDQo+ ICsJCWRpZSgidmhvc3Q6IGlkICV1IGxlbiAlenUgPiAlenUiLCBpLCAqbGVuLA0KPiArCQkgICAg KHNpemVfdClWSE9TVF9ERVNDX0JZVEVTKTsNCj4gKw0KPiArCXZob3N0X3ZxX3N0YXRlW1ZIT1NU X0FWQUlMX1FfSURYXS5sYXN0X3VzZWRfaWR4Kys7DQo+ICsJdmhvc3RfdnFfc3RhdGVbVkhPU1Rf QVZBSUxfUV9JRFhdLm51bV9mcmVlKys7DQo+ICsNCj4gKwlyZXR1cm4gcGt0X2J1ZiArIGkgKiBW SE9TVF9ERVNDX0JZVEVTOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIHRhcF92aG9zdF9pbnB1 dCgpIC0gSGFuZGxlIGZyYW1lcyB0aGUga2VybmVsIHdyb3RlIHRvIHRoZSBmcm9tLWd1ZXN0IHF1 ZXVlDQo+ICsgKiBAYzoJCUV4ZWN1dGlvbiBjb250ZXh0DQo+ICsgKiBAcmVmOgllcG9sbCByZWZl cmVuY2UNCj4gKyAqIEBub3c6CUN1cnJlbnQgdGltZXN0YW1wDQo+ICsgKi8NCj4gK3ZvaWQgdGFw X3Zob3N0X2lucHV0KHN0cnVjdCBjdHggKmMsIHVuaW9uIGVwb2xsX3JlZiByZWYsDQo+ICsJCSAg ICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpub3cpDQo+ICt7DQo+ICsJc3RydWN0IHZpcnRpb19u ZXRfaGRyX21yZ19yeGJ1ZiAqaGRyOw0KPiArCXN0cnVjdCBpb3ZfdGFpbCBkYXRhOw0KPiArCXNp emVfdCBsZW47DQo+ICsNCj4gKwlldmVudGZkX3JlYWQocmVmLmZkLCAoZXZlbnRmZF90W10peyAw IH0pOw0KPiArDQo+ICsJdGFwX2ZsdXNoX3Bvb2xzKCk7DQo+ICsNCg0KSW4gcmVmLnF1ZXVlIHdl IHNob3VsZCBoYXZlIHF1ZXVlX2lkeCB3ZSBjYW4gcGFzcyB0byBjb25zdW1lX29uZV9yeF9kZXNj cmlwdG9yKCkNCg0KPiArCXdoaWxlICgoaGRyID0gY29uc3VtZV9vbmVfcnhfZGVzY3JpcHRvcigm bGVuKSkpIHsNCj4gKwkJLyogYSB2YWxpZCByZWNlaXZlIGlzIG9uZSB3aGVyZSB0aGVyZSBpcyBh IHZpcnRpbyBuZXQgaGVhZGVyIGZvbGxvd2VkIGJ5IGF0bGVhc3Qgc2l6ZW9mKHN0cnVjdCBldGho ZHIpIGJ5dGVzICovDQo+ICsJCWlmIChsZW4gPCAoc2l6ZW9mKCpoZHIpICsgc2l6ZW9mKHN0cnVj dCBldGhoZHIpKSkgew0KPiArCQkJd2Fybigidmhvc3Q6IGludmFsaWQgbGVuICVsdSIsIGxlbik7 DQo+ICsJCQljb250aW51ZTsNCj4gKwkJfQ0KPiArDQo+ICsJCS8qIFNraXAgb3ZlciB0aGUgdm5l dCBoZWFkZXIsIGFkZCB0aGUgcGFja2V0IHdpdGhvdXQgaXQgKi8NCj4gKwkJZGF0YSA9IElPVl9U QUlMX0ZST01fQlVGKCh2b2lkICopKGhkciArIDEpLA0KPiArCQkJCQkgbGVuIC0gc2l6ZW9mKCpo ZHIpLCAwKTsNCj4gKwkJdGFwX2FkZF9wYWNrZXQoYywgJmRhdGEsIG5vdyk7DQo+ICsJfQ0KPiAr DQo+ICsJdGFwX2hhbmRsZXIoYywgbm93KTsNCj4gKwl2aG9zdF9yeF9kZXNjcmlwdG9yX2hhbmRv ZmYoYyk7DQo+ICt9DQo+ICsNCj4gICAvKioNCj4gICAgKiB0YXBfbnNfdHVuKCkgLSBHZXQgdHVu dGFwIGZkIGluIG5hbWVzcGFjZQ0KPiAgICAqIEBjOgkJRXhlY3V0aW9uIGNvbnRleHQNCj4gQEAg LTE1NTUsMTIgKzE2NDQsMzMgQEAgc3RhdGljIGludCB0YXBfbnNfdHVuKHZvaWQgKmFyZykNCj4g ICAgKi8NCj4gICBzdGF0aWMgdm9pZCB0YXBfc29ja190dW5faW5pdChzdHJ1Y3QgY3R4ICpjKQ0K PiAgIHsNCj4gKwlpbnQgaTsNCj4gKw0KPiAgIAlpZiAoIWMtPnNwbGljZV9vbmx5KSB7DQo+ICAg CQlOU19DQUxMKHRhcF9uc190dW4sIGMpOw0KPiAgIAkJaWYgKGMtPmZkX3RhcCA9PSAtMSkNCj4g ICAJCQlkaWUoIkZhaWxlZCB0byBzZXQgdXAgdGFwIGRldmljZSBpbiBuYW1lc3BhY2UiKTsNCj4g ICAJfQ0KPiANCj4gKwkvKiBOb3RoaW5nIGVsc2UgaGVyZSBydW5zIGlmIHRoaXMgZmFpbHM6IGMt PnZob3N0LmZkIHN0YXlzIC0xIGFuZCB3ZQ0KPiArCSAqIGNhcnJ5IG9uIHJlYWRpbmcgdGhlIHRh cCBmZCBvdXJzZWx2ZXMsIHVubGVzcyBhY2NlbGVyYXRpb24gd2FzDQo+ICsJICogZXhwbGljaXRs eSBhc2tlZCBmb3INCj4gKwkgKi8NCj4gKwlpZiAoYy0+dmhvc3QubW9kZSAhPSBWSE9TVF9NT0RF X09GRiAmJiB2aG9zdF9zZXR1cF9uZXQoYykgPCAwICYmDQo+ICsJICAgIGMtPnZob3N0Lm1vZGUg PT0gVkhPU1RfTU9ERV9PTikNCj4gKwkJZGllKCJ2aG9zdC1uZXQgaXMgbm90IGF2YWlsYWJsZSIp Ow0KPiArDQo+ICsJaWYgKGMtPnZob3N0LmZkICE9IC0xKSB7DQo+ICsJCWZvciAoaSA9IDA7IGkg PCBBUlJBWV9TSVpFKGMtPnZob3N0LnZxKTsgaSsrKQ0KPiArCQkJdmhvc3Rfc2V0dXBfZXZlbnRm ZHMoYywgaSk7DQo+ICsNCj4gKwkJaWYgKHZob3N0X3NldHVwX21lbW9yeV90YWJsZShjKSA8IDAp DQo+ICsJCQlkaWVfcGVycm9yKCJWSE9TVF9TRVRfTUVNX1RBQkxFIGlvY3RsIGZhaWxlZCIpOw0K PiArDQo+ICsJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGMtPnZob3N0LnZxKTsgaSsrKQ0K PiArCQkJdmhvc3Rfc2V0X3ZyaW5nKGMsIGksIGMtPmZkX3RhcCk7DQo+ICsJfQ0KPiArDQo+ICAg CXBhc3RhX25zX2NvbmYoYyk7DQo+IA0KPiAgIAlpZiAoIWMtPnNwbGljZV9vbmx5KQ0KPiBkaWZm IC0tZ2l0IGEvdGFwLmggYi90YXAuaA0KPiBpbmRleCBmOGMzMGUyLi4wZjFmN2EzIDEwMDY0NA0K PiAtLS0gYS90YXAuaA0KPiArKysgYi90YXAuaA0KPiBAQCAtNDgsNiArNDgsOCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgdGFwX2hkcl91cGRhdGUoc3RydWN0IHRhcF9oZHIgKnRoZHIsIHNpemVfdCBs MmxlbikNCj4gICAJdGhkci0+dm5ldF9sZW4gPSBodG9ubChsMmxlbik7DQo+ICAgfQ0KPiANCj4g K3ZvaWQgdGFwX3Zob3N0X2lucHV0KHN0cnVjdCBjdHggKmMsIHVuaW9uIGVwb2xsX3JlZiByZWYs DQo+ICsJCSAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpub3cpOw0KPiAgIHVuc2lnbmVkIGxv bmcgdGFwX2wyX21heF9sZW4oY29uc3Qgc3RydWN0IGN0eCAqYyk7DQo+ICAgdm9pZCAqdGFwX3B1 c2hfbDJoKGNvbnN0IHN0cnVjdCBjdHggKmMsIHZvaWQgKmJ1ZiwNCj4gICAJCSAgIGNvbnN0IHZv aWQgKnNyY19tYWMsIHVpbnQxNl90IHByb3RvKTsNCj4gLS0NCj4gMi4zOS41IChBcHBsZSBHaXQt MTU0KQ0KDQo=