From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Kristian_H=C3=B8gsberg?= Subject: Re: [PATCH v4] drm/i915: Add soft-pinning API for execbuffer Date: Fri, 3 Jul 2015 22:29:44 -0700 Message-ID: References: <1425635047-25214-1-git-send-email-chris@chris-wilson.co.uk> <1435673593-28127-1-git-send-email-thomas.daniel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-la0-f44.google.com (mail-la0-f44.google.com [209.85.215.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51C1D6E059 for ; Fri, 3 Jul 2015 22:29:47 -0700 (PDT) Received: by lagx9 with SMTP id x9so103267626lag.1 for ; Fri, 03 Jul 2015 22:29:45 -0700 (PDT) In-Reply-To: <1435673593-28127-1-git-send-email-thomas.daniel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Daniel Cc: Vinay Belgaumkar , "intel-gfx@lists.freedesktop.org" , Michal Winiarsky , Akash Goel List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMzAsIDIwMTUgYXQgNzoxMyBBTSwgVGhvbWFzIERhbmllbCA8dGhvbWFzLmRh bmllbEBpbnRlbC5jb20+IHdyb3RlOgo+IEZyb206IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+Cj4gVXNlcnNwYWNlIGNhbiBwYXNzIGluIGFuIG9mZnNldCB0aGF0IGl0 IHByZXN1bWVzIHRoZSBvYmplY3QgaXMgbG9jYXRlZAo+IGF0LiBUaGUga2VybmVsIHdpbGwgdGhl biBkbyBpdHMgdXRtb3N0IHRvIGZpdCB0aGUgb2JqZWN0IGludG8gdGhhdAo+IGxvY2F0aW9uLiBU aGUgYXNzdW1wdGlvbiBpcyB0aGF0IHVzZXJzcGFjZSBpcyBoYW5kbGluZyBpdHMgb3duIG9iamVj dAo+IGxvY2F0aW9ucyAoZm9yIGV4YW1wbGUgYWxvbmcgd2l0aCBmdWxsLXBwZ3R0KSBhbmQgdGhh dCB0aGUga2VybmVsIHdpbGwKPiByYXJlbHkgaGF2ZSB0byBtYWtlIHNwYWNlIGZvciB0aGUgdXNl cidzIHJlcXVlc3RzLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Cj4KPiB2MjogRml4ZWQgaW5jb3JyZWN0IGV2aWN0aW9uIGZvdW5kIGJ5 IE1pY2hhbCBXaW5pYXJza2kgLSBmaXggc3VnZ2VzdGVkIGJ5IENocmlzCj4gV2lsc29uLiAgRml4 ZWQgaW5jb3JyZWN0IGVycm9yIHBhdGhzIGNhdXNpbmcgY3Jhc2ggZm91bmQgYnkgTWljaGFsIFdp bmlhcnNraS4KPiAoTm90IHB1Ymxpc2hlZCBleHRlcm5hbGx5KQo+Cj4gdjM6IFJlYmFzZWQgYmVj YXVzZSBvZiB0cml2aWFsIGNvbmZsaWN0IGluIG9iamVjdF9iaW5kX3RvX3ZtLiAgRml4ZWQgZXZp Y3Rpb24KPiB0byBhbGxvdyBldmljdGlvbiBvZiBzb2Z0LXBpbm5lZCBvYmplY3RzIHdoZW4gYW5v dGhlciBzb2Z0LXBpbm5lZCBvYmplY3QgdXNlZAo+IGJ5IGEgc3Vic2VxdWVudCBleGVjYnVmZmVy IG92ZXJsYXBzIHJlcG9ydGVkIGJ5IE1pY2hhbCBXaW5pYXJza2kuCj4gKE5vdCBwdWJsaXNoZWQg ZXh0ZXJuYWxseSkKPgo+IHY0OiBNb3ZlZCBzb2Z0LXBpbm5lZCBvYmplY3RzIHRvIHRoZSBmcm9u dCBvZiBvcmRlcmVkX3ZtYXMgc28gdGhhdCB0aGV5IGFyZQo+IHBpbm5lZCBmaXJzdCBhZnRlciBh biBhZGRyZXNzIGNvbmZsaWN0IGhhcHBlbnMgdG8gYXZvaWQgcmVwZWF0ZWQgY29uZmxpY3RzIGlu Cj4gcmFyZSBjYXNlcyAoU3VnZ2VzdGVkIGJ5IENocmlzIFdpbHNvbikuICBFeHBhbmRlZCBjb21t ZW50IG9uCj4gZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0Mi5vZmZzZXQgdG8gY292ZXIgdGhpcyBu ZXcgQVBJLgoKQ2FuIHdlIGFkZCBhbiBJOTE1X1BBUkFNX0hBU19FWEVDX1BJTk5FRCBwYXJhbSBm b3IgdGhpcyBmZWF0dXJlPwoKS3Jpc3RpYW4KCj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+IENjOiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4K PiBDYzogVmluYXkgQmVsZ2F1bWthciA8dmluYXkuYmVsZ2F1bWthckBpbnRlbC5jb20+Cj4gQ2M6 IE1pY2hhbCBXaW5pYXJza3kgPG1pY2hhbC53aW5pYXJza3lAaW50ZWwuY29tPgo+IENjOiBab3Ug TmFuaGFpIDxuYW5oYWkuem91QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgRGFu aWVsIDx0aG9tYXMuZGFuaWVsQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgICAgNCArKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICA1MSArKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgICAgICB8ICAgMzgg KysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYyB8ICAgMTYgKysrKysrKy0tCj4gIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aCAgICAgICAgICAgICAgICB8ICAgIDkgKysrLS0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNl cnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGlu ZGV4IGQ5MGE3ODIuLmU5NmMxMDEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAt Mjc0Nyw3ICsyNzQ3LDkgQEAgdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSk7Cj4gICNkZWZpbmUgUElOX1VTRVIgICAgICAgKDE8PDQpCj4gICNkZWZpbmUgUElO X1VQREFURSAgICAgKDE8PDUpCj4gICNkZWZpbmUgUElOX0ZVTExfUkFOR0UgKDE8PDYpCj4gKyNk ZWZpbmUgUElOX09GRlNFVF9GSVhFRCAgICAgICAoMTw8NykKPiAgI2RlZmluZSBQSU5fT0ZGU0VU X01BU0sgKH40MDk1KQo+ICsKPiAgaW50IF9fbXVzdF9jaGVjawo+ICBpOTE1X2dlbV9vYmplY3Rf cGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiBAQCAtMzA4NSw2ICszMDg3LDggQEAg aW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIHN0YXJ0LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZW5kLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGZsYWdzKTsKPiAraW50IF9fbXVzdF9jaGVjawo+ICtpOTE1X2dl bV9ldmljdF9mb3Jfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdGFyZ2V0KTsKPiAgaW50IGk5MTVfZ2Vt X2V2aWN0X3ZtKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBib29sIGRvX2lkbGUpOwo+ ICBpbnQgaTkxNV9nZW1fZXZpY3RfZXZlcnl0aGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IGYxNzBkYTYuLmE3ZTVmZjIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMzgwNiwyMiArMzgwNiw0MSBAQCBpOTE1X2dl bV9vYmplY3RfYmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAg ICAgICAgaWYgKElTX0VSUih2bWEpKQo+ICAgICAgICAgICAgICAgICBnb3RvIGVycl91bnBpbjsK Pgo+ICsgICAgICAgaWYgKGZsYWdzICYgUElOX09GRlNFVF9GSVhFRCkgewo+ICsgICAgICAgICAg ICAgICB1aW50NjRfdCBvZmZzZXQgPSBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSzsKPiArICAgICAg ICAgICAgICAgaWYgKG9mZnNldCAmIChhbGlnbm1lbnQgLSAxKSkgewo+ICsgICAgICAgICAgICAg ICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBl cnJfZnJlZV92bWE7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgdm1hLT5u b2RlLnN0YXJ0ID0gb2Zmc2V0Owo+ICsgICAgICAgICAgICAgICB2bWEtPm5vZGUuc2l6ZSA9IHNp emU7Cj4gKyAgICAgICAgICAgICAgIHZtYS0+bm9kZS5jb2xvciA9IG9iai0+Y2FjaGVfbGV2ZWw7 Cj4gKyAgICAgICAgICAgICAgIHJldCA9IGRybV9tbV9yZXNlcnZlX25vZGUoJnZtLT5tbSwgJnZt YS0+bm9kZSk7Cj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpIHsKPiArICAgICAgICAgICAgICAg ICAgICAgICByZXQgPSBpOTE1X2dlbV9ldmljdF9mb3Jfdm1hKHZtYSk7Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgaWYgKHJldCA9PSAwKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKPiArICAg ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICBpZiAocmV0KQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGdvdG8gZXJyX2ZyZWVfdm1hOwo+ICsgICAgICAgfSBlbHNlIHsKPiAgc2VhcmNo X2ZyZWU6Cj4gLSAgICAgICByZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJp Yygmdm0tPm1tLCAmdm1hLT5ub2RlLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZSwgYWxpZ25tZW50LAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLT5jYWNoZV9sZXZlbCwKPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hf ZmxhZywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFsbG9jX2ZsYWcpOwo+IC0gICAgICAgaWYgKHJldCkgewo+IC0gICAgICAgICAgICAgICByZXQg PSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoZGV2LCB2bSwgc2l6ZSwgYWxpZ25tZW50LAo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLT5jYWNoZV9s ZXZlbCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXJ0LCBlbmQsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmbGFncyk7Cj4gLSAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkKPiAtICAgICAgICAgICAg ICAgICAgICAgICBnb3RvIHNlYXJjaF9mcmVlOwo+ICsgICAgICAgICAgICAgICByZXQgPSBkcm1f bW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmdm0tPm1tLCAmdm1hLT5ub2RlLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplLCBhbGlnbm1lbnQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9iai0+Y2FjaGVfbGV2ZWwsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl YXJjaF9mbGFnLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbGxvY19mbGFnKTsKPiArICAgICAgICAgICAgICAgaWYgKHJldCkgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhk ZXYsIHZtLCBzaXplLCBhbGlnbm1lbnQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9iai0+Y2FjaGVfbGV2ZWwsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs YWdzKTsKPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNlYXJjaF9mcmVlOwo+Cj4gLSAgICAgICAgICAg ICAgIGdvdG8gZXJyX2ZyZWVfdm1hOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJy X2ZyZWVfdm1hOwo+ICsgICAgICAgICAgICAgICB9Cj4gICAgICAgICB9Cj4gICAgICAgICBpZiAo V0FSTl9PTighaTkxNV9nZW1fdmFsaWRfZ3R0X3NwYWNlKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCkp KSB7Cj4gICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gQEAgLTQzNTcsNiArNDM3Niwx MCBAQCBpOTE1X3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHVpbnQzMl90IGFs aWdubWVudCwgdWludDY0X3QgZmxhZ3MpCj4gICAgICAgICAgICAgdm1hLT5ub2RlLnN0YXJ0IDwg KGZsYWdzICYgUElOX09GRlNFVF9NQVNLKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7 Cj4KPiArICAgICAgIGlmIChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQgJiYKPiArICAgICAgICAg ICB2bWEtPm5vZGUuc3RhcnQgIT0gKGZsYWdzICYgUElOX09GRlNFVF9NQVNLKSkKPiArICAgICAg ICAgICAgICAgcmV0dXJuIHRydWU7Cj4gKwo+ICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICB9Cj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiBpbmRleCBkMDllMzVlLi42MDk4 ZTJmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gQEAgLTE5OSw2 ICsxOTksNDQgQEAgZm91bmQ6Cj4gICAgICAgICByZXR1cm4gcmV0Owo+ICB9Cj4KPiAraW50Cj4g K2k5MTVfZ2VtX2V2aWN0X2Zvcl92bWEoc3RydWN0IGk5MTVfdm1hICp0YXJnZXQpCj4gK3sKPiAr ICAgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgKm5leHQ7Cj4gKwo+ICsgICAgICAgbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5vZGUsIG5leHQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgJnRhcmdldC0+dm0tPm1tLmhlYWRfbm9kZS5ub2RlX2xpc3QsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgbm9kZV9saXN0KSB7Cj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAq dm1hOwo+ICsgICAgICAgICAgICAgICBpbnQgcmV0Owo+ICsKPiArICAgICAgICAgICAgICAgaWYg KG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSA8PSB0YXJnZXQtPm5vZGUuc3RhcnQpCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gKyAgICAgICAgICAgICAgIGlmIChub2RlLT5z dGFydCA+PSB0YXJnZXQtPm5vZGUuc3RhcnQgKyB0YXJnZXQtPm5vZGUuc2l6ZSkKPiArICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKPiArCj4gKyAgICAgICAgICAgICAgIHZtYSA9IGNvbnRh aW5lcl9vZihub2RlLCB0eXBlb2YoKnZtYSksIG5vZGUpOwo+ICsKPiArICAgICAgICAgICAgICAg aWYgKHZtYS0+cGluX2NvdW50KSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogV2UgbWF5 IG5lZWQgdG8gZXZpY3QgYSBidWZmZXIgaW4gdGhlIHNhbWUgYmF0Y2ggKi8KPiArICAgICAgICAg ICAgICAgICAgICAgICBpZiAoIXZtYS0+ZXhlY19lbnRyeSkKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgICAg IGlmICh2bWEtPmV4ZWNfZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEKQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3ZlcmxhcHBpbmcgZml4ZWQgb2JqZWN0cyBp biB0aGUgc2FtZSBiYXRjaCAqLwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PU1BD Owo+ICsgICAgICAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICAgICByZXQgPSBpOTE1X3Zt YV91bmJpbmQodm1hKTsKPiArICAgICAgICAgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHJldHVybiAw Owo+ICt9Cj4gKwo+ICAvKioKPiAgICogaTkxNV9nZW1fZXZpY3Rfdm0gLSBFdmljdCBhbGwgaWRs ZSB2bWFzIGZyb20gYSB2bQo+ICAgKiBAdm06IEFkZHJlc3Mgc3BhY2UgdG8gY2xlYW5zZQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBpbmRleCAzZDk0NzQ0 Li40ZTY5NTVlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+IEBAIC01OTYsNiArNTk2LDggQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlX3Zt YShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyB8 PSBQSU5fR0xPQkFMIHwgUElOX01BUFBBQkxFOwo+ICAgICAgICAgICAgICAgICBpZiAoZW50cnkt PmZsYWdzICYgX19FWEVDX09CSkVDVF9ORUVEU19CSUFTKQo+ICAgICAgICAgICAgICAgICAgICAg ICAgIGZsYWdzIHw9IEJBVENIX09GRlNFVF9CSUFTIHwgUElOX09GRlNFVF9CSUFTOwo+ICsgICAg ICAgICAgICAgICBpZiAoZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEKQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIGZsYWdzIHw9IGVudHJ5LT5vZmZzZXQgfCBQSU5fT0ZGU0VUX0ZJ WEVEOwo+ICAgICAgICAgfQo+Cj4gICAgICAgICByZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluKG9i aiwgdm1hLT52bSwgZW50cnktPmFsaWdubWVudCwgZmxhZ3MpOwo+IEBAIC02NjUsNiArNjY3LDEw IEBAIGViX3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICAgICAgICAgICAg dm1hLT5ub2RlLnN0YXJ0ICYgKGVudHJ5LT5hbGlnbm1lbnQgLSAxKSkKPiAgICAgICAgICAgICAg ICAgcmV0dXJuIHRydWU7Cj4KPiArICAgICAgIGlmIChlbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVD VF9QSU5ORUQgJiYKPiArICAgICAgICAgICB2bWEtPm5vZGUuc3RhcnQgIT0gZW50cnktPm9mZnNl dCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cj4gKwo+ICAgICAgICAgaWYgKGVudHJ5 LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUyAmJgo+ICAgICAgICAgICAgIHZtYS0+ bm9kZS5zdGFydCA8IEJBVENIX09GRlNFVF9CSUFTKQo+ICAgICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKPiBAQCAtNjkwLDYgKzY5Niw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgICAgICAgc3RydWN0IGk5MTVfdm1hICp2 bWE7Cj4gICAgICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKPiAgICAgICAgIHN0 cnVjdCBsaXN0X2hlYWQgb3JkZXJlZF92bWFzOwo+ICsgICAgICAgc3RydWN0IGxpc3RfaGVhZCBw aW5uZWRfdm1hczsKPiAgICAgICAgIGJvb2wgaGFzX2ZlbmNlZF9ncHVfYWNjZXNzID0gSU5URUxf SU5GTyhyaW5nLT5kZXYpLT5nZW4gPCA0Owo+ICAgICAgICAgaW50IHJldHJ5Owo+Cj4gQEAgLTY5 OCw2ICs3MDUsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKPiAgICAgICAgIHZtID0gbGlzdF9maXJzdF9lbnRyeSh2bWFzLCBzdHJ1 Y3QgaTkxNV92bWEsIGV4ZWNfbGlzdCktPnZtOwo+Cj4gICAgICAgICBJTklUX0xJU1RfSEVBRCgm b3JkZXJlZF92bWFzKTsKPiArICAgICAgIElOSVRfTElTVF9IRUFEKCZwaW5uZWRfdm1hcyk7Cj4g ICAgICAgICB3aGlsZSAoIWxpc3RfZW1wdHkodm1hcykpIHsKPiAgICAgICAgICAgICAgICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKmVudHJ5Owo+ICAgICAgICAgICAgICAgICBi b29sIG5lZWRfZmVuY2UsIG5lZWRfbWFwcGFibGU7Cj4gQEAgLTcxNiw3ICs3MjQsOSBAQCBpOTE1 X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAg ICAgICAgICAgICAgICAgICAgICAgICBvYmotPnRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05P TkU7Cj4gICAgICAgICAgICAgICAgIG5lZWRfbWFwcGFibGUgPSBuZWVkX2ZlbmNlIHx8IG5lZWRf cmVsb2NfbWFwcGFibGUodm1hKTsKPgo+IC0gICAgICAgICAgICAgICBpZiAobmVlZF9tYXBwYWJs ZSkgewo+ICsgICAgICAgICAgICAgICBpZiAoZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElO TkVEKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGxpc3RfbW92ZV90YWlsKCZ2bWEtPmV4ZWNf bGlzdCwgJnBpbm5lZF92bWFzKTsKPiArICAgICAgICAgICAgICAgZWxzZSBpZiAobmVlZF9tYXBw YWJsZSkgewo+ICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5mbGFncyB8PSBfX0VYRUNf T0JKRUNUX05FRURTX01BUDsKPiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0X21vdmUoJnZt YS0+ZXhlY19saXN0LCAmb3JkZXJlZF92bWFzKTsKPiAgICAgICAgICAgICAgICAgfSBlbHNlCj4g QEAgLTcyNiw2ICs3MzYsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKPiAgICAgICAgICAgICAgICAgb2JqLT5iYXNlLnBlbmRpbmdf d3JpdGVfZG9tYWluID0gMDsKPiAgICAgICAgIH0KPiAgICAgICAgIGxpc3Rfc3BsaWNlKCZvcmRl cmVkX3ZtYXMsIHZtYXMpOwo+ICsgICAgICAgbGlzdF9zcGxpY2UoJnBpbm5lZF92bWFzLCB2bWFz KTsKPgo+ICAgICAgICAgLyogQXR0ZW1wdCB0byBwaW4gYWxsIG9mIHRoZSBidWZmZXJzIGludG8g dGhlIEdUVC4KPiAgICAgICAgICAqIFRoaXMgaXMgZG9uZSBpbiAzIHBoYXNlczoKPiBAQCAtMTQw NCw3ICsxNDE1LDggQEAgZWJfZ2V0X2JhdGNoKHN0cnVjdCBlYl92bWFzICplYikKPiAgICAgICAg ICAqIE5vdGUgdGhhdCBhY3R1YWwgaGFuZ3MgaGF2ZSBvbmx5IGJlZW4gb2JzZXJ2ZWQgb24gZ2Vu NywgYnV0IGZvcgo+ICAgICAgICAgICogcGFyYW5vaWEgZG8gaXQgZXZlcnl3aGVyZS4KPiAgICAg ICAgICAqLwo+IC0gICAgICAgdm1hLT5leGVjX2VudHJ5LT5mbGFncyB8PSBfX0VYRUNfT0JKRUNU X05FRURTX0JJQVM7Cj4gKyAgICAgICBpZiAoKHZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgJiBFWEVD X09CSkVDVF9QSU5ORUQpID09IDApCj4gKyAgICAgICAgICAgICAgIHZtYS0+ZXhlY19lbnRyeS0+ ZmxhZ3MgfD0gX19FWEVDX09CSkVDVF9ORUVEU19CSUFTOwo+Cj4gICAgICAgICByZXR1cm4gdm1h LT5vYmo7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggNTViYTUyNy4uMThmOGY5OSAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKPiBAQCAtNjc3LDggKzY3NywxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX2V4ZWNfb2JqZWN0MiB7Cj4gICAgICAgICBfX3U2NCBhbGlnbm1lbnQ7Cj4KPiAgICAgICAg IC8qKgo+IC0gICAgICAgICogUmV0dXJuZWQgdmFsdWUgb2YgdGhlIHVwZGF0ZWQgb2Zmc2V0IG9m IHRoZSBvYmplY3QsIGZvciBmdXR1cmUKPiAtICAgICAgICAqIHByZXN1bWVkX29mZnNldCB3cml0 ZXMuCj4gKyAgICAgICAgKiBXaGVuIHRoZSBFWEVDX09CSkVDVF9QSU5ORUQgZmxhZyBpcyBzcGVj aWZpZWQgdGhpcyBpcyBwb3B1bGF0ZWQgYnkKPiArICAgICAgICAqIHRoZSB1c2VyIHdpdGggdGhl IEdUVCBvZmZzZXQgYXQgd2hpY2ggdGhpcyBvYmplY3Qgd2lsbCBiZSBwaW5uZWQuCj4gKyAgICAg ICAgKiBPdGhlcndpc2UgdGhlIGtlcm5lbCBwb3B1bGF0ZXMgaXQgd2l0aCB0aGUgdmFsdWUgb2Yg dGhlIHVwZGF0ZWQKPiArICAgICAgICAqIG9mZnNldCBvZiB0aGUgb2JqZWN0LCBmb3IgZnV0dXJl IHByZXN1bWVkX29mZnNldCB3cml0ZXMuCj4gICAgICAgICAgKi8KPiAgICAgICAgIF9fdTY0IG9m ZnNldDsKPgo+IEBAIC02ODYsNyArNjg4LDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29i amVjdDIgewo+ICAjZGVmaW5lIEVYRUNfT0JKRUNUX05FRURTX0dUVCAgKDE8PDEpCj4gICNkZWZp bmUgRVhFQ19PQkpFQ1RfV1JJVEUgICAgICAoMTw8MikKPiAgI2RlZmluZSBFWEVDX09CSkVDVF9T VVBQT1JUU180OEJCQUREUkVTUyAoMTw8MykKPiAtI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05P V05fRkxBR1MgLShFWEVDX09CSkVDVF9TVVBQT1JUU180OEJCQUREUkVTUzw8MSkKPiArI2RlZmlu ZSBFWEVDX09CSkVDVF9QSU5ORUQgICAgICgxPDw0KQo+ICsjZGVmaW5lIF9fRVhFQ19PQkpFQ1Rf VU5LTk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNUX1BJTk5FRDw8MSkKPiAgICAgICAgIF9fdTY0IGZs YWdzOwo+Cj4gICAgICAgICBfX3U2NCByc3ZkMTsKPiAtLQo+IDEuNy45LjUKPgo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==