From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH net V2] vhost: log dirty page correctly Date: Thu, 10 Jan 2019 09:07:53 -0500 Message-ID: <20190110090610-mutt-send-email-mst@kernel.org> References: <20190109072947.23240-1-jasowang@redhat.com> <20190109091937-mutt-send-email-mst@kernel.org> <8704a816-ec70-8e56-b141-3f17c41bb999@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <8704a816-ec70-8e56-b141-3f17c41bb999@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Jason Wang Cc: Jintack Lim , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org T24gVGh1LCBKYW4gMTAsIDIwMTkgYXQgMDg6Mzc6MTdQTSArMDgwMCwgSmFzb24gV2FuZyB3cm90 ZToKPiAKPiBPbiAyMDE5LzEvOSDkuIvljYgxMDoyNSwgTWljaGFlbCBTLiBUc2lya2luIHdyb3Rl Ogo+ID4gT24gV2VkLCBKYW4gMDksIDIwMTkgYXQgMDM6Mjk6NDdQTSArMDgwMCwgSmFzb24gV2Fu ZyB3cm90ZToKPiA+ID4gVmhvc3QgZGlydHkgcGFnZSBsb2dnaW5nIEFQSSBpcyBkZXNpZ25lZCB0 byBzeW5jIHRocm91Z2ggR1BBLiBCdXQgd2UKPiA+ID4gdHJ5IHRvIGxvZyBHSU9WQSB3aGVuIGRl dmljZSBJT1RMQiBpcyBlbmFibGVkLiBUaGlzIGlzIHdyb25nIGFuZCBtYXkKPiA+ID4gbGVhZCB0 byBtaXNzaW5nIGRhdGEgYWZ0ZXIgbWlncmF0aW9uLgo+ID4gPiAKPiA+ID4gVG8gc29sdmUgdGhp cyBpc3N1ZSwgd2hlbiBsb2dnaW5nIHdpdGggZGV2aWNlIElPVExCIGVuYWJsZWQsIHdlIHdpbGw6 Cj4gPiA+IAo+ID4gPiAxKSByZXVzZSB0aGUgZGV2aWNlIElPVExCIHRyYW5zbGF0aW9uIHJlc3Vs dCBvZiBHSU9WQS0+SFZBIG1hcHBpbmcgdG8KPiA+ID4gICAgIGdldCBIVkEsIGZvciB3cml0YWJs ZSBkZXNjcmlwdG9yLCBnZXQgSFZBIHRocm91Z2ggaW92ZWMuIEZvciB1c2VkCj4gPiA+ICAgICBy aW5nIHVwZGF0ZSwgdHJhbnNsYXRlIGl0cyBHSU9WQSB0byBIVkEKPiA+ID4gMikgdHJhdmVyc2Ug dGhlIEdQQS0+SFZBIG1hcHBpbmcgdG8gZ2V0IHRoZSBwb3NzaWJsZSBHUEEgYW5kIGxvZwo+ID4g PiAgICAgdGhyb3VnaCBHUEEuIFBheSBhdHRlbnRpb24gdGhpcyByZXZlcnNlIG1hcHBpbmcgaXMg bm90IGd1YXJhbnRlZWQKPiA+ID4gICAgIHRvIGJlIHVuaXF1ZSwgc28gd2Ugc2hvdWxkIGxvZyBl YWNoIHBvc3NpYmxlIEdQQSBpbiB0aGlzIGNhc2UuCj4gPiA+IAo+ID4gPiBUaGlzIGZpeCB0aGUg ZmFpbHVyZSBvZiBzY3AgdG8gZ3Vlc3QgZHVyaW5nIG1pZ3JhdGlvbi4gSW4gLW5leHQsIHdlCj4g PiA+IHdpbGwgcHJvYmFibHkgc3VwcG9ydCBwYXNzaW5nIEdJT1ZBLT5HUEEgaW5zdGVhZCBvZiBH SU9WQS0+SFZBLgo+ID4gPiAKPiA+ID4gRml4ZXM6IDZiMWU2Y2M3ODU1YiAoInZob3N0OiBuZXcg ZGV2aWNlIElPVExCIEFQSSIpCj4gPiA+IFJlcG9ydGVkLWJ5OiBKaW50YWNrIExpbSA8amludGFj a0Bjcy5jb2x1bWJpYS5lZHU+Cj4gPiA+IENjOiBKaW50YWNrIExpbSA8amludGFja0Bjcy5jb2x1 bWJpYS5lZHU+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhh dC5jb20+Cj4gPiA+IC0tLQo+ID4gPiBUaGUgcGF0Y2ggaXMgbmVlZGVkIGZvciBzdGFibGUuCj4g PiA+IENoYW5nZXMgZnJvbSBWMToKPiA+ID4gLSByZXR1cm4gZXJyb3IgaW5zdGVhZCBvZiB3YXJu Cj4gPiA+IC0tLQo+ID4gPiAgIGRyaXZlcnMvdmhvc3QvbmV0LmMgICB8ICAzICstCj4gPiA+ICAg ZHJpdmVycy92aG9zdC92aG9zdC5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQo+ID4gPiAgIGRyaXZlcnMvdmhvc3Qvdmhvc3QuaCB8ICAzICstCj4gPiA+ ICAgMyBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPiA+ ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L25ldC5jIGIvZHJpdmVycy92aG9z dC9uZXQuYwo+ID4gPiBpbmRleCAzNmYzZDBmNDllNjAuLmJjYTg2YmY3MTg5ZiAxMDA2NDQKPiA+ ID4gLS0tIGEvZHJpdmVycy92aG9zdC9uZXQuYwo+ID4gPiArKysgYi9kcml2ZXJzL3Zob3N0L25l dC5jCj4gPiA+IEBAIC0xMjM2LDcgKzEyMzYsOCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfcngoc3Ry dWN0IHZob3N0X25ldCAqbmV0KQo+ID4gPiAgIAkJaWYgKG52cS0+ZG9uZV9pZHggPiBWSE9TVF9O RVRfQkFUQ0gpCj4gPiA+ICAgCQkJdmhvc3RfbmV0X3NpZ25hbF91c2VkKG52cSk7Cj4gPiA+ICAg CQlpZiAodW5saWtlbHkodnFfbG9nKSkKPiA+ID4gLQkJCXZob3N0X2xvZ193cml0ZSh2cSwgdnFf bG9nLCBsb2csIHZob3N0X2xlbik7Cj4gPiA+ICsJCQl2aG9zdF9sb2dfd3JpdGUodnEsIHZxX2xv ZywgbG9nLCB2aG9zdF9sZW4sCj4gPiA+ICsJCQkJCXZxLT5pb3YsIGluKTsKPiA+ID4gICAJCXRv dGFsX2xlbiArPSB2aG9zdF9sZW47Cj4gPiA+ICAgCQlpZiAodW5saWtlbHkodmhvc3RfZXhjZWVk c193ZWlnaHQoKytyZWN2X3BrdHMsIHRvdGFsX2xlbikpKSB7Cj4gPiA+ICAgCQkJdmhvc3RfcG9s bF9xdWV1ZSgmdnEtPnBvbGwpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC92aG9z dC5jIGIvZHJpdmVycy92aG9zdC92aG9zdC5jCj4gPiA+IGluZGV4IDlmNzk0MmNiY2JiMi4uZWUw OTVmMDhmZmQ0IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3Zob3N0L3Zob3N0LmMKPiA+ID4g KysrIGIvZHJpdmVycy92aG9zdC92aG9zdC5jCj4gPiA+IEBAIC0xNzMzLDExICsxNzMzLDcwIEBA IHN0YXRpYyBpbnQgbG9nX3dyaXRlKHZvaWQgX191c2VyICpsb2dfYmFzZSwKPiA+ID4gICAJcmV0 dXJuIHI7Cj4gPiA+ICAgfQo+ID4gPiArc3RhdGljIGludCBsb2dfd3JpdGVfaHZhKHN0cnVjdCB2 aG9zdF92aXJ0cXVldWUgKnZxLCB1NjQgaHZhLCB1NjQgbGVuKQo+ID4gPiArewo+ID4gPiArCXN0 cnVjdCB2aG9zdF91bWVtICp1bWVtID0gdnEtPnVtZW07Cj4gPiA+ICsJc3RydWN0IHZob3N0X3Vt ZW1fbm9kZSAqdTsKPiA+ID4gKwl1NjQgZ3BhOwo+ID4gPiArCWludCByOwo+ID4gPiArCWJvb2wg aGl0ID0gZmFsc2U7Cj4gPiA+ICsKPiA+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHUsICZ1bWVt LT51bWVtX2xpc3QsIGxpbmspIHsKPiA+ID4gKwkJaWYgKHUtPnVzZXJzcGFjZV9hZGRyIDwgaHZh ICYmCj4gPiA+ICsJCSAgICB1LT51c2Vyc3BhY2VfYWRkciArIHUtPnNpemUgPj0KPiA+ID4gKwkJ ICAgIGh2YSArIGxlbikgewo+ID4gU28gdGhpcyB0cmllcyB0byBzZWUgdGhhdCB0aGUgR1BBIHJh bmdlIGlzIGNvbXBsZXRlbHkgd2l0aGluCj4gPiB0aGUgR1ZBIHJlZ2lvbi4gRG9lcyB0aGlzIGhh dmUgdG8gYmUgdGhlIGNhc2U/Cj4gCj4gCj4gWW91IG1lYW4gZS5nIGEgYnVmZmVyIHRoYXQgY3Jv c3NlcyB0aGUgYm91bmRhcnkgb2YgdHdvIG1lbW9yeSByZWdpb25zPwoKWWVzIC0gd2hlcmUgaHZh IGFuZCBndmEgY291bGQgYmUgY29udGlnaW91cy4KCgo+IAo+ID4gQW5kIGlmIHllcyB3aHkgbm90 IHJldHVybiAwIGJlbG93IGluc3RlYWQgb2YgaGl0ID0gdHJ1ZT8KPiAKPiAKPiBJIHRoaW5rIGl0 J3Mgc2FmZSBidXQgbm90IHN1cmUgZm9yIHRoZSBjYXNlIGxpa2UgdHdvIEdQQXMgY2FuIG1hcCB0 byBzYW1lCj4gSFZBPwoKT2ggSSBzZWUuIFllcyB0aGF0J3MgcG9zc2libGUuIERvY3VtZW50IHRo ZSBtb3RpdmF0aW9uPwoKPiAKPiA+IEknbSBhbHNvIGEgYml0IGNvbmNlcm5lZCBhYm91dCBvdmVy ZmxvdyB3aGVuIGFkZHIgKyBsZW4gaXMgb24gYSA2NCBiaXQKPiA+IGJvdW5kYXJ5LiAgV2h5IG5v dCBjaGVjayBhZGQgKyBzaXplIC0gMSBhbmQgaHZhICsgbGVuIC0gMSBpbnN0ZWFkPwo+IAo+IAo+ IExldCBtZSBmaXggdGhpcy4KPiAKPiAKPiA+IAo+ID4gCj4gPiA+ICsJCQlncGEgPSB1LT5zdGFy dCArIGh2YSAtIHUtPnVzZXJzcGFjZV9hZGRyOwo+ID4gPiArCQkJciA9IGxvZ193cml0ZSh2cS0+ bG9nX2Jhc2UsIGdwYSwgbGVuKTsKPiA+ID4gKwkJCWlmIChyIDwgMCkKPiA+ID4gKwkJCQlyZXR1 cm4gcjsKPiA+ID4gKwkJCWhpdCA9IHRydWU7Cj4gPiA+ICsJCX0KPiA+ID4gKwl9Cj4gPiA+ICsK PiA+ID4gKwlpZiAoIWhpdCkKPiA+ID4gKwkJcmV0dXJuIC1FRkFVTFQ7Cj4gPiA+ICsKPiA+ID4g KwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludCBsb2dfdXNlZChz dHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgdTY0IHVzZWRfb2Zmc2V0LCB1NjQgbGVuKQo+ID4g PiArewo+ID4gPiArCXN0cnVjdCBpb3ZlYyBpb3ZbNjRdOwo+ID4gPiArCWludCBpLCByZXQ7Cj4g PiA+ICsKPiA+ID4gKwlpZiAoIXZxLT5pb3RsYikKPiA+ID4gKwkJcmV0dXJuIGxvZ193cml0ZSh2 cS0+bG9nX2Jhc2UsIHZxLT5sb2dfYWRkciArIHVzZWRfb2Zmc2V0LCBsZW4pOwo+ID4gPiArCj4g PiA+ICsJcmV0ID0gdHJhbnNsYXRlX2Rlc2ModnEsICh1NjQpKHVpbnRwdHJfdCl2cS0+dXNlZCAr IHVzZWRfb2Zmc2V0LAo+ID4gPiArCQkJICAgICBsZW4sIGlvdiwgNjQsIFZIT1NUX0FDQ0VTU19X Tyk7Cj4gPiAKPiA+IFdlIGRvbid0IG5lZWQgdGhlIGNhc3QgdG8gdTY0IGhlcmUgZG8gd2U/Cj4g PiAKPiA+ID4gKwlpZiAocmV0KQo+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiArCj4gPiA+ICsJ Zm9yIChpID0gMDsgaSA8IHJldDsgaSsrKSB7Cj4gPiA+ICsJCXJldCA9IGxvZ193cml0ZV9odmEo dnEsCSh1NjQpKHVpbnRwdHJfdClpb3ZbaV0uaW92X2Jhc2UsCj4gPiAKPiA+IFdlIGRvbid0IG5l ZWQgdGhlIGNhc3QgdG8gdTY0IGhlcmUgZG8gd2U/Cj4gPiAKPiA+ID4gKwkJCQkgICAgaW92W2ld Lmlvdl9sZW4pOwo+ID4gPiArCQlpZiAocmV0KQo+ID4gPiArCQkJcmV0dXJuIHJldDsKPiA+ID4g Kwl9Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgIGlu dCB2aG9zdF9sb2dfd3JpdGUoc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsIHN0cnVjdCB2aG9z dF9sb2cgKmxvZywKPiA+ID4gLQkJICAgIHVuc2lnbmVkIGludCBsb2dfbnVtLCB1NjQgbGVuKQo+ ID4gPiArCQkgICAgdW5zaWduZWQgaW50IGxvZ19udW0sIHU2NCBsZW4sIHN0cnVjdCBpb3ZlYyAq aW92LCBpbnQgY291bnQpCj4gPiA+ICAgewo+ID4gPiAgIAlpbnQgaSwgcjsKPiA+ID4gKwlpZiAo dnEtPmlvdGxiKSB7Cj4gPiA+ICsJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4gPiA+ ICsJCQlyID0gbG9nX3dyaXRlX2h2YSh2cSwgKHU2NCkodWludHB0cl90KWlvdltpXS5pb3ZfYmFz ZSwKPiA+ID4gKwkJCQkJICBpb3ZbaV0uaW92X2xlbik7Cj4gPiAKPiA+IFdlIGRvbid0IG5lZWQg dGhlIGNhc3QgdG8gdTY0IGhlcmUgZG8gd2U/Cj4gCj4gCj4gTGV0IG1lIHJlbW92ZSB0aGUgdW5u ZWNlc3NhcnkgdTY0IGNhc3QuCj4gCj4gCj4gPiAKPiA+ID4gKwkJCWlmIChyIDwgMCkKPiA+ID4g KwkJCQlyZXR1cm4gcjsKPiA+ID4gKwkJfQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gKwl9Cj4g PiA+ICsKPiA+ID4gICAJLyogTWFrZSBzdXJlIGRhdGEgd3JpdHRlbiBpcyBzZWVuIGJlZm9yZSBs b2cuICovCj4gPiA+ICAgCXNtcF93bWIoKTsKPiA+IFNob3VsZG4ndCB0aGUgd21iIGJlIGJlZm9y ZSBsb2dfd3JpdGVfaHZhIHRvbz8KPiAKPiAKPiBZZXMuCj4gCj4gVGhhbmtzCj4gCj4gPiAKPiA+ ID4gICAJZm9yIChpID0gMDsgaSA8IGxvZ19udW07ICsraSkgewo+ID4gPiBAQCAtMTc2OSw5ICsx ODI4LDggQEAgc3RhdGljIGludCB2aG9zdF91cGRhdGVfdXNlZF9mbGFncyhzdHJ1Y3Qgdmhvc3Rf dmlydHF1ZXVlICp2cSkKPiA+ID4gICAJCXNtcF93bWIoKTsKPiA+ID4gICAJCS8qIExvZyB1c2Vk IGZsYWcgd3JpdGUuICovCj4gPiA+ICAgCQl1c2VkID0gJnZxLT51c2VkLT5mbGFnczsKPiA+ID4g LQkJbG9nX3dyaXRlKHZxLT5sb2dfYmFzZSwgdnEtPmxvZ19hZGRyICsKPiA+ID4gLQkJCSAgKHVz ZWQgLSAodm9pZCBfX3VzZXIgKil2cS0+dXNlZCksCj4gPiA+IC0JCQkgIHNpemVvZiB2cS0+dXNl ZC0+ZmxhZ3MpOwo+ID4gPiArCQlsb2dfdXNlZCh2cSwgKHVzZWQgLSAodm9pZCBfX3VzZXIgKil2 cS0+dXNlZCksCj4gPiA+ICsJCQkgc2l6ZW9mIHZxLT51c2VkLT5mbGFncyk7Cj4gPiA+ICAgCQlp ZiAodnEtPmxvZ19jdHgpCj4gPiA+ICAgCQkJZXZlbnRmZF9zaWduYWwodnEtPmxvZ19jdHgsIDEp Owo+ID4gPiAgIAl9Cj4gPiA+IEBAIC0xNzg5LDkgKzE4NDcsOCBAQCBzdGF0aWMgaW50IHZob3N0 X3VwZGF0ZV9hdmFpbF9ldmVudChzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgdTE2IGF2YWls X2V2ZW50KQo+ID4gPiAgIAkJc21wX3dtYigpOwo+ID4gPiAgIAkJLyogTG9nIGF2YWlsIGV2ZW50 IHdyaXRlICovCj4gPiA+ICAgCQl1c2VkID0gdmhvc3RfYXZhaWxfZXZlbnQodnEpOwo+ID4gPiAt CQlsb2dfd3JpdGUodnEtPmxvZ19iYXNlLCB2cS0+bG9nX2FkZHIgKwo+ID4gPiAtCQkJICAodXNl ZCAtICh2b2lkIF9fdXNlciAqKXZxLT51c2VkKSwKPiA+ID4gLQkJCSAgc2l6ZW9mICp2aG9zdF9h dmFpbF9ldmVudCh2cSkpOwo+ID4gPiArCQlsb2dfdXNlZCh2cSwgKHVzZWQgLSAodm9pZCBfX3Vz ZXIgKil2cS0+dXNlZCksCj4gPiA+ICsJCQkgc2l6ZW9mICp2aG9zdF9hdmFpbF9ldmVudCh2cSkp Owo+ID4gPiAgIAkJaWYgKHZxLT5sb2dfY3R4KQo+ID4gPiAgIAkJCWV2ZW50ZmRfc2lnbmFsKHZx LT5sb2dfY3R4LCAxKTsKPiA+ID4gICAJfQo+ID4gPiBAQCAtMjE5MSwxMCArMjI0OCw4IEBAIHN0 YXRpYyBpbnQgX192aG9zdF9hZGRfdXNlZF9uKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLAo+ ID4gPiAgIAkJLyogTWFrZSBzdXJlIGRhdGEgaXMgc2VlbiBiZWZvcmUgbG9nLiAqLwo+ID4gPiAg IAkJc21wX3dtYigpOwo+ID4gPiAgIAkJLyogTG9nIHVzZWQgcmluZyBlbnRyeSB3cml0ZS4gKi8K PiA+ID4gLQkJbG9nX3dyaXRlKHZxLT5sb2dfYmFzZSwKPiA+ID4gLQkJCSAgdnEtPmxvZ19hZGRy ICsKPiA+ID4gLQkJCSAgICgodm9pZCBfX3VzZXIgKil1c2VkIC0gKHZvaWQgX191c2VyICopdnEt PnVzZWQpLAo+ID4gPiAtCQkJICBjb3VudCAqIHNpemVvZiAqdXNlZCk7Cj4gPiA+ICsJCWxvZ191 c2VkKHZxLCAoKHZvaWQgX191c2VyICopdXNlZCAtICh2b2lkIF9fdXNlciAqKXZxLT51c2VkKSwK PiA+ID4gKwkJCSBjb3VudCAqIHNpemVvZiAqdXNlZCk7Cj4gPiA+ICAgCX0KPiA+ID4gICAJb2xk ID0gdnEtPmxhc3RfdXNlZF9pZHg7Cj4gPiA+ICAgCW5ldyA9ICh2cS0+bGFzdF91c2VkX2lkeCAr PSBjb3VudCk7Cj4gPiA+IEBAIC0yMjM2LDkgKzIyOTEsOCBAQCBpbnQgdmhvc3RfYWRkX3VzZWRf bihzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgc3RydWN0IHZyaW5nX3VzZWRfZWxlbSAqaGVh ZHMsCj4gPiA+ICAgCQkvKiBNYWtlIHN1cmUgdXNlZCBpZHggaXMgc2VlbiBiZWZvcmUgbG9nLiAq Lwo+ID4gPiAgIAkJc21wX3dtYigpOwo+ID4gPiAgIAkJLyogTG9nIHVzZWQgaW5kZXggdXBkYXRl LiAqLwo+ID4gPiAtCQlsb2dfd3JpdGUodnEtPmxvZ19iYXNlLAo+ID4gPiAtCQkJICB2cS0+bG9n X2FkZHIgKyBvZmZzZXRvZihzdHJ1Y3QgdnJpbmdfdXNlZCwgaWR4KSwKPiA+ID4gLQkJCSAgc2l6 ZW9mIHZxLT51c2VkLT5pZHgpOwo+ID4gPiArCQlsb2dfdXNlZCh2cSwgb2Zmc2V0b2Yoc3RydWN0 IHZyaW5nX3VzZWQsIGlkeCksCj4gPiA+ICsJCQkgc2l6ZW9mIHZxLT51c2VkLT5pZHgpOwo+ID4g PiAgIAkJaWYgKHZxLT5sb2dfY3R4KQo+ID4gPiAgIAkJCWV2ZW50ZmRfc2lnbmFsKHZxLT5sb2df Y3R4LCAxKTsKPiA+ID4gICAJfQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC92aG9z dC5oIGIvZHJpdmVycy92aG9zdC92aG9zdC5oCj4gPiA+IGluZGV4IDQ2NmVmNzU0MjI5MS4uMWI2 NzVkYWQ1ZTA1IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3Zob3N0L3Zob3N0LmgKPiA+ID4g KysrIGIvZHJpdmVycy92aG9zdC92aG9zdC5oCj4gPiA+IEBAIC0yMDUsNyArMjA1LDggQEAgYm9v bCB2aG9zdF92cV9hdmFpbF9lbXB0eShzdHJ1Y3Qgdmhvc3RfZGV2ICosIHN0cnVjdCB2aG9zdF92 aXJ0cXVldWUgKik7Cj4gPiA+ICAgYm9vbCB2aG9zdF9lbmFibGVfbm90aWZ5KHN0cnVjdCB2aG9z dF9kZXYgKiwgc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqKTsKPiA+ID4gICBpbnQgdmhvc3RfbG9n X3dyaXRlKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCBzdHJ1Y3Qgdmhvc3RfbG9nICpsb2cs Cj4gPiA+IC0JCSAgICB1bnNpZ25lZCBpbnQgbG9nX251bSwgdTY0IGxlbik7Cj4gPiA+ICsJCSAg ICB1bnNpZ25lZCBpbnQgbG9nX251bSwgdTY0IGxlbiwKPiA+ID4gKwkJICAgIHN0cnVjdCBpb3Zl YyAqaW92LCBpbnQgY291bnQpOwo+ID4gPiAgIGludCB2cV9pb3RsYl9wcmVmZXRjaChzdHJ1Y3Qg dmhvc3RfdmlydHF1ZXVlICp2cSk7Cj4gPiA+ICAgc3RydWN0IHZob3N0X21zZ19ub2RlICp2aG9z dF9uZXdfbXNnKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCBpbnQgdHlwZSk7Cj4gPiA+IC0t IAo+ID4gPiAyLjE3LjEKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWls bWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u