From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915/selftests: Tighten the timeout testing for partial mmaps Date: Tue, 10 Sep 2019 13:10:09 +0100 Message-ID: <20190910121009.13431-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 424346E064 for ; Tue, 10 Sep 2019 12:10:32 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Matthew Auld List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5LCBpZiB0aGVyZSBpcyB0aW1lIHJlbWFpbmluZyBiZWZvcmUgdGhlIHN0YXJ0IG9m IHRoZSBsb29wLCB3ZQpkbyBvbmUgZnVsbCBpdGVyYXRpb24gb3ZlciBtYW55IHBvc3NpYmxlIGRp ZmZlcmVudCBjaHVua3Mgd2l0aGluIHRoZQpvYmplY3QuIEEgZnVsbCBsb29wIG1heSB0YWtlIDUw K3MgKGRlcGVuZGluZyBvbiBzcGVlZCBvZiBpbmRpcmVjdCBHVFQKbW1hcGluZ3MpIGFuZCB3ZSB0 cnkgc2VwYXJhdGVseSB3aXRoIExJTkVBUiwgWCBhbmQgWSAtLSBhdCB3aGljaCBwb2ludAppZ3Qg dGltZXMgb3V0LiBJZiB3ZSBjaGVjayBtb3JlIGZyZXF1ZW50bHksIHdlIHdpbGwgaW50ZXJydXB0 IHRoZSBsb29wCnVwb24gb3VyIHRpbWVvdXQgLS0gaXQgaXMgaGFyZCB0byBhcmd1ZSBmb3IgYXMg dGhpcyBzaWduaWZpY2FudGx5IHJlZHVjZXMKdGhlIHRlc3QgY292ZXJhZ2UgYXMgd2UgZHJhbWF0 aWNhbGx5IHJlZHVjZSB0aGUgcnVudGltZS4gSW4gcHJhY3RpY2FsCnRlcm1zLCB0aGUgY292ZXJh Z2Ugd2Ugc2hvdWxkIHByaW9yaXRpc2UgaXMgaW4gdXNpbmcgZGlmZmVyZW50IGZlbmNlCnNldHVw cywgZm9yY2luZyB2ZXJpZmljYXRpb24gb2YgdGhlIHRpbGUgcm93IGNvbXB1dGF0aW9ucyBvdmVy IHRoZQpjdXJyZW50IHByZWZlcmVuY2Ugb2YgY2hlY2tpbmcgZXh0cmFjdGluZyBjaHVua3MuIFRo b3VnaCB0aGUgZXhoYXVzdGl2ZQpzZWFyY2ggaXMgZ3JlYXQgZ2l2ZW4gYW4gaW5maW5pdGUgdGlt ZW91dCwgdG8gaW1wcm92ZSBvdXIgY3VycmVudApjb3ZlcmFnZSwgd2UgYWxzbyBhZGQgYSByYW5k b21pc2VkIHNtb2tldGVzdCBvZiBwYXJ0aWFsIG1tYXBzLiBTbyBsZXQncwpkbyBib3RoLCBhZGQg YSByYW5kb21pc2VkIHNtb2tldGVzdCBvZiBwYXJ0aWFsIHRpbGluZyBjaHVua3MgYW5kIHRoZQpl eGhhdXN0aXZlICh0aG91Z2ggdGltZSBsaW1pdGVkKSBzZWFyY2ggZm9yIGZhaWx1cmVzLgoKRXZl biBpbiBhZGRpbmcgYW5vdGhlciBzdWJ0ZXN0LCB3ZSBzaG91bGQgc2hhdmUgMTAwcyBvZmYgQkFU ISAoV2l0aCwKaG9wZWZ1bGx5LCBubyBsb3NzIGluIGNvdmVyYWdlLCBhdCBsZWFzdCBvdmVyIG11 bHRpcGxlIHJ1bnMuKQoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+CkNjOiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+Ci0t LQogLi4uL2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jICAgIHwgMjU1ICsr KysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIyMyBpbnNlcnRpb25zKCspLCAzMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMv aTkxNV9nZW1fbW1hbi5jCmluZGV4IDFkMjdiYWJmZjBjZS4uYWVmZTU1NzUyN2Y4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwpA QCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgImd0L2ludGVsX2d0X3BtLmgiCiAjaW5jbHVkZSAi aHVnZV9nZW1fb2JqZWN0LmgiCiAjaW5jbHVkZSAiaTkxNV9zZWxmdGVzdC5oIgorI2luY2x1ZGUg InNlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5oIgogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfZmx1c2hf dGVzdC5oIgogCiBzdHJ1Y3QgdGlsZSB7CkBAIC03NiwxOCArNzcsMTAzIEBAIHN0YXRpYyB1NjQg dGlsZWRfb2Zmc2V0KGNvbnN0IHN0cnVjdCB0aWxlICp0aWxlLCB1NjQgdikKIAogc3RhdGljIGlu dCBjaGVja19wYXJ0aWFsX21hcHBpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK IAkJCQkgY29uc3Qgc3RydWN0IHRpbGUgKnRpbGUsCi0JCQkJIHVuc2lnbmVkIGxvbmcgZW5kX3Rp bWUpCisJCQkJIHN0cnVjdCBybmRfc3RhdGUgKnBybmcpCiB7Ci0JY29uc3QgdW5zaWduZWQgaW50 IG5yZWFsID0gb2JqLT5zY3JhdGNoIC8gUEFHRV9TSVpFOwogCWNvbnN0IHVuc2lnbmVkIGxvbmcg bnBhZ2VzID0gb2JqLT5iYXNlLnNpemUgLyBQQUdFX1NJWkU7CisJc3RydWN0IGk5MTVfZ2d0dF92 aWV3IHZpZXc7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJdW5zaWduZWQgbG9uZyBwYWdlOwor CXUzMiBfX2lvbWVtICppbzsKKwlzdHJ1Y3QgcGFnZSAqcDsKKwl1bnNpZ25lZCBpbnQgbjsKKwl1 NjQgb2Zmc2V0OworCXUzMiAqY3B1OwogCWludCBlcnI7CiAKLQlpZiAoaWd0X3RpbWVvdXQoZW5k X3RpbWUsCi0JCQkiJXM6IHRpbWVkIG91dCBiZWZvcmUgdGlsaW5nPSVkIHN0cmlkZT0lZFxuIiwK LQkJCV9fZnVuY19fLCB0aWxlLT50aWxpbmcsIHRpbGUtPnN0cmlkZSkpCi0JCXJldHVybiAtRUlO VFI7CisJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90aWxpbmcob2JqLCB0aWxlLT50aWxpbmcs IHRpbGUtPnN0cmlkZSk7CisJaWYgKGVycikgeworCQlwcl9lcnIoIkZhaWxlZCB0byBzZXQgdGls aW5nIG1vZGU9JXUsIHN0cmlkZT0ldSwgZXJyPSVkXG4iLAorCQkgICAgICAgdGlsZS0+dGlsaW5n LCB0aWxlLT5zdHJpZGUsIGVycik7CisJCXJldHVybiBlcnI7CisJfQorCisJR0VNX0JVR19PTihp OTE1X2dlbV9vYmplY3RfZ2V0X3RpbGluZyhvYmopICE9IHRpbGUtPnRpbGluZyk7CisJR0VNX0JV R19PTihpOTE1X2dlbV9vYmplY3RfZ2V0X3N0cmlkZShvYmopICE9IHRpbGUtPnN0cmlkZSk7CisK KwlpOTE1X2dlbV9vYmplY3RfbG9jayhvYmopOworCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRf dG9fZ3R0X2RvbWFpbihvYmosIHRydWUpOworCWk5MTVfZ2VtX29iamVjdF91bmxvY2sob2JqKTsK KwlpZiAoZXJyKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGZsdXNoIHRvIEdUVCB3cml0ZSBkb21h aW47IGVycj0lZFxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwlwYWdlID0gaTkxNV9w cmFuZG9tX3UzMl9tYXhfc3RhdGUobnBhZ2VzLCBwcm5nKTsKKwl2aWV3ID0gY29tcHV0ZV9wYXJ0 aWFsX3ZpZXcob2JqLCBwYWdlLCBNSU5fQ0hVTktfUEFHRVMpOworCisJdm1hID0gaTkxNV9nZW1f b2JqZWN0X2dndHRfcGluKG9iaiwgJnZpZXcsIDAsIDAsIFBJTl9NQVBQQUJMRSk7CisJaWYgKElT X0VSUih2bWEpKSB7CisJCXByX2VycigiRmFpbGVkIHRvIHBpbiBwYXJ0aWFsIHZpZXc6IG9mZnNl dD0lbHU7IGVycj0lZFxuIiwKKwkJICAgICAgIHBhZ2UsIChpbnQpUFRSX0VSUih2bWEpKTsKKwkJ cmV0dXJuIFBUUl9FUlIodm1hKTsKKwl9CisKKwluID0gcGFnZSAtIHZpZXcucGFydGlhbC5vZmZz ZXQ7CisJR0VNX0JVR19PTihuID49IHZpZXcucGFydGlhbC5zaXplKTsKKworCWlvID0gaTkxNV92 bWFfcGluX2lvbWFwKHZtYSk7CisJaTkxNV92bWFfdW5waW4odm1hKTsKKwlpZiAoSVNfRVJSKGlv KSkgeworCQlwcl9lcnIoIkZhaWxlZCB0byBpb21hcCBwYXJ0aWFsIHZpZXc6IG9mZnNldD0lbHU7 IGVycj0lZFxuIiwKKwkJICAgICAgIHBhZ2UsIChpbnQpUFRSX0VSUihpbykpOworCQllcnIgPSBQ VFJfRVJSKGlvKTsKKwkJZ290byBvdXQ7CisJfQorCisJaW93cml0ZTMyKHBhZ2UsIGlvICsgbiAq IFBBR0VfU0laRSAvIHNpemVvZigqaW8pKTsKKwlpOTE1X3ZtYV91bnBpbl9pb21hcCh2bWEpOwor CisJb2Zmc2V0ID0gdGlsZWRfb2Zmc2V0KHRpbGUsIHBhZ2UgPDwgUEFHRV9TSElGVCk7CisJaWYg KG9mZnNldCA+PSBvYmotPmJhc2Uuc2l6ZSkKKwkJZ290byBvdXQ7CisKKwlpbnRlbF9ndF9mbHVz aF9nZ3R0X3dyaXRlcygmdG9faTkxNShvYmotPmJhc2UuZGV2KS0+Z3QpOworCisJcCA9IGk5MTVf Z2VtX29iamVjdF9nZXRfcGFnZShvYmosIG9mZnNldCA+PiBQQUdFX1NISUZUKTsKKwljcHUgPSBr bWFwKHApICsgb2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KTsKKwlkcm1fY2xmbHVzaF92aXJ0X3Jhbmdl KGNwdSwgc2l6ZW9mKCpjcHUpKTsKKwlpZiAoKmNwdSAhPSAodTMyKXBhZ2UpIHsKKwkJcHJfZXJy KCJQYXJ0aWFsIHZpZXcgZm9yICVsdSBbJXVdIChvZmZzZXQ9JWxsdSwgc2l6ZT0ldSBbJWxsdSwg cm93IHNpemUgJXVdLCBmZW5jZT0lZCwgdGlsaW5nPSVkLCBzdHJpZGU9JWQpIG1pc2FsaWdubWVu dCwgZXhwZWN0ZWQgd3JpdGUgdG8gcGFnZSAoJWxsdSArICV1IFsweCVsbHhdKSBvZiAweCV4LCBm b3VuZCAweCV4XG4iLAorCQkgICAgICAgcGFnZSwgbiwKKwkJICAgICAgIHZpZXcucGFydGlhbC5v ZmZzZXQsCisJCSAgICAgICB2aWV3LnBhcnRpYWwuc2l6ZSwKKwkJICAgICAgIHZtYS0+c2l6ZSA+ PiBQQUdFX1NISUZULAorCQkgICAgICAgdGlsZS0+dGlsaW5nID8gdGlsZV9yb3dfcGFnZXMob2Jq KSA6IDAsCisJCSAgICAgICB2bWEtPmZlbmNlID8gdm1hLT5mZW5jZS0+aWQgOiAtMSwgdGlsZS0+ dGlsaW5nLCB0aWxlLT5zdHJpZGUsCisJCSAgICAgICBvZmZzZXQgPj4gUEFHRV9TSElGVCwKKwkJ ICAgICAgICh1bnNpZ25lZCBpbnQpb2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KSwKKwkJICAgICAgIG9m ZnNldCwKKwkJICAgICAgICh1MzIpcGFnZSwgKmNwdSk7CisJCWVyciA9IC1FSU5WQUw7CisJfQor CSpjcHUgPSAwOworCWRybV9jbGZsdXNoX3ZpcnRfcmFuZ2UoY3B1LCBzaXplb2YoKmNwdSkpOwor CWt1bm1hcChwKTsKKworb3V0OgorCWk5MTVfdm1hX2Rlc3Ryb3kodm1hKTsKKwlyZXR1cm4gZXJy OworfQorCitzdGF0aWMgaW50IGNoZWNrX3BhcnRpYWxfbWFwcGluZ3Moc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkgIGNvbnN0IHN0cnVjdCB0aWxlICp0aWxlLAorCQkJCSAg dW5zaWduZWQgbG9uZyBlbmRfdGltZSkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgbnJlYWwgPSBv YmotPnNjcmF0Y2ggLyBQQUdFX1NJWkU7CisJY29uc3QgdW5zaWduZWQgbG9uZyBucGFnZXMgPSBv YmotPmJhc2Uuc2l6ZSAvIFBBR0VfU0laRTsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl1bnNp Z25lZCBsb25nIHBhZ2U7CisJaW50IGVycjsKIAogCWVyciA9IGk5MTVfZ2VtX29iamVjdF9zZXRf dGlsaW5nKG9iaiwgdGlsZS0+dGlsaW5nLCB0aWxlLT5zdHJpZGUpOwogCWlmIChlcnIpIHsKQEAg LTE3MCwxMSArMjU2LDQyIEBAIHN0YXRpYyBpbnQgY2hlY2tfcGFydGlhbF9tYXBwaW5nKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQlyZXR1cm4gZXJyOwogCiAJCWk5MTVfdm1h X2Rlc3Ryb3kodm1hKTsKKworCQlpZiAoaWd0X3RpbWVvdXQoZW5kX3RpbWUsCisJCQkJIiVzOiB0 aW1lZCBvdXQgYWZ0ZXIgdGlsaW5nPSVkIHN0cmlkZT0lZFxuIiwKKwkJCQlfX2Z1bmNfXywgdGls ZS0+dGlsaW5nLCB0aWxlLT5zdHJpZGUpKQorCQkJcmV0dXJuIC1FSU5UUjsKIAl9CiAKIAlyZXR1 cm4gMDsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGludAorc2V0dXBfdGlsZV9zaXplKHN0cnVjdCB0 aWxlICp0aWxlLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpZiAoSU5URUxf R0VOKGk5MTUpIDw9IDIpIHsKKwkJdGlsZS0+aGVpZ2h0ID0gMTY7CisJCXRpbGUtPndpZHRoID0g MTI4OworCQl0aWxlLT5zaXplID0gMTE7CisJfSBlbHNlIGlmICh0aWxlLT50aWxpbmcgPT0gSTkx NV9USUxJTkdfWSAmJgorCQkgICBIQVNfMTI4X0JZVEVfWV9USUxJTkcoaTkxNSkpIHsKKwkJdGls ZS0+aGVpZ2h0ID0gMzI7CisJCXRpbGUtPndpZHRoID0gMTI4OworCQl0aWxlLT5zaXplID0gMTI7 CisJfSBlbHNlIHsKKwkJdGlsZS0+aGVpZ2h0ID0gODsKKwkJdGlsZS0+d2lkdGggPSA1MTI7CisJ CXRpbGUtPnNpemUgPSAxMjsKKwl9CisKKwlpZiAoSU5URUxfR0VOKGk5MTUpIDwgNCkKKwkJcmV0 dXJuIDgxOTIgLyB0aWxlLT53aWR0aDsKKwllbHNlIGlmIChJTlRFTF9HRU4oaTkxNSkgPCA3KQor CQlyZXR1cm4gMTI4ICogSTk2NV9GRU5DRV9NQVhfUElUQ0hfVkFMIC8gdGlsZS0+d2lkdGg7CisJ ZWxzZQorCQlyZXR1cm4gMTI4ICogR0VON19GRU5DRV9NQVhfUElUQ0hfVkFMIC8gdGlsZS0+d2lk dGg7Cit9CisKIHN0YXRpYyBpbnQgaWd0X3BhcnRpYWxfdGlsaW5nKHZvaWQgKmFyZykKIHsKIAlj b25zdCB1bnNpZ25lZCBpbnQgbnJlYWwgPSAxIDw8IDEyOyAvKiBsYXJnZXN0IHRpbGUgcm93IHgy ICovCkBAIC0yMTksNyArMzM2LDcgQEAgc3RhdGljIGludCBpZ3RfcGFydGlhbF90aWxpbmcodm9p ZCAqYXJnKQogCQl0aWxlLnN3aXp6bGUgPSBJOTE1X0JJVF82X1NXSVpaTEVfTk9ORTsKIAkJdGls ZS50aWxpbmcgPSBJOTE1X1RJTElOR19OT05FOwogCi0JCWVyciA9IGNoZWNrX3BhcnRpYWxfbWFw cGluZyhvYmosICZ0aWxlLCBlbmQpOworCQllcnIgPSBjaGVja19wYXJ0aWFsX21hcHBpbmdzKG9i aiwgJnRpbGUsIGVuZCk7CiAJCWlmIChlcnIgJiYgZXJyICE9IC1FSU5UUikKIAkJCWdvdG8gb3V0 X3VubG9jazsKIAl9CkBAIC0yNTMsMzEgKzM3MCwxMSBAQCBzdGF0aWMgaW50IGlndF9wYXJ0aWFs X3RpbGluZyh2b2lkICphcmcpCiAJCSAgICB0aWxlLnN3aXp6bGUgPT0gSTkxNV9CSVRfNl9TV0la WkxFXzlfMTBfMTcpCiAJCQljb250aW51ZTsKIAotCQlpZiAoSU5URUxfR0VOKGk5MTUpIDw9IDIp IHsKLQkJCXRpbGUuaGVpZ2h0ID0gMTY7Ci0JCQl0aWxlLndpZHRoID0gMTI4OwotCQkJdGlsZS5z aXplID0gMTE7Ci0JCX0gZWxzZSBpZiAodGlsZS50aWxpbmcgPT0gSTkxNV9USUxJTkdfWSAmJgot CQkJICAgSEFTXzEyOF9CWVRFX1lfVElMSU5HKGk5MTUpKSB7Ci0JCQl0aWxlLmhlaWdodCA9IDMy OwotCQkJdGlsZS53aWR0aCA9IDEyODsKLQkJCXRpbGUuc2l6ZSA9IDEyOwotCQl9IGVsc2Ugewot CQkJdGlsZS5oZWlnaHQgPSA4OwotCQkJdGlsZS53aWR0aCA9IDUxMjsKLQkJCXRpbGUuc2l6ZSA9 IDEyOwotCQl9Ci0KLQkJaWYgKElOVEVMX0dFTihpOTE1KSA8IDQpCi0JCQltYXhfcGl0Y2ggPSA4 MTkyIC8gdGlsZS53aWR0aDsKLQkJZWxzZSBpZiAoSU5URUxfR0VOKGk5MTUpIDwgNykKLQkJCW1h eF9waXRjaCA9IDEyOCAqIEk5NjVfRkVOQ0VfTUFYX1BJVENIX1ZBTCAvIHRpbGUud2lkdGg7Ci0J CWVsc2UKLQkJCW1heF9waXRjaCA9IDEyOCAqIEdFTjdfRkVOQ0VfTUFYX1BJVENIX1ZBTCAvIHRp bGUud2lkdGg7CisJCW1heF9waXRjaCA9IHNldHVwX3RpbGVfc2l6ZSgmdGlsZSwgaTkxNSk7CiAK IAkJZm9yIChwaXRjaCA9IG1heF9waXRjaDsgcGl0Y2g7IHBpdGNoID4+PSAxKSB7CiAJCQl0aWxl LnN0cmlkZSA9IHRpbGUud2lkdGggKiBwaXRjaDsKLQkJCWVyciA9IGNoZWNrX3BhcnRpYWxfbWFw cGluZyhvYmosICZ0aWxlLCBlbmQpOworCQkJZXJyID0gY2hlY2tfcGFydGlhbF9tYXBwaW5ncyhv YmosICZ0aWxlLCBlbmQpOwogCQkJaWYgKGVyciA9PSAtRUlOVFIpCiAJCQkJZ290byBuZXh0X3Rp bGluZzsKIAkJCWlmIChlcnIpCkBAIC0yODUsNyArMzgyLDcgQEAgc3RhdGljIGludCBpZ3RfcGFy dGlhbF90aWxpbmcodm9pZCAqYXJnKQogCiAJCQlpZiAocGl0Y2ggPiAyICYmIElOVEVMX0dFTihp OTE1KSA+PSA0KSB7CiAJCQkJdGlsZS5zdHJpZGUgPSB0aWxlLndpZHRoICogKHBpdGNoIC0gMSk7 Ci0JCQkJZXJyID0gY2hlY2tfcGFydGlhbF9tYXBwaW5nKG9iaiwgJnRpbGUsIGVuZCk7CisJCQkJ ZXJyID0gY2hlY2tfcGFydGlhbF9tYXBwaW5ncyhvYmosICZ0aWxlLCBlbmQpOwogCQkJCWlmIChl cnIgPT0gLUVJTlRSKQogCQkJCQlnb3RvIG5leHRfdGlsaW5nOwogCQkJCWlmIChlcnIpCkBAIC0y OTQsNyArMzkxLDcgQEAgc3RhdGljIGludCBpZ3RfcGFydGlhbF90aWxpbmcodm9pZCAqYXJnKQog CiAJCQlpZiAocGl0Y2ggPCBtYXhfcGl0Y2ggJiYgSU5URUxfR0VOKGk5MTUpID49IDQpIHsKIAkJ CQl0aWxlLnN0cmlkZSA9IHRpbGUud2lkdGggKiAocGl0Y2ggKyAxKTsKLQkJCQllcnIgPSBjaGVj a19wYXJ0aWFsX21hcHBpbmcob2JqLCAmdGlsZSwgZW5kKTsKKwkJCQllcnIgPSBjaGVja19wYXJ0 aWFsX21hcHBpbmdzKG9iaiwgJnRpbGUsIGVuZCk7CiAJCQkJaWYgKGVyciA9PSAtRUlOVFIpCiAJ CQkJCWdvdG8gbmV4dF90aWxpbmc7CiAJCQkJaWYgKGVycikKQEAgLTMwNSw3ICs0MDIsNyBAQCBz dGF0aWMgaW50IGlndF9wYXJ0aWFsX3RpbGluZyh2b2lkICphcmcpCiAJCWlmIChJTlRFTF9HRU4o aTkxNSkgPj0gNCkgewogCQkJZm9yX2VhY2hfcHJpbWVfbnVtYmVyKHBpdGNoLCBtYXhfcGl0Y2gp IHsKIAkJCQl0aWxlLnN0cmlkZSA9IHRpbGUud2lkdGggKiBwaXRjaDsKLQkJCQllcnIgPSBjaGVj a19wYXJ0aWFsX21hcHBpbmcob2JqLCAmdGlsZSwgZW5kKTsKKwkJCQllcnIgPSBjaGVja19wYXJ0 aWFsX21hcHBpbmdzKG9iaiwgJnRpbGUsIGVuZCk7CiAJCQkJaWYgKGVyciA9PSAtRUlOVFIpCiAJ CQkJCWdvdG8gbmV4dF90aWxpbmc7CiAJCQkJaWYgKGVycikKQEAgLTMyNSw2ICs0MjIsOTkgQEAg bmV4dF90aWxpbmc6IDsKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgaW50IGlndF9zbW9rZV90 aWxpbmcodm9pZCAqYXJnKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBucmVhbCA9IDEgPDwgMTI7 IC8qIGxhcmdlc3QgdGlsZSByb3cgeDIgKi8KKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IGFyZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludGVsX3dha2Vy ZWZfdCB3YWtlcmVmOworCUk5MTVfUk5EX1NUQVRFKHBybmcpOworCXVuc2lnbmVkIGxvbmcgY291 bnQ7CisJSUdUX1RJTUVPVVQoZW5kKTsKKwlpbnQgZXJyOworCisJLyoKKwkgKiBpZ3RfcGFydGlh bF90aWxpbmcoKSBkb2VzIGFuIGV4aGFzdGl2ZSBjaGVjayBvZiBwYXJ0aWFsIHRpbGluZworCSAq IGNodW5raW5nLCBidXQgd2lsbCB1bmRvdWJ0YWJseSBydW4gb3V0IG9mIHRpbWUuIEhlcmUsIHdl IGRvIGEKKwkgKiByYW5kb21pc2VkIHNlYXJjaCBhbmQgaG9wZSBvdmVyIG1hbnkgcnVucyBvZiAx cyB3aXRoIGRpZmZlcmVudAorCSAqIHNlZWRzIHdlIHdpbGwgZG8gYSB0aG9yb3VnaCBjaGVjay4K KwkgKgorCSAqIFJlbWVtYmVyIHRvIGxvb2sgYXQgdGhlIHN0X3NlZWQgaWYgd2Ugc2VlIGEgZmxp cC1mbG9wIGluIEJBVCEKKwkgKi8KKworCWlmIChpOTE1LT5xdWlya3MgJiBRVUlSS19QSU5fU1dJ WlpMRURfUEFHRVMpCisJCXJldHVybiAwOworCisJb2JqID0gaHVnZV9nZW1fb2JqZWN0KGk5MTUs CisJCQkgICAgICBucmVhbCA8PCBQQUdFX1NISUZULAorCQkJICAgICAgKDEgKyBuZXh0X3ByaW1l X251bWJlcihpOTE1LT5nZ3R0LnZtLnRvdGFsID4+IFBBR0VfU0hJRlQpKSA8PCBQQUdFX1NISUZU KTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9iaik7CisKKwllcnIgPSBp OTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJaWYgKGVycikgeworCQlwcl9lcnIoIkZh aWxlZCB0byBhbGxvY2F0ZSAldSBwYWdlcyAoJWx1IHRvdGFsKSwgZXJyPSVkXG4iLAorCQkgICAg ICAgbnJlYWwsIG9iai0+YmFzZS5zaXplIC8gUEFHRV9TSVpFLCBlcnIpOworCQlnb3RvIG91dDsK Kwl9CisKKwltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOworCisJY291bnQgPSAwOwor CWRvIHsKKwkJc3RydWN0IHRpbGUgdGlsZTsKKworCQl0aWxlLnRpbGluZyA9CisJCQlpOTE1X3By YW5kb21fdTMyX21heF9zdGF0ZShJOTE1X1RJTElOR19ZICsgMSwgJnBybmcpOworCQlzd2l0Y2gg KHRpbGUudGlsaW5nKSB7CisJCWNhc2UgSTkxNV9USUxJTkdfTk9ORToKKwkJCXRpbGUuaGVpZ2h0 ID0gMTsKKwkJCXRpbGUud2lkdGggPSAxOworCQkJdGlsZS5zaXplID0gMDsKKwkJCXRpbGUuc3Ry aWRlID0gMDsKKwkJCXRpbGUuc3dpenpsZSA9IEk5MTVfQklUXzZfU1dJWlpMRV9OT05FOworCQkJ YnJlYWs7CisKKwkJY2FzZSBJOTE1X1RJTElOR19YOgorCQkJdGlsZS5zd2l6emxlID0gaTkxNS0+ bW0uYml0XzZfc3dpenpsZV94OworCQkJYnJlYWs7CisJCWNhc2UgSTkxNV9USUxJTkdfWToKKwkJ CXRpbGUuc3dpenpsZSA9IGk5MTUtPm1tLmJpdF82X3N3aXp6bGVfeTsKKwkJCWJyZWFrOworCQl9 CisKKwkJaWYgKHRpbGUuc3dpenpsZSA9PSBJOTE1X0JJVF82X1NXSVpaTEVfOV8xNyB8fAorCQkg ICAgdGlsZS5zd2l6emxlID09IEk5MTVfQklUXzZfU1dJWlpMRV85XzEwXzE3KQorCQkJY29udGlu dWU7CisKKwkJaWYgKHRpbGUudGlsaW5nICE9IEk5MTVfVElMSU5HX05PTkUpIHsKKwkJCXVuc2ln bmVkIGludCBtYXhfcGl0Y2ggPSBzZXR1cF90aWxlX3NpemUoJnRpbGUsIGk5MTUpOworCisJCQl0 aWxlLnN0cmlkZSA9CisJCQkJaTkxNV9wcmFuZG9tX3UzMl9tYXhfc3RhdGUobWF4X3BpdGNoLCAm cHJuZyk7CisJCQl0aWxlLnN0cmlkZSA9ICgxICsgdGlsZS5zdHJpZGUpICogdGlsZS53aWR0aDsK KwkJCWlmIChJTlRFTF9HRU4oaTkxNSkgPCA0KQorCQkJCXRpbGUuc3RyaWRlID0gcm91bmRkb3du X3Bvd19vZl90d28odGlsZS5zdHJpZGUpOworCQl9CisKKwkJZXJyID0gY2hlY2tfcGFydGlhbF9t YXBwaW5nKG9iaiwgJnRpbGUsICZwcm5nKTsKKwkJaWYgKGVycikKKwkJCWJyZWFrOworCisJCWNv dW50Kys7CisJfSB3aGlsZSAoIV9faWd0X3RpbWVvdXQoZW5kLCBOVUxMKSk7CisKKwlwcl9pbmZv KCIlczogQ29tcGxldGVkICVsdSB0cmlhbHNcbiIsIF9fZnVuY19fLCBjb3VudCk7CisKKwlpbnRl bF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CisJbXV0ZXhfdW5s b2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFn ZXMob2JqKTsKK291dDoKKwlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJcmV0dXJuIGVycjsK K30KKwogc3RhdGljIGludCBtYWtlX29ial9idXN5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+ YmFzZS5kZXYpOwpAQCAtNTE1LDYgKzcwNSw3IEBAIGludCBpOTE1X2dlbV9tbWFuX2xpdmVfc2Vs ZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0YXRpYyBjb25zdCBz dHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7CiAJCVNVQlRFU1QoaWd0X3BhcnRpYWxfdGls aW5nKSwKKwkJU1VCVEVTVChpZ3Rfc21va2VfdGlsaW5nKSwKIAkJU1VCVEVTVChpZ3RfbW1hcF9v ZmZzZXRfZXhoYXVzdGlvbiksCiAJfTsKIAotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=