From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Romanick Subject: Re: [PATCH 2/4] xf86drmMode: Unconditionally clear ioctl structs Date: Wed, 11 Feb 2015 11:10:29 -0800 Message-ID: <54DBA925.8090808@freedesktop.org> References: <1423654968-10553-1-git-send-email-daniel.vetter@ffwll.ch> <1423654968-10553-2-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1423654968-10553-2-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Intel Graphics Development , DRI Development Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBpcwoKUmV2aWV3ZWQtYnk6IElhbiBSb21hbmljayA8aWFuLmQucm9tYW5pY2tA aW50ZWwuY29tPgoKT24gMDIvMTEvMjAxNSAwMzo0MiBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiBXZSByZWFsbHkgaGF2ZSB0byBkbyB0aGlzIHRvIGF2b2lkIHN1cnByaXNlcyB3aGVuIGV4dGVu ZGluZyB0aGUgQUJJCj4gbGF0ZXIgb24uIEVzcGVjaWFsbHkgd2hlbiBncm93aW5nIHRoZSBzdHJ1 Y3R1cmVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA aW50ZWwuY29tPgo+IC0tLQo+ICB4Zjg2ZHJtTW9kZS5jIHwgNTUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3hmODZk cm1Nb2RlLmMgYi94Zjg2ZHJtTW9kZS5jCj4gaW5kZXggZTNlNTk5YmRjMzlkLi45ZWE4ZmU3MjE4 NDIgMTAwNjQ0Cj4gLS0tIGEveGY4NmRybU1vZGUuYwo+ICsrKyBiL3hmODZkcm1Nb2RlLmMKPiBA QCAtNjEsNyArNjEsNyBAQAo+ICAjZGVmaW5lIFZHKHgpCj4gICNlbmRpZgo+ICAKPiAtI2RlZmlu ZSBWR19DTEVBUihzKSBWRyhtZW1zZXQoJnMsIDAsIHNpemVvZihzKSkpCj4gKyNkZWZpbmUgbWVt Y2xlYXIocykgbWVtc2V0KCZzLCAwLCBzaXplb2YocykpCj4gIAo+ICAjZGVmaW5lIFU2NDJWT0lE KHgpICgodm9pZCAqKSh1bnNpZ25lZCBsb25nKSh4KSkKPiAgI2RlZmluZSBWT0lEMlU2NCh4KSAo KHVpbnQ2NF90KSh1bnNpZ25lZCBsb25nKSh4KSkKPiBAQCAtMTY0LDcgKzE2NCw3IEBAIGRybU1v ZGVSZXNQdHIgZHJtTW9kZUdldFJlc291cmNlcyhpbnQgZmQpCj4gIAlkcm1Nb2RlUmVzUHRyIHIg PSAwOwo+ICAKPiAgcmV0cnk6Cj4gLQltZW1zZXQoJnJlcywgMCwgc2l6ZW9mKHN0cnVjdCBkcm1f bW9kZV9jYXJkX3JlcykpOwo+ICsJbWVtY2xlYXIocmVzKTsKPiAgCWlmIChkcm1Jb2N0bChmZCwg RFJNX0lPQ1RMX01PREVfR0VUUkVTT1VSQ0VTLCAmcmVzKSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4g QEAgLTI1OSw3ICsyNTksNyBAQCBpbnQgZHJtTW9kZUFkZEZCKGludCBmZCwgdWludDMyX3Qgd2lk dGgsIHVpbnQzMl90IGhlaWdodCwgdWludDhfdCBkZXB0aCwKPiAgCXN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQgZjsKPiAgCWludCByZXQ7Cj4gIAo+IC0JVkdfQ0xFQVIoZik7Cj4gKwltZW1jbGVhcihm KTsKPiAgCWYud2lkdGggID0gd2lkdGg7Cj4gIAlmLmhlaWdodCA9IGhlaWdodDsKPiAgCWYucGl0 Y2ggID0gcGl0Y2g7Cj4gQEAgLTI4Miw2ICsyODIsNyBAQCBpbnQgZHJtTW9kZUFkZEZCMihpbnQg ZmQsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCj4gIAlzdHJ1Y3QgZHJtX21vZGVf ZmJfY21kMiBmOwo+ICAJaW50IHJldDsKPiAgCj4gKwltZW1jbGVhcihmKTsKPiAgCWYud2lkdGgg ID0gd2lkdGg7Cj4gIAlmLmhlaWdodCA9IGhlaWdodDsKPiAgCWYucGl4ZWxfZm9ybWF0ID0gcGl4 ZWxfZm9ybWF0Owo+IEBAIC0zMDAsOCArMzAxLDYgQEAgaW50IGRybU1vZGVBZGRGQjIoaW50IGZk LCB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAo+ICBpbnQgZHJtTW9kZVJtRkIoaW50 IGZkLCB1aW50MzJfdCBidWZmZXJJZCkKPiAgewo+ICAJcmV0dXJuIERSTV9JT0NUTChmZCwgRFJN X0lPQ1RMX01PREVfUk1GQiwgJmJ1ZmZlcklkKTsKPiAtCj4gLQo+ICB9Cj4gIAo+ICBkcm1Nb2Rl RkJQdHIgZHJtTW9kZUdldEZCKGludCBmZCwgdWludDMyX3QgYnVmKQo+IEBAIC0zMDksNiArMzA4 LDcgQEAgZHJtTW9kZUZCUHRyIGRybU1vZGVHZXRGQihpbnQgZmQsIHVpbnQzMl90IGJ1ZikKPiAg CXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgaW5mbzsKPiAgCWRybU1vZGVGQlB0ciByOwo+ICAKPiAr CW1lbWNsZWFyKGluZm8pOwo+ICAJaW5mby5mYl9pZCA9IGJ1ZjsKPiAgCj4gIAlpZiAoZHJtSW9j dGwoZmQsIERSTV9JT0NUTF9NT0RFX0dFVEZCLCAmaW5mbykpCj4gQEAgLTMzMSw4ICszMzEsOSBA QCBkcm1Nb2RlRkJQdHIgZHJtTW9kZUdldEZCKGludCBmZCwgdWludDMyX3QgYnVmKQo+ICBpbnQg ZHJtTW9kZURpcnR5RkIoaW50IGZkLCB1aW50MzJfdCBidWZmZXJJZCwKPiAgCQkgICBkcm1Nb2Rl Q2xpcFB0ciBjbGlwcywgdWludDMyX3QgbnVtX2NsaXBzKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX21v ZGVfZmJfZGlydHlfY21kIGRpcnR5ID0geyAwIH07Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfZmJfZGly dHlfY21kIGRpcnR5Owo+ICAKPiArCW1lbWNsZWFyKGRpcnR5KTsKPiAgCWRpcnR5LmZiX2lkID0g YnVmZmVySWQ7Cj4gIAlkaXJ0eS5jbGlwc19wdHIgPSBWT0lEMlU2NChjbGlwcyk7Cj4gIAlkaXJ0 eS5udW1fY2xpcHMgPSBudW1fY2xpcHM7Cj4gQEAgLTM1MCw3ICszNTEsNyBAQCBkcm1Nb2RlQ3J0 Y1B0ciBkcm1Nb2RlR2V0Q3J0YyhpbnQgZmQsIHVpbnQzMl90IGNydGNJZCkKPiAgCXN0cnVjdCBk cm1fbW9kZV9jcnRjIGNydGM7Cj4gIAlkcm1Nb2RlQ3J0Y1B0ciByOwo+ICAKPiAtCVZHX0NMRUFS KGNydGMpOwo+ICsJbWVtY2xlYXIoY3J0Yyk7Cj4gIAljcnRjLmNydGNfaWQgPSBjcnRjSWQ7Cj4g IAo+ICAJaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9HRVRDUlRDLCAmY3J0YykpCj4g QEAgLTM4NCw3ICszODUsNyBAQCBpbnQgZHJtTW9kZVNldENydGMoaW50IGZkLCB1aW50MzJfdCBj cnRjSWQsIHVpbnQzMl90IGJ1ZmZlcklkLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY3J0YyBj cnRjOwo+ICAKPiAtCVZHX0NMRUFSKGNydGMpOwo+ICsJbWVtY2xlYXIoY3J0Yyk7Cj4gIAljcnRj LnggICAgICAgICAgICAgPSB4Owo+ICAJY3J0Yy55ICAgICAgICAgICAgID0geTsKPiAgCWNydGMu Y3J0Y19pZCAgICAgICA9IGNydGNJZDsKPiBAQCAtMzk0LDggKzM5NSw3IEBAIGludCBkcm1Nb2Rl U2V0Q3J0YyhpbnQgZmQsIHVpbnQzMl90IGNydGNJZCwgdWludDMyX3QgYnVmZmVySWQsCj4gIAlp ZiAobW9kZSkgewo+ICAJICBtZW1jcHkoJmNydGMubW9kZSwgbW9kZSwgc2l6ZW9mKHN0cnVjdCBk cm1fbW9kZV9tb2RlaW5mbykpOwo+ICAJICBjcnRjLm1vZGVfdmFsaWQgPSAxOwo+IC0JfSBlbHNl Cj4gLQkgIGNydGMubW9kZV92YWxpZCA9IDA7Cj4gKwl9Cj4gIAo+ICAJcmV0dXJuIERSTV9JT0NU TChmZCwgRFJNX0lPQ1RMX01PREVfU0VUQ1JUQywgJmNydGMpOwo+ICB9Cj4gQEAgLTQwOCw2ICs0 MDgsNyBAQCBpbnQgZHJtTW9kZVNldEN1cnNvcihpbnQgZmQsIHVpbnQzMl90IGNydGNJZCwgdWlu dDMyX3QgYm9faGFuZGxlLCB1aW50MzJfdCB3aWR0aAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVf Y3Vyc29yIGFyZzsKPiAgCj4gKwltZW1jbGVhcihhcmcpOwo+ICAJYXJnLmZsYWdzID0gRFJNX01P REVfQ1VSU09SX0JPOwo+ICAJYXJnLmNydGNfaWQgPSBjcnRjSWQ7Cj4gIAlhcmcud2lkdGggPSB3 aWR0aDsKPiBAQCAtNDIxLDYgKzQyMiw3IEBAIGludCBkcm1Nb2RlU2V0Q3Vyc29yMihpbnQgZmQs IHVpbnQzMl90IGNydGNJZCwgdWludDMyX3QgYm9faGFuZGxlLCB1aW50MzJfdCB3aWR0Cj4gIHsK PiAgCXN0cnVjdCBkcm1fbW9kZV9jdXJzb3IyIGFyZzsKPiAgCj4gKwltZW1jbGVhcihhcmcpOwo+ ICAJYXJnLmZsYWdzID0gRFJNX01PREVfQ1VSU09SX0JPOwo+ICAJYXJnLmNydGNfaWQgPSBjcnRj SWQ7Cj4gIAlhcmcud2lkdGggPSB3aWR0aDsKPiBAQCAtNDM2LDYgKzQzOCw3IEBAIGludCBkcm1N b2RlTW92ZUN1cnNvcihpbnQgZmQsIHVpbnQzMl90IGNydGNJZCwgaW50IHgsIGludCB5KQo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY3Vyc29yIGFyZzsKPiAgCj4gKwltZW1jbGVhcihhcmcpOwo+ ICAJYXJnLmZsYWdzID0gRFJNX01PREVfQ1VSU09SX01PVkU7Cj4gIAlhcmcuY3J0Y19pZCA9IGNy dGNJZDsKPiAgCWFyZy54ID0geDsKPiBAQCAtNDUyLDExICs0NTUsOCBAQCBkcm1Nb2RlRW5jb2Rl clB0ciBkcm1Nb2RlR2V0RW5jb2RlcihpbnQgZmQsIHVpbnQzMl90IGVuY29kZXJfaWQpCj4gIAlz dHJ1Y3QgZHJtX21vZGVfZ2V0X2VuY29kZXIgZW5jOwo+ICAJZHJtTW9kZUVuY29kZXJQdHIgciA9 IE5VTEw7Cj4gIAo+ICsJbWVtY2xlYXIoZW5jKTsKPiAgCWVuYy5lbmNvZGVyX2lkID0gZW5jb2Rl cl9pZDsKPiAtCWVuYy5jcnRjX2lkID0gMDsKPiAtCWVuYy5lbmNvZGVyX3R5cGUgPSAwOwo+IC0J ZW5jLnBvc3NpYmxlX2NydGNzID0gMDsKPiAtCWVuYy5wb3NzaWJsZV9jbG9uZXMgPSAwOwo+ICAK PiAgCWlmIChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX01PREVfR0VURU5DT0RFUiwgJmVuYykpCj4g IAkJcmV0dXJuIDA7Cj4gQEAgLTQ4Myw3ICs0ODMsNyBAQCBkcm1Nb2RlQ29ubmVjdG9yUHRyIGRy bU1vZGVHZXRDb25uZWN0b3IoaW50IGZkLCB1aW50MzJfdCBjb25uZWN0b3JfaWQpCj4gIAlkcm1N b2RlQ29ubmVjdG9yUHRyIHIgPSBOVUxMOwo+ICAKPiAgcmV0cnk6Cj4gLQltZW1zZXQoJmNvbm4s IDAsIHNpemVvZihzdHJ1Y3QgZHJtX21vZGVfZ2V0X2Nvbm5lY3RvcikpOwo+ICsJbWVtY2xlYXIo Y29ubik7Cj4gIAljb25uLmNvbm5lY3Rvcl9pZCA9IGNvbm5lY3Rvcl9pZDsKPiAgCj4gIAlpZiAo ZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9NT0RFX0dFVENPTk5FQ1RPUiwgJmNvbm4pKQo+IEBAIC01 NzYsNiArNTc2LDcgQEAgaW50IGRybU1vZGVBdHRhY2hNb2RlKGludCBmZCwgdWludDMyX3QgY29u bmVjdG9yX2lkLCBkcm1Nb2RlTW9kZUluZm9QdHIgbW9kZV9pbmYKPiAgewo+ICAJc3RydWN0IGRy bV9tb2RlX21vZGVfY21kIHJlczsKPiAgCj4gKwltZW1jbGVhcihyZXMpOwo+ICAJbWVtY3B5KCZy ZXMubW9kZSwgbW9kZV9pbmZvLCBzaXplb2Yoc3RydWN0IGRybV9tb2RlX21vZGVpbmZvKSk7Cj4g IAlyZXMuY29ubmVjdG9yX2lkID0gY29ubmVjdG9yX2lkOwo+ICAKPiBAQCAtNTg2LDYgKzU4Nyw3 IEBAIGludCBkcm1Nb2RlRGV0YWNoTW9kZShpbnQgZmQsIHVpbnQzMl90IGNvbm5lY3Rvcl9pZCwg ZHJtTW9kZU1vZGVJbmZvUHRyIG1vZGVfaW5mCj4gIHsKPiAgCXN0cnVjdCBkcm1fbW9kZV9tb2Rl X2NtZCByZXM7Cj4gIAo+ICsJbWVtY2xlYXIocmVzKTsKPiAgCW1lbWNweSgmcmVzLm1vZGUsIG1v ZGVfaW5mbywgc2l6ZW9mKHN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbykpOwo+ICAJcmVzLmNvbm5l Y3Rvcl9pZCA9IGNvbm5lY3Rvcl9pZDsKPiAgCj4gQEAgLTU5OCwxMyArNjAwLDggQEAgZHJtTW9k ZVByb3BlcnR5UHRyIGRybU1vZGVHZXRQcm9wZXJ0eShpbnQgZmQsIHVpbnQzMl90IHByb3BlcnR5 X2lkKQo+ICAJc3RydWN0IGRybV9tb2RlX2dldF9wcm9wZXJ0eSBwcm9wOwo+ICAJZHJtTW9kZVBy b3BlcnR5UHRyIHI7Cj4gIAo+IC0JVkdfQ0xFQVIocHJvcCk7Cj4gKwltZW1jbGVhcihwcm9wKTsK PiAgCXByb3AucHJvcF9pZCA9IHByb3BlcnR5X2lkOwo+IC0JcHJvcC5jb3VudF9lbnVtX2Jsb2Jz ID0gMDsKPiAtCXByb3AuY291bnRfdmFsdWVzID0gMDsKPiAtCXByb3AuZmxhZ3MgPSAwOwo+IC0J cHJvcC5lbnVtX2Jsb2JfcHRyID0gMDsKPiAtCXByb3AudmFsdWVzX3B0ciA9IDA7Cj4gIAo+ICAJ aWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9HRVRQUk9QRVJUWSwgJnByb3ApKQo+ICAJ CXJldHVybiAwOwo+IEBAIC02NjcsOCArNjY0LDcgQEAgZHJtTW9kZVByb3BlcnR5QmxvYlB0ciBk cm1Nb2RlR2V0UHJvcGVydHlCbG9iKGludCBmZCwgdWludDMyX3QgYmxvYl9pZCkKPiAgCXN0cnVj dCBkcm1fbW9kZV9nZXRfYmxvYiBibG9iOwo+ICAJZHJtTW9kZVByb3BlcnR5QmxvYlB0ciByOwo+ ICAKPiAtCWJsb2IubGVuZ3RoID0gMDsKPiAtCWJsb2IuZGF0YSA9IDA7Cj4gKwltZW1jbGVhcihi bG9iKTsKPiAgCWJsb2IuYmxvYl9pZCA9IGJsb2JfaWQ7Cj4gIAo+ICAJaWYgKGRybUlvY3RsKGZk LCBEUk1fSU9DVExfTU9ERV9HRVRQUk9QQkxPQiwgJmJsb2IpKQo+IEBAIC03MDgsNiArNzA0LDcg QEAgaW50IGRybU1vZGVDb25uZWN0b3JTZXRQcm9wZXJ0eShpbnQgZmQsIHVpbnQzMl90IGNvbm5l Y3Rvcl9pZCwgdWludDMyX3QgcHJvcGVydHkKPiAgewo+ICAJc3RydWN0IGRybV9tb2RlX2Nvbm5l Y3Rvcl9zZXRfcHJvcGVydHkgb3NwOwo+ICAKPiArCW1lbWNsZWFyKG9zcCk7Cj4gIAlvc3AuY29u bmVjdG9yX2lkID0gY29ubmVjdG9yX2lkOwo+ICAJb3NwLnByb3BfaWQgPSBwcm9wZXJ0eV9pZDsK PiAgCW9zcC52YWx1ZSA9IHZhbHVlOwo+IEBAIC04MTgsNiArODE1LDcgQEAgaW50IGRybU1vZGVD cnRjR2V0R2FtbWEoaW50IGZkLCB1aW50MzJfdCBjcnRjX2lkLCB1aW50MzJfdCBzaXplLAo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfY3J0Y19sdXQgbDsKPiAgCj4gKwltZW1jbGVhcihsKTsKPiAg CWwuY3J0Y19pZCA9IGNydGNfaWQ7Cj4gIAlsLmdhbW1hX3NpemUgPSBzaXplOwo+ICAJbC5yZWQg PSBWT0lEMlU2NChyZWQpOwo+IEBAIC04MzIsNiArODMwLDcgQEAgaW50IGRybU1vZGVDcnRjU2V0 R2FtbWEoaW50IGZkLCB1aW50MzJfdCBjcnRjX2lkLCB1aW50MzJfdCBzaXplLAo+ICB7Cj4gIAlz dHJ1Y3QgZHJtX21vZGVfY3J0Y19sdXQgbDsKPiAgCj4gKwltZW1jbGVhcihsKTsKPiAgCWwuY3J0 Y19pZCA9IGNydGNfaWQ7Cj4gIAlsLmdhbW1hX3NpemUgPSBzaXplOwo+ICAJbC5yZWQgPSBWT0lE MlU2NChyZWQpOwo+IEBAIC04OTcsMTEgKzg5NiwxMSBAQCBpbnQgZHJtTW9kZVBhZ2VGbGlwKGlu dCBmZCwgdWludDMyX3QgY3J0Y19pZCwgdWludDMyX3QgZmJfaWQsCj4gIHsKPiAgCXN0cnVjdCBk cm1fbW9kZV9jcnRjX3BhZ2VfZmxpcCBmbGlwOwo+ICAKPiArCW1lbWNsZWFyKGZsaXApOwo+ICAJ ZmxpcC5mYl9pZCA9IGZiX2lkOwo+ICAJZmxpcC5jcnRjX2lkID0gY3J0Y19pZDsKPiAgCWZsaXAu dXNlcl9kYXRhID0gVk9JRDJVNjQodXNlcl9kYXRhKTsKPiAgCWZsaXAuZmxhZ3MgPSBmbGFnczsK PiAtCWZsaXAucmVzZXJ2ZWQgPSAwOwo+ICAKPiAgCXJldHVybiBEUk1fSU9DVEwoZmQsIERSTV9J T0NUTF9NT0RFX1BBR0VfRkxJUCwgJmZsaXApOwo+ICB9Cj4gQEAgLTkxNiw2ICs5MTUsNyBAQCBp bnQgZHJtTW9kZVNldFBsYW5lKGludCBmZCwgdWludDMyX3QgcGxhbmVfaWQsIHVpbnQzMl90IGNy dGNfaWQsCj4gIHsKPiAgCXN0cnVjdCBkcm1fbW9kZV9zZXRfcGxhbmUgczsKPiAgCj4gKwltZW1j bGVhcihzKTsKPiAgCXMucGxhbmVfaWQgPSBwbGFuZV9pZDsKPiAgCXMuY3J0Y19pZCA9IGNydGNf aWQ7Cj4gIAlzLmZiX2lkID0gZmJfaWQ7Cj4gQEAgLTkzOSw3ICs5MzksNyBAQCBkcm1Nb2RlUGxh bmVQdHIgZHJtTW9kZUdldFBsYW5lKGludCBmZCwgdWludDMyX3QgcGxhbmVfaWQpCj4gIAlkcm1N b2RlUGxhbmVQdHIgciA9IDA7Cj4gIAo+ICByZXRyeToKPiAtCW1lbXNldCgmb3ZyLCAwLCBzaXpl b2Yoc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZSkpOwo+ICsJbWVtY2xlYXIob3ZyKTsKPiAgCW92 ci5wbGFuZV9pZCA9IHBsYW5lX2lkOwo+ICAJaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfTU9E RV9HRVRQTEFORSwgJm92cikpCj4gIAkJcmV0dXJuIDA7Cj4gQEAgLTk5OSw3ICs5OTksNyBAQCBk cm1Nb2RlUGxhbmVSZXNQdHIgZHJtTW9kZUdldFBsYW5lUmVzb3VyY2VzKGludCBmZCkKPiAgCWRy bU1vZGVQbGFuZVJlc1B0ciByID0gMDsKPiAgCj4gIHJldHJ5Ogo+IC0JbWVtc2V0KCZyZXMsIDAs IHNpemVvZihzdHJ1Y3QgZHJtX21vZGVfZ2V0X3BsYW5lX3JlcykpOwo+ICsJbWVtY2xlYXIocmVz KTsKPiAgCWlmIChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX01PREVfR0VUUExBTkVSRVNPVVJDRVMs ICZyZXMpKQo+ICAJCXJldHVybiAwOwo+ICAKPiBAQCAtMTA1Niw3ICsxMDU2LDcgQEAgZHJtTW9k ZU9iamVjdFByb3BlcnRpZXNQdHIgZHJtTW9kZU9iamVjdEdldFByb3BlcnRpZXMoaW50IGZkLAo+ ICAJdWludDMyX3QgY291bnQ7Cj4gIAo+ICByZXRyeToKPiAtCW1lbXNldCgmcHJvcGVydGllcywg MCwgc2l6ZW9mKHN0cnVjdCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXMpKTsKPiArCW1lbWNs ZWFyKHByb3BlcnRpZXMpOwo+ICAJcHJvcGVydGllcy5vYmpfaWQgPSBvYmplY3RfaWQ7Cj4gIAlw cm9wZXJ0aWVzLm9ial90eXBlID0gb2JqZWN0X3R5cGU7Cj4gIAo+IEBAIC0xMTIyLDYgKzExMjIs NyBAQCBpbnQgZHJtTW9kZU9iamVjdFNldFByb3BlcnR5KGludCBmZCwgdWludDMyX3Qgb2JqZWN0 X2lkLCB1aW50MzJfdCBvYmplY3RfdHlwZSwKPiAgewo+ICAJc3RydWN0IGRybV9tb2RlX29ial9z ZXRfcHJvcGVydHkgcHJvcDsKPiAgCj4gKwltZW1jbGVhcihwcm9wKTsKPiAgCXByb3AudmFsdWUg PSB2YWx1ZTsKPiAgCXByb3AucHJvcF9pZCA9IHByb3BlcnR5X2lkOwo+ICAJcHJvcC5vYmpfaWQg PSBvYmplY3RfaWQ7Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=