From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [Mesa-dev] [RFC PATCH] radeonsi: set a per-buffer flag that disables inter-process sharing (v2) Date: Wed, 19 Jul 2017 15:35:51 +0800 Message-ID: <596F0BD7.3070805@amd.com> References: <1500408524-925-1-git-send-email-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1500408524-925-1-git-send-email-maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= , mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org CgpPbiAyMDE35bm0MDfmnIgxOeaXpSAwNDowOCwgTWFyZWsgT2zFocOhayB3cm90ZToKPiBGcm9t OiBNYXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgo+Cj4gRm9yIGxvd2VyIG92ZXJo ZWFkIGluIHRoZSBDUyBpb2N0bC4KPiBXaW5zeXMgYWxsb2NhdG9ycyBhcmUgbm90IHVzZWQgd2l0 aCBpbnRlcnByb2Nlc3Mtc2hhcmFibGUgcmVzb3VyY2VzLgpIaSBNYXJlaywKCkNvdWxkIEkga25v dyBmcm9tIGhvdyB5b3VyIHRoaXMgd2F5IHJlZHVjZXMgb3ZlcmhlYWQgaW4gQ1MgaW9jdGw/IApy ZXVzaW5nIEJPIHRvIHNob3J0IGJvIGxpc3Q/CgpUaGFua3MsCkRhdmlkIFpob3UKPgo+IHYyOiBJ dCBzaG91bGRuJ3QgY3Jhc2ggYW55bW9yZSwgYnV0IHRoZSBrZXJuZWwgd2lsbCByZWplY3QgdGhl IG5ldyBmbGFnLgo+IC0tLQo+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9yYWRlb24vcjYwMF9idWZm ZXJfY29tbW9uLmMgfCAgNyArKysrKwo+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9yYWRlb24vcmFk ZW9uX3dpbnN5cy5oICAgICAgfCAyMCArKysrKysrKysrKy0tLQo+ICAgc3JjL2dhbGxpdW0vd2lu c3lzL2FtZGdwdS9kcm0vYW1kZ3B1X2JvLmMgICAgICAgfCAzNiArKysrKysrKysrKysrKysrLS0t LS0tLS0tCj4gICBzcmMvZ2FsbGl1bS93aW5zeXMvcmFkZW9uL2RybS9yYWRlb25fZHJtX2JvLmMg ICB8IDI3ICsrKysrKysrKysrLS0tLS0tLS0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0 aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJp dmVycy9yYWRlb24vcjYwMF9idWZmZXJfY29tbW9uLmMgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL3Jh ZGVvbi9yNjAwX2J1ZmZlcl9jb21tb24uYwo+IGluZGV4IGRkMWMyMDkuLjI3NDdhYzQgMTAwNjQ0 Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9yYWRlb24vcjYwMF9idWZmZXJfY29tbW9uLmMK PiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL3JhZGVvbi9yNjAwX2J1ZmZlcl9jb21tb24uYwo+ IEBAIC0xNjAsMjAgKzE2MCwyNyBAQCB2b2lkIHI2MDBfaW5pdF9yZXNvdXJjZV9maWVsZHMoc3Ry dWN0IHI2MDBfY29tbW9uX3NjcmVlbiAqcnNjcmVlbiwKPiAgIAl9Cj4gICAKPiAgIAkvKiBUaWxl ZCB0ZXh0dXJlcyBhcmUgdW5tYXBwYWJsZS4gQWx3YXlzIHB1dCB0aGVtIGluIFZSQU0uICovCj4g ICAJaWYgKChyZXMtPmIuYi50YXJnZXQgIT0gUElQRV9CVUZGRVIgJiYgIXJ0ZXgtPnN1cmZhY2Uu aXNfbGluZWFyKSB8fAo+ICAgCSAgICByZXMtPmZsYWdzICYgUjYwMF9SRVNPVVJDRV9GTEFHX1VO TUFQUEFCTEUpIHsKPiAgIAkJcmVzLT5kb21haW5zID0gUkFERU9OX0RPTUFJTl9WUkFNOwo+ICAg CQlyZXMtPmZsYWdzIHw9IFJBREVPTl9GTEFHX05PX0NQVV9BQ0NFU1MgfAo+ICAgCQkJIFJBREVP Tl9GTEFHX0dUVF9XQzsKPiAgIAl9Cj4gICAKPiArCS8qIE9ubHkgZGlzcGxheWFibGUgc2luZ2xl LXNhbXBsZSB0ZXh0dXJlcyBjYW4gYmUgc2hhcmVkIGJldHdlZW4KPiArCSAqIHByb2Nlc3Nlcy4g Ki8KPiArCWlmIChyZXMtPmIuYi50YXJnZXQgPT0gUElQRV9CVUZGRVIgfHwKPiArCSAgICByZXMt PmIuYi5ucl9zYW1wbGVzID49IDIgfHwKPiArCSAgICBydGV4LT5zdXJmYWNlLm1pY3JvX3RpbGVf bW9kZSAhPSBSQURFT05fTUlDUk9fTU9ERV9ESVNQTEFZKQo+ICsJCXJlcy0+ZmxhZ3MgfD0gUkFE RU9OX0ZMQUdfTk9fSU5URVJQUk9DRVNTX1NIQVJJTkc7Cj4gKwo+ICAgCS8qIElmIFZSQU0gaXMg anVzdCBzdG9sZW4gc3lzdGVtIG1lbW9yeSwgYWxsb3cgYm90aCBWUkFNIGFuZAo+ICAgCSAqIEdU VCwgd2hpY2hldmVyIGhhcyBmcmVlIHNwYWNlLiBJZiBhIGJ1ZmZlciBpcyBldmljdGVkIGZyb20K PiAgIAkgKiBWUkFNIHRvIEdUVCwgaXQgd2lsbCBzdGF5IHRoZXJlLgo+ICAgCSAqCj4gICAJICog RFJNIDMuNi4wIGhhcyBnb29kIEJPIG1vdmUgdGhyb3R0bGluZywgc28gd2UgY2FuIGFsbG93IFZS QU0tb25seQo+ICAgCSAqIHBsYWNlbWVudHMgZXZlbiB3aXRoIGEgbG93IGFtb3VudCBvZiBzdG9s ZW4gVlJBTS4KPiAgIAkgKi8KPiAgIAlpZiAoIXJzY3JlZW4tPmluZm8uaGFzX2RlZGljYXRlZF92 cmFtICYmCj4gICAJICAgIChyc2NyZWVuLT5pbmZvLmRybV9tYWpvciA8IDMgfHwgcnNjcmVlbi0+ aW5mby5kcm1fbWlub3IgPCA2KSAmJgo+ICAgCSAgICByZXMtPmRvbWFpbnMgPT0gUkFERU9OX0RP TUFJTl9WUkFNKSB7Cj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvcmFkZW9uL3Jh ZGVvbl93aW5zeXMuaCBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvcmFkZW9uL3JhZGVvbl93aW5zeXMu aAo+IGluZGV4IDM1MWVkY2QuLjBhYmNiNTYgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJp dmVycy9yYWRlb24vcmFkZW9uX3dpbnN5cy5oCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9y YWRlb24vcmFkZW9uX3dpbnN5cy5oCj4gQEAgLTQ3LDIwICs0NywyMSBAQCBlbnVtIHJhZGVvbl9i b19kb21haW4geyAvKiBiaXRmaWVsZCAqLwo+ICAgICAgIFJBREVPTl9ET01BSU5fR1RUICA9IDIs Cj4gICAgICAgUkFERU9OX0RPTUFJTl9WUkFNID0gNCwKPiAgICAgICBSQURFT05fRE9NQUlOX1ZS QU1fR1RUID0gUkFERU9OX0RPTUFJTl9WUkFNIHwgUkFERU9OX0RPTUFJTl9HVFQKPiAgIH07Cj4g ICAKPiAgIGVudW0gcmFkZW9uX2JvX2ZsYWcgeyAvKiBiaXRmaWVsZCAqLwo+ICAgICAgIFJBREVP Tl9GTEFHX0dUVF9XQyA9ICAgICAgICAoMSA8PCAwKSwKPiAgICAgICBSQURFT05fRkxBR19OT19D UFVfQUNDRVNTID0gKDEgPDwgMSksCj4gICAgICAgUkFERU9OX0ZMQUdfTk9fU1VCQUxMT0MgPSAg ICgxIDw8IDIpLAo+ICAgICAgIFJBREVPTl9GTEFHX1NQQVJTRSA9ICAgICAgICAoMSA8PCAzKSwK PiArICAgIFJBREVPTl9GTEFHX05PX0lOVEVSUFJPQ0VTU19TSEFSSU5HID0gKDEgPDwgNCksCj4g ICB9Owo+ICAgCj4gICBlbnVtIHJhZGVvbl9ib191c2FnZSB7IC8qIGJpdGZpZWxkICovCj4gICAg ICAgUkFERU9OX1VTQUdFX1JFQUQgPSAyLAo+ICAgICAgIFJBREVPTl9VU0FHRV9XUklURSA9IDQs Cj4gICAgICAgUkFERU9OX1VTQUdFX1JFQURXUklURSA9IFJBREVPTl9VU0FHRV9SRUFEIHwgUkFE RU9OX1VTQUdFX1dSSVRFLAo+ICAgCj4gICAgICAgLyogVGhlIHdpbnN5cyBlbnN1cmVzIHRoYXQg dGhlIENTIHN1Ym1pc3Npb24gd2lsbCBiZSBzY2hlZHVsZWQgYWZ0ZXIKPiAgICAgICAgKiBwcmV2 aW91c2x5IGZsdXNoZWQgQ1NzIHJlZmVyZW5jaW5nIHRoaXMgQk8gaW4gYSBjb25mbGljdGluZyB3 YXkuCj4gICAgICAgICovCj4gQEAgLTY4NSwyOCArNjg2LDMzIEBAIHN0YXRpYyBpbmxpbmUgZW51 bSByYWRlb25fYm9fZG9tYWluIHJhZGVvbl9kb21haW5fZnJvbV9oZWFwKGVudW0gcmFkZW9uX2hl YXAgaGVhCj4gICAgICAgZGVmYXVsdDoKPiAgICAgICAgICAgYXNzZXJ0KDApOwo+ICAgICAgICAg ICByZXR1cm4gKGVudW0gcmFkZW9uX2JvX2RvbWFpbikwOwo+ICAgICAgIH0KPiAgIH0KPiAgIAo+ ICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCByYWRlb25fZmxhZ3NfZnJvbV9oZWFwKGVudW0gcmFk ZW9uX2hlYXAgaGVhcCkKPiAgIHsKPiAgICAgICBzd2l0Y2ggKGhlYXApIHsKPiAgICAgICBjYXNl IFJBREVPTl9IRUFQX1ZSQU1fTk9fQ1BVX0FDQ0VTUzoKPiAtICAgICAgICByZXR1cm4gUkFERU9O X0ZMQUdfR1RUX1dDIHwgUkFERU9OX0ZMQUdfTk9fQ1BVX0FDQ0VTUzsKPiArICAgICAgICByZXR1 cm4gUkFERU9OX0ZMQUdfR1RUX1dDIHwKPiArICAgICAgICAgICAgICAgUkFERU9OX0ZMQUdfTk9f Q1BVX0FDQ0VTUyB8Cj4gKyAgICAgICAgICAgICAgIFJBREVPTl9GTEFHX05PX0lOVEVSUFJPQ0VT U19TSEFSSU5HOwo+ICsKPiAgICAgICBjYXNlIFJBREVPTl9IRUFQX1ZSQU06Cj4gICAgICAgY2Fz ZSBSQURFT05fSEVBUF9WUkFNX0dUVDoKPiAgICAgICBjYXNlIFJBREVPTl9IRUFQX0dUVF9XQzoK PiAtICAgICAgICByZXR1cm4gUkFERU9OX0ZMQUdfR1RUX1dDOwo+ICsgICAgICAgIHJldHVybiBS QURFT05fRkxBR19HVFRfV0MgfAo+ICsgICAgICAgICAgICAgICBSQURFT05fRkxBR19OT19JTlRF UlBST0NFU1NfU0hBUklORzsKPiArCj4gICAgICAgY2FzZSBSQURFT05fSEVBUF9HVFQ6Cj4gICAg ICAgZGVmYXVsdDoKPiAtICAgICAgICByZXR1cm4gMDsKPiArICAgICAgICByZXR1cm4gUkFERU9O X0ZMQUdfTk9fSU5URVJQUk9DRVNTX1NIQVJJTkc7Cj4gICAgICAgfQo+ICAgfQo+ICAgCj4gICAv KiBUaGUgcGIgY2FjaGUgYnVja2V0IGlzIGNob3NlbiB0byBtaW5pbWl6ZSBwYl9jYWNoZSBtaXNz ZXMuCj4gICAgKiBJdCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMyBpbmNsdXNpdmUuCj4gICAgKi8K PiAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcmFkZW9uX2dldF9wYl9jYWNoZV9idWNrZXRfaW5k ZXgoZW51bSByYWRlb25faGVhcCBoZWFwKQo+ICAgewo+ICAgICAgIHN3aXRjaCAoaGVhcCkgewo+ ICAgICAgIGNhc2UgUkFERU9OX0hFQVBfVlJBTV9OT19DUFVfQUNDRVNTOgo+IEBAIC03MjQsMjIg KzczMCwyOCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHJhZGVvbl9nZXRfcGJfY2FjaGVfYnVj a2V0X2luZGV4KGVudW0gcmFkZW9uX2hlYXAgaGVhcCkKPiAgIAo+ICAgLyogUmV0dXJuIHRoZSBo ZWFwIGluZGV4IGZvciB3aW5zeXMgYWxsb2NhdG9ycywgb3IgLTEgb24gZmFpbHVyZS4gKi8KPiAg IHN0YXRpYyBpbmxpbmUgaW50IHJhZGVvbl9nZXRfaGVhcF9pbmRleChlbnVtIHJhZGVvbl9ib19k b21haW4gZG9tYWluLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVudW0gcmFkZW9uX2JvX2ZsYWcgZmxhZ3MpCj4gICB7Cj4gICAgICAgLyogVlJBTSBpbXBsaWVz IFdDICh3cml0ZSBjb21iaW5pbmcpICovCj4gICAgICAgYXNzZXJ0KCEoZG9tYWluICYgUkFERU9O X0RPTUFJTl9WUkFNKSB8fCBmbGFncyAmIFJBREVPTl9GTEFHX0dUVF9XQyk7Cj4gICAgICAgLyog Tk9fQ1BVX0FDQ0VTUyBpbXBsaWVzIFZSQU0gb25seS4gKi8KPiAgICAgICBhc3NlcnQoIShmbGFn cyAmIFJBREVPTl9GTEFHX05PX0NQVV9BQ0NFU1MpIHx8IGRvbWFpbiA9PSBSQURFT05fRE9NQUlO X1ZSQU0pOwo+ICAgCj4gKyAgICAvKiBSZXNvdXJjZXMgd2l0aCBpbnRlcnByb2Nlc3Mgc2hhcmlu ZyBkb24ndCB1c2UgYW55IHdpbnN5cyBhbGxvY2F0b3JzLiAqLwo+ICsgICAgaWYgKCEoZmxhZ3Mg JiBSQURFT05fRkxBR19OT19JTlRFUlBST0NFU1NfU0hBUklORykpCj4gKyAgICAgICAgcmV0dXJu IC0xOwo+ICsKPiAgICAgICAvKiBVbnN1cHBvcnRlZCBmbGFnczogTk9fU1VCQUxMT0MsIFNQQVJT RS4gKi8KPiAtICAgIGlmIChmbGFncyAmIH4oUkFERU9OX0ZMQUdfR1RUX1dDIHwgUkFERU9OX0ZM QUdfTk9fQ1BVX0FDQ0VTUykpCj4gKyAgICBpZiAoZmxhZ3MgJiB+KFJBREVPTl9GTEFHX0dUVF9X QyB8Cj4gKyAgICAgICAgICAgICAgICAgIFJBREVPTl9GTEFHX05PX0NQVV9BQ0NFU1MgfAo+ICsg ICAgICAgICAgICAgICAgICBSQURFT05fRkxBR19OT19JTlRFUlBST0NFU1NfU0hBUklORykpCj4g ICAgICAgICAgIHJldHVybiAtMTsKPiAgIAo+ICAgICAgIHN3aXRjaCAoZG9tYWluKSB7Cj4gICAg ICAgY2FzZSBSQURFT05fRE9NQUlOX1ZSQU06Cj4gICAgICAgICAgIGlmIChmbGFncyAmIFJBREVP Tl9GTEFHX05PX0NQVV9BQ0NFU1MpCj4gICAgICAgICAgICAgICByZXR1cm4gUkFERU9OX0hFQVBf VlJBTV9OT19DUFVfQUNDRVNTOwo+ICAgICAgICAgICBlbHNlCj4gICAgICAgICAgICAgICByZXR1 cm4gUkFERU9OX0hFQVBfVlJBTTsKPiAgICAgICBjYXNlIFJBREVPTl9ET01BSU5fVlJBTV9HVFQ6 Cj4gICAgICAgICAgIHJldHVybiBSQURFT05fSEVBUF9WUkFNX0dUVDsKPiBkaWZmIC0tZ2l0IGEv c3JjL2dhbGxpdW0vd2luc3lzL2FtZGdwdS9kcm0vYW1kZ3B1X2JvLmMgYi9zcmMvZ2FsbGl1bS93 aW5zeXMvYW1kZ3B1L2RybS9hbWRncHVfYm8uYwo+IGluZGV4IDk3YmJlMjMuLjA2YjgxOTggMTAw NjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vd2luc3lzL2FtZGdwdS9kcm0vYW1kZ3B1X2JvLmMKPiAr KysgYi9zcmMvZ2FsbGl1bS93aW5zeXMvYW1kZ3B1L2RybS9hbWRncHVfYm8uYwo+IEBAIC0zMSwy MCArMzEsMjQgQEAKPiAgIAo+ICAgI2luY2x1ZGUgImFtZGdwdV9jcy5oIgo+ICAgCj4gICAjaW5j bHVkZSAib3Mvb3NfdGltZS5oIgo+ICAgI2luY2x1ZGUgInN0YXRlX3RyYWNrZXIvZHJtX2RyaXZl ci5oIgo+ICAgI2luY2x1ZGUgPGFtZGdwdV9kcm0uaD4KPiAgICNpbmNsdWRlIDx4Zjg2ZHJtLmg+ Cj4gICAjaW5jbHVkZSA8c3RkaW8uaD4KPiAgICNpbmNsdWRlIDxpbnR0eXBlcy5oPgo+ICAgCj4g KyNpZm5kZWYgQU1ER1BVX0dFTV9DUkVBVEVfTk9fSU5URVJQUk9DRVNTX1NIQVJJTkcKPiArI2Rl ZmluZSBBTURHUFVfR0VNX0NSRUFURV9OT19JTlRFUlBST0NFU1NfU0hBUklORyAoMSA8PCA2KQo+ ICsjZW5kaWYKPiArCj4gICAvKiBTZXQgdG8gMSBmb3IgdmVyYm9zZSBvdXRwdXQgc2hvd2luZyBj b21taXR0ZWQgc3BhcnNlIGJ1ZmZlciByYW5nZXMuICovCj4gICAjZGVmaW5lIERFQlVHX1NQQVJT RV9DT01NSVRTIDAKPiAgIAo+ICAgc3RydWN0IGFtZGdwdV9zcGFyc2VfYmFja2luZ19jaHVuayB7 Cj4gICAgICB1aW50MzJfdCBiZWdpbiwgZW5kOwo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIHN0cnVj dCBwYl9idWZmZXIgKgo+ICAgYW1kZ3B1X2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX3dpbnN5cyAq cndzLAo+ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBzaXplLAo+IEBAIC0zOTUsMjAgKzM5 OSwyMiBAQCBzdGF0aWMgc3RydWN0IGFtZGdwdV93aW5zeXNfYm8gKmFtZGdwdV9jcmVhdGVfYm8o c3RydWN0IGFtZGdwdV93aW5zeXMgKndzLAo+ICAgCj4gICAgICBpZiAoaW5pdGlhbF9kb21haW4g JiBSQURFT05fRE9NQUlOX1ZSQU0pCj4gICAgICAgICByZXF1ZXN0LnByZWZlcnJlZF9oZWFwIHw9 IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU07Cj4gICAgICBpZiAoaW5pdGlhbF9kb21haW4gJiBSQURF T05fRE9NQUlOX0dUVCkKPiAgICAgICAgIHJlcXVlc3QucHJlZmVycmVkX2hlYXAgfD0gQU1ER1BV X0dFTV9ET01BSU5fR1RUOwo+ICAgCj4gICAgICBpZiAoZmxhZ3MgJiBSQURFT05fRkxBR19OT19D UFVfQUNDRVNTKQo+ICAgICAgICAgcmVxdWVzdC5mbGFncyB8PSBBTURHUFVfR0VNX0NSRUFURV9O T19DUFVfQUNDRVNTOwo+ICAgICAgaWYgKGZsYWdzICYgUkFERU9OX0ZMQUdfR1RUX1dDKQo+ICAg ICAgICAgcmVxdWVzdC5mbGFncyB8PSBBTURHUFVfR0VNX0NSRUFURV9DUFVfR1RUX1VTV0M7Cj4g KyAgIGlmIChmbGFncyAmIFJBREVPTl9GTEFHX05PX0lOVEVSUFJPQ0VTU19TSEFSSU5HKQo+ICsg ICAgICByZXF1ZXN0LmZsYWdzIHw9IEFNREdQVV9HRU1fQ1JFQVRFX05PX0lOVEVSUFJPQ0VTU19T SEFSSU5HOwo+ICAgCj4gICAgICByID0gYW1kZ3B1X2JvX2FsbG9jKHdzLT5kZXYsICZyZXF1ZXN0 LCAmYnVmX2hhbmRsZSk7Cj4gICAgICBpZiAocikgewo+ICAgICAgICAgZnByaW50ZihzdGRlcnIs ICJhbWRncHU6IEZhaWxlZCB0byBhbGxvY2F0ZSBhIGJ1ZmZlcjpcbiIpOwo+ICAgICAgICAgZnBy aW50ZihzdGRlcnIsICJhbWRncHU6ICAgIHNpemUgICAgICA6ICUiUFJJdTY0IiBieXRlc1xuIiwg c2l6ZSk7Cj4gICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFtZGdwdTogICAgYWxpZ25tZW50IDog JXUgYnl0ZXNcbiIsIGFsaWdubWVudCk7Cj4gICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFtZGdw dTogICAgZG9tYWlucyAgIDogJXVcbiIsIGluaXRpYWxfZG9tYWluKTsKPiAgICAgICAgIGdvdG8g ZXJyb3JfYm9fYWxsb2M7Cj4gICAgICB9Cj4gICAKPiBAQCAtMTEyNywyMSArMTEzMywyMSBAQCBz dGF0aWMgdm9pZCBhbWRncHVfYnVmZmVyX3NldF9tZXRhZGF0YShzdHJ1Y3QgcGJfYnVmZmVyICpf YnVmLAo+ICAgCj4gICBzdGF0aWMgc3RydWN0IHBiX2J1ZmZlciAqCj4gICBhbWRncHVfYm9fY3Jl YXRlKHN0cnVjdCByYWRlb25fd2luc3lzICpyd3MsCj4gICAgICAgICAgICAgICAgICAgIHVpbnQ2 NF90IHNpemUsCj4gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFsaWdubWVudCwKPiAgICAg ICAgICAgICAgICAgICAgZW51bSByYWRlb25fYm9fZG9tYWluIGRvbWFpbiwKPiAgICAgICAgICAg ICAgICAgICAgZW51bSByYWRlb25fYm9fZmxhZyBmbGFncykKPiAgIHsKPiAgICAgIHN0cnVjdCBh bWRncHVfd2luc3lzICp3cyA9IGFtZGdwdV93aW5zeXMocndzKTsKPiAgICAgIHN0cnVjdCBhbWRn cHVfd2luc3lzX2JvICpibzsKPiAtICAgdW5zaWduZWQgdXNhZ2UgPSAwLCBwYl9jYWNoZV9idWNr ZXQ7Cj4gKyAgIHVuc2lnbmVkIHVzYWdlID0gMCwgcGJfY2FjaGVfYnVja2V0ID0gMDsKPiAgIAo+ ICAgICAgLyogVlJBTSBpbXBsaWVzIFdDLiBUaGlzIGlzIG5vdCBvcHRpb25hbC4gKi8KPiAgICAg IGFzc2VydCghKGRvbWFpbiAmIFJBREVPTl9ET01BSU5fVlJBTSkgfHwgZmxhZ3MgJiBSQURFT05f RkxBR19HVFRfV0MpOwo+ICAgCj4gICAgICAvKiBOT19DUFVfQUNDRVNTIGlzIHZhbGlkIHdpdGgg VlJBTSBvbmx5LiAqLwo+ICAgICAgYXNzZXJ0KGRvbWFpbiA9PSBSQURFT05fRE9NQUlOX1ZSQU0g fHwgIShmbGFncyAmIFJBREVPTl9GTEFHX05PX0NQVV9BQ0NFU1MpKTsKPiAgIAo+ICAgICAgLyog U3ViLWFsbG9jYXRlIHNtYWxsIGJ1ZmZlcnMgZnJvbSBzbGFicy4gKi8KPiAgICAgIGlmICghKGZs YWdzICYgKFJBREVPTl9GTEFHX05PX1NVQkFMTE9DIHwgUkFERU9OX0ZMQUdfU1BBUlNFKSkgJiYK PiAgICAgICAgICBzaXplIDw9ICgxIDw8IEFNREdQVV9TTEFCX01BWF9TSVpFX0xPRzIpICYmCj4g QEAgLTExODIsNDggKzExODgsNTIgQEAgbm9fc2xhYjoKPiAgICAgIC8qIFRoaXMgZmxhZyBpcyBp cnJlbGV2YW50IGZvciB0aGUgY2FjaGUuICovCj4gICAgICBmbGFncyAmPSB+UkFERU9OX0ZMQUdf Tk9fU1VCQUxMT0M7Cj4gICAKPiAgICAgIC8qIEFsaWduIHNpemUgdG8gcGFnZSBzaXplLiBUaGlz IGlzIHRoZSBtaW5pbXVtIGFsaWdubWVudCBmb3Igbm9ybWFsCj4gICAgICAgKiBCT3MuIEFsaWdu aW5nIHRoaXMgaGVyZSBoZWxwcyB0aGUgY2FjaGVkIGJ1Zm1nci4gRXNwZWNpYWxseSBzbWFsbCBC T3MsCj4gICAgICAgKiBsaWtlIGNvbnN0YW50L3VuaWZvcm0gYnVmZmVycywgY2FuIGJlbmVmaXQg ZnJvbSBiZXR0ZXIgYW5kIG1vcmUgcmV1c2UuCj4gICAgICAgKi8KPiAgICAgIHNpemUgPSBhbGln bjY0KHNpemUsIHdzLT5pbmZvLmdhcnRfcGFnZV9zaXplKTsKPiAgICAgIGFsaWdubWVudCA9IGFs aWduKGFsaWdubWVudCwgd3MtPmluZm8uZ2FydF9wYWdlX3NpemUpOwo+ICAgCj4gLSAgIGludCBo ZWFwID0gcmFkZW9uX2dldF9oZWFwX2luZGV4KGRvbWFpbiwgZmxhZ3MpOwo+IC0gICBhc3NlcnQo aGVhcCA+PSAwICYmIGhlYXAgPCBSQURFT05fTUFYX0NBQ0hFRF9IRUFQUyk7Cj4gLSAgIHVzYWdl ID0gMSA8PCBoZWFwOyAvKiBPbmx5IHNldCBvbmUgdXNhZ2UgYml0IGZvciBlYWNoIGhlYXAuICov Cj4gKyAgIGJvb2wgdXNlX3JldXNhYmxlX3Bvb2wgPSBmbGFncyAmIFJBREVPTl9GTEFHX05PX0lO VEVSUFJPQ0VTU19TSEFSSU5HOwo+ICAgCj4gLSAgIHBiX2NhY2hlX2J1Y2tldCA9IHJhZGVvbl9n ZXRfcGJfY2FjaGVfYnVja2V0X2luZGV4KGhlYXApOwo+IC0gICBhc3NlcnQocGJfY2FjaGVfYnVj a2V0IDwgQVJSQVlfU0laRSh3cy0+Ym9fY2FjaGUuYnVja2V0cykpOwo+ICsgICBpZiAodXNlX3Jl dXNhYmxlX3Bvb2wpIHsKPiArICAgICAgIGludCBoZWFwID0gcmFkZW9uX2dldF9oZWFwX2luZGV4 KGRvbWFpbiwgZmxhZ3MpOwo+ICsgICAgICAgYXNzZXJ0KGhlYXAgPj0gMCAmJiBoZWFwIDwgUkFE RU9OX01BWF9DQUNIRURfSEVBUFMpOwo+ICsgICAgICAgdXNhZ2UgPSAxIDw8IGhlYXA7IC8qIE9u bHkgc2V0IG9uZSB1c2FnZSBiaXQgZm9yIGVhY2ggaGVhcC4gKi8KPiAgIAo+IC0gICAvKiBHZXQg YSBidWZmZXIgZnJvbSB0aGUgY2FjaGUuICovCj4gLSAgIGJvID0gKHN0cnVjdCBhbWRncHVfd2lu c3lzX2JvKikKPiAtICAgICAgICBwYl9jYWNoZV9yZWNsYWltX2J1ZmZlcigmd3MtPmJvX2NhY2hl LCBzaXplLCBhbGlnbm1lbnQsIHVzYWdlLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBiX2NhY2hlX2J1Y2tldCk7Cj4gLSAgIGlmIChibykKPiAtICAgICAgcmV0dXJuICZiby0+ YmFzZTsKPiArICAgICAgIHBiX2NhY2hlX2J1Y2tldCA9IHJhZGVvbl9nZXRfcGJfY2FjaGVfYnVj a2V0X2luZGV4KGhlYXApOwo+ICsgICAgICAgYXNzZXJ0KHBiX2NhY2hlX2J1Y2tldCA8IEFSUkFZ X1NJWkUod3MtPmJvX2NhY2hlLmJ1Y2tldHMpKTsKPiArCj4gKyAgICAgICAvKiBHZXQgYSBidWZm ZXIgZnJvbSB0aGUgY2FjaGUuICovCj4gKyAgICAgICBibyA9IChzdHJ1Y3QgYW1kZ3B1X3dpbnN5 c19ibyopCj4gKyAgICAgICAgICAgIHBiX2NhY2hlX3JlY2xhaW1fYnVmZmVyKCZ3cy0+Ym9fY2Fj aGUsIHNpemUsIGFsaWdubWVudCwgdXNhZ2UsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBiX2NhY2hlX2J1Y2tldCk7Cj4gKyAgICAgICBpZiAoYm8pCj4gKyAgICAgICAg ICByZXR1cm4gJmJvLT5iYXNlOwo+ICsgICB9Cj4gICAKPiAgICAgIC8qIENyZWF0ZSBhIG5ldyBv bmUuICovCj4gICAgICBibyA9IGFtZGdwdV9jcmVhdGVfYm8od3MsIHNpemUsIGFsaWdubWVudCwg dXNhZ2UsIGRvbWFpbiwgZmxhZ3MsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJfY2Fj aGVfYnVja2V0KTsKPiAgICAgIGlmICghYm8pIHsKPiAgICAgICAgIC8qIENsZWFyIHRoZSBjYWNo ZSBhbmQgdHJ5IGFnYWluLiAqLwo+ICAgICAgICAgcGJfc2xhYnNfcmVjbGFpbSgmd3MtPmJvX3Ns YWJzKTsKPiAgICAgICAgIHBiX2NhY2hlX3JlbGVhc2VfYWxsX2J1ZmZlcnMoJndzLT5ib19jYWNo ZSk7Cj4gICAgICAgICBibyA9IGFtZGdwdV9jcmVhdGVfYm8od3MsIHNpemUsIGFsaWdubWVudCwg dXNhZ2UsIGRvbWFpbiwgZmxhZ3MsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJf Y2FjaGVfYnVja2V0KTsKPiAgICAgICAgIGlmICghYm8pCj4gICAgICAgICAgICByZXR1cm4gTlVM TDsKPiAgICAgIH0KPiAgIAo+IC0gICBiby0+dS5yZWFsLnVzZV9yZXVzYWJsZV9wb29sID0gdHJ1 ZTsKPiArICAgYm8tPnUucmVhbC51c2VfcmV1c2FibGVfcG9vbCA9IHVzZV9yZXVzYWJsZV9wb29s Owo+ICAgICAgcmV0dXJuICZiby0+YmFzZTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHN0cnVjdCBw Yl9idWZmZXIgKmFtZGdwdV9ib19mcm9tX2hhbmRsZShzdHJ1Y3QgcmFkZW9uX3dpbnN5cyAqcndz LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3Qgd2luc3lzX2hhbmRsZSAqd2hhbmRsZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKnN0cmlkZSwKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKm9mZnNldCkKPiAgIHsK PiAgICAgIHN0cnVjdCBhbWRncHVfd2luc3lzICp3cyA9IGFtZGdwdV93aW5zeXMocndzKTsKPiAg ICAgIHN0cnVjdCBhbWRncHVfd2luc3lzX2JvICpibzsKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxp dW0vd2luc3lzL3JhZGVvbi9kcm0vcmFkZW9uX2RybV9iby5jIGIvc3JjL2dhbGxpdW0vd2luc3lz L3JhZGVvbi9kcm0vcmFkZW9uX2RybV9iby5jCj4gaW5kZXggODAyN2E1Zi4uMTVlOWQzOCAxMDA2 NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS93aW5zeXMvcmFkZW9uL2RybS9yYWRlb25fZHJtX2JvLmMK PiArKysgYi9zcmMvZ2FsbGl1bS93aW5zeXMvcmFkZW9uL2RybS9yYWRlb25fZHJtX2JvLmMKPiBA QCAtOTA3LDIxICs5MDcsMjEgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2JvX3NldF9tZXRhZGF0YShz dHJ1Y3QgcGJfYnVmZmVyICpfYnVmLAo+ICAgCj4gICBzdGF0aWMgc3RydWN0IHBiX2J1ZmZlciAq Cj4gICByYWRlb25fd2luc3lzX2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX3dpbnN5cyAqcndzLAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgc2l6ZSwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGFsaWdubWVudCwKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gcmFkZW9uX2JvX2RvbWFpbiBkb21haW4sCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICBlbnVtIHJhZGVvbl9ib19mbGFnIGZsYWdzKQo+ICAgewo+ICAgICAgIHN0cnVjdCByYWRl b25fZHJtX3dpbnN5cyAqd3MgPSByYWRlb25fZHJtX3dpbnN5cyhyd3MpOwo+ICAgICAgIHN0cnVj dCByYWRlb25fYm8gKmJvOwo+IC0gICAgdW5zaWduZWQgdXNhZ2UgPSAwLCBwYl9jYWNoZV9idWNr ZXQ7Cj4gKyAgICB1bnNpZ25lZCB1c2FnZSA9IDAsIHBiX2NhY2hlX2J1Y2tldCA9IDA7Cj4gICAK PiAgICAgICBhc3NlcnQoIShmbGFncyAmIFJBREVPTl9GTEFHX1NQQVJTRSkpOyAvKiBub3Qgc3Vw cG9ydGVkICovCj4gICAKPiAgICAgICAvKiBPbmx5IDMyLWJpdCBzaXplcyBhcmUgc3VwcG9ydGVk LiAqLwo+ICAgICAgIGlmIChzaXplID4gVUlOVF9NQVgpCj4gICAgICAgICAgIHJldHVybiBOVUxM Owo+ICAgCj4gICAgICAgLyogVlJBTSBpbXBsaWVzIFdDLiBUaGlzIGlzIG5vdCBvcHRpb25hbC4g Ki8KPiAgICAgICBpZiAoZG9tYWluICYgUkFERU9OX0RPTUFJTl9WUkFNKQo+ICAgICAgICAgICBm bGFncyB8PSBSQURFT05fRkxBR19HVFRfV0M7Cj4gQEAgLTk2Miw0NiArOTYyLDUxIEBAIG5vX3Ns YWI6Cj4gICAgICAgLyogVGhpcyBmbGFnIGlzIGlycmVsZXZhbnQgZm9yIHRoZSBjYWNoZS4gKi8K PiAgICAgICBmbGFncyAmPSB+UkFERU9OX0ZMQUdfTk9fU1VCQUxMT0M7Cj4gICAKPiAgICAgICAv KiBBbGlnbiBzaXplIHRvIHBhZ2Ugc2l6ZS4gVGhpcyBpcyB0aGUgbWluaW11bSBhbGlnbm1lbnQg Zm9yIG5vcm1hbAo+ICAgICAgICAqIEJPcy4gQWxpZ25pbmcgdGhpcyBoZXJlIGhlbHBzIHRoZSBj YWNoZWQgYnVmbWdyLiBFc3BlY2lhbGx5IHNtYWxsIEJPcywKPiAgICAgICAgKiBsaWtlIGNvbnN0 YW50L3VuaWZvcm0gYnVmZmVycywgY2FuIGJlbmVmaXQgZnJvbSBiZXR0ZXIgYW5kIG1vcmUgcmV1 c2UuCj4gICAgICAgICovCj4gICAgICAgc2l6ZSA9IGFsaWduKHNpemUsIHdzLT5pbmZvLmdhcnRf cGFnZV9zaXplKTsKPiAgICAgICBhbGlnbm1lbnQgPSBhbGlnbihhbGlnbm1lbnQsIHdzLT5pbmZv LmdhcnRfcGFnZV9zaXplKTsKPiAgIAo+IC0gICAgaW50IGhlYXAgPSByYWRlb25fZ2V0X2hlYXBf aW5kZXgoZG9tYWluLCBmbGFncyk7Cj4gLSAgICBhc3NlcnQoaGVhcCA+PSAwICYmIGhlYXAgPCBS QURFT05fTUFYX0NBQ0hFRF9IRUFQUyk7Cj4gLSAgICB1c2FnZSA9IDEgPDwgaGVhcDsgLyogT25s eSBzZXQgb25lIHVzYWdlIGJpdCBmb3IgZWFjaCBoZWFwLiAqLwo+ICsgICAgYm9vbCB1c2VfcmV1 c2FibGVfcG9vbCA9IGZsYWdzICYgUkFERU9OX0ZMQUdfTk9fSU5URVJQUk9DRVNTX1NIQVJJTkc7 Cj4gICAKPiAtICAgIHBiX2NhY2hlX2J1Y2tldCA9IHJhZGVvbl9nZXRfcGJfY2FjaGVfYnVja2V0 X2luZGV4KGhlYXApOwo+IC0gICAgYXNzZXJ0KHBiX2NhY2hlX2J1Y2tldCA8IEFSUkFZX1NJWkUo d3MtPmJvX2NhY2hlLmJ1Y2tldHMpKTsKPiArICAgIC8qIFNoYXJlZCByZXNvdXJjZXMgZG9uJ3Qg dXNlIGNhY2hlZCBoZWFwcy4gKi8KPiArICAgIGlmICh1c2VfcmV1c2FibGVfcG9vbCkgewo+ICsg ICAgICAgIGludCBoZWFwID0gcmFkZW9uX2dldF9oZWFwX2luZGV4KGRvbWFpbiwgZmxhZ3MpOwo+ ICsgICAgICAgIGFzc2VydChoZWFwID49IDAgJiYgaGVhcCA8IFJBREVPTl9NQVhfQ0FDSEVEX0hF QVBTKTsKPiArICAgICAgICB1c2FnZSA9IDEgPDwgaGVhcDsgLyogT25seSBzZXQgb25lIHVzYWdl IGJpdCBmb3IgZWFjaCBoZWFwLiAqLwo+ICAgCj4gLSAgICBibyA9IHJhZGVvbl9ibyhwYl9jYWNo ZV9yZWNsYWltX2J1ZmZlcigmd3MtPmJvX2NhY2hlLCBzaXplLCBhbGlnbm1lbnQsCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZSwgcGJfY2FjaGVfYnVj a2V0KSk7Cj4gLSAgICBpZiAoYm8pCj4gLSAgICAgICAgcmV0dXJuICZiby0+YmFzZTsKPiArICAg ICAgICBwYl9jYWNoZV9idWNrZXQgPSByYWRlb25fZ2V0X3BiX2NhY2hlX2J1Y2tldF9pbmRleCho ZWFwKTsKPiArICAgICAgICBhc3NlcnQocGJfY2FjaGVfYnVja2V0IDwgQVJSQVlfU0laRSh3cy0+ Ym9fY2FjaGUuYnVja2V0cykpOwo+ICsKPiArICAgICAgICBibyA9IHJhZGVvbl9ibyhwYl9jYWNo ZV9yZWNsYWltX2J1ZmZlcigmd3MtPmJvX2NhY2hlLCBzaXplLCBhbGlnbm1lbnQsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2UsIHBiX2NhY2hl X2J1Y2tldCkpOwo+ICsgICAgICAgIGlmIChibykKPiArICAgICAgICAgICAgcmV0dXJuICZiby0+ YmFzZTsKPiArICAgIH0KPiAgIAo+ICAgICAgIGJvID0gcmFkZW9uX2NyZWF0ZV9ibyh3cywgc2l6 ZSwgYWxpZ25tZW50LCB1c2FnZSwgZG9tYWluLCBmbGFncywKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGJfY2FjaGVfYnVja2V0KTsKPiAgICAgICBpZiAoIWJvKSB7Cj4gICAgICAgICAg IC8qIENsZWFyIHRoZSBjYWNoZSBhbmQgdHJ5IGFnYWluLiAqLwo+ICAgICAgICAgICBpZiAod3Mt PmluZm8uaGFzX3ZpcnR1YWxfbWVtb3J5KQo+ICAgICAgICAgICAgICAgcGJfc2xhYnNfcmVjbGFp bSgmd3MtPmJvX3NsYWJzKTsKPiAgICAgICAgICAgcGJfY2FjaGVfcmVsZWFzZV9hbGxfYnVmZmVy cygmd3MtPmJvX2NhY2hlKTsKPiAgICAgICAgICAgYm8gPSByYWRlb25fY3JlYXRlX2JvKHdzLCBz aXplLCBhbGlnbm1lbnQsIHVzYWdlLCBkb21haW4sIGZsYWdzLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGJfY2FjaGVfYnVja2V0KTsKPiAgICAgICAgICAgaWYgKCFibykKPiAg ICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ICAgICAgIH0KPiAgIAo+IC0gICAgYm8tPnUucmVh bC51c2VfcmV1c2FibGVfcG9vbCA9IHRydWU7Cj4gKyAgICBiby0+dS5yZWFsLnVzZV9yZXVzYWJs ZV9wb29sID0gdXNlX3JldXNhYmxlX3Bvb2w7Cj4gICAKPiAgICAgICBtdHhfbG9jaygmd3MtPmJv X2hhbmRsZXNfbXV0ZXgpOwo+ICAgICAgIHV0aWxfaGFzaF90YWJsZV9zZXQod3MtPmJvX2hhbmRs ZXMsICh2b2lkKikodWludHB0cl90KWJvLT5oYW5kbGUsIGJvKTsKPiAgICAgICBtdHhfdW5sb2Nr KCZ3cy0+Ym9faGFuZGxlc19tdXRleCk7Cj4gICAKPiAgICAgICByZXR1cm4gJmJvLT5iYXNlOwo+ ICAgfQo+ICAgCj4gICBzdGF0aWMgc3RydWN0IHBiX2J1ZmZlciAqcmFkZW9uX3dpbnN5c19ib19m cm9tX3B0cihzdHJ1Y3QgcmFkZW9uX3dpbnN5cyAqcndzLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcG9pbnRlciwgdWludDY0X3Qg c2l6ZSkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFt ZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=