From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 01/41] drm/i915: Move user fault tracking to a separate list Date: Thu, 20 Oct 2016 16:03:43 +0100 Message-ID: <20161020150423.4560-2-chris@chris-wilson.co.uk> References: <20161020150423.4560-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 mail-lf0-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF9316EB8F for ; Thu, 20 Oct 2016 15:04:32 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id b75so715713lfg.3 for ; Thu, 20 Oct 2016 08:04:32 -0700 (PDT) In-Reply-To: <20161020150423.4560-1-chris@chris-wilson.co.uk> 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 List-Id: intel-gfx@lists.freedesktop.org V2Ugd2FudCB0byBkZWNvdXBsZSBSUE0gYW5kIHN0cnVjdF9tdXRleCwgYnV0IGN1cnJlbnRseSBS UE0gaGFzIHRvIHdhbGsKdGhlIGxpc3Qgb2YgYm91bmQgb2JqZWN0cyBhbmQgcmVtb3ZlIHVzZXJz cGFjZSBtbWFwcGluZyBiZWZvcmUgd2UKc3VzcGVuZCAob3RoZXJ3aXNlIHVzZXJzcGFjZSBtYXkg Y29udGludWUgdG8gYWNjZXNzIHRoZSBHVFQgd2hpbHN0IGl0IGlzCnBvd2VyZWQgZG93bikuIFRo aXMgY3VycmVudGx5IHJlcXVpcmVzIHRoZSBzdHJ1Y3RfbXV0ZXggdG8gd2FsayB0aGUKYm91bmRf bGlzdCwgYnV0IGlmIHdlIG1vdmUgdGhhdCB0byBhIHNlcGFyYXRlIGxpc3QgYW5kIGxvY2sgd2Ug Y2FuIHRha2UKdGhlIGZpcnN0IHN0ZXAgdG93YXJkcyByZW1vdmluZyB0aGUgc3RydWN0X211dGV4 LgoKdjI6IFNwbGl0IHJ1bnRpbWUgc3VzcGVuZCB1bm1hcHBpbmcgdnMgcmVndWxhciB1bm1hcHBp bmcsIHRvIG1ha2UgdGhlCmxvY2tpbmcgKGFuZCBiYXJyaWVycykgY2xlYXJlci4gQWRkIHRoZSBv YmplY3QgdG8gdGhlIHVzZXJmYXVsdF9saXN0CnByaW9yIHRvIGluc2VydGluZyB0aGUgZmlyc3Qg UFRFLCB0aGUgcmFjZSBiZXR3ZWVuIGFkZC9yZXZva2UgZGVwZW5kcwp1cG9uIHN0cnVjdF9tdXRl eCBmb3IgcmVndWxhciB1bm1hcHBpbmdzIGFuZCBycG0gZm9yIHJ1bnRpbWUtc3VzcGVuZC4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZp ZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gI3YxCi0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgMjAgKysrKysrKysrKystLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgfCA0MiArKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jIHwgIDIgKy0KIDUg ZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCAyMDYzOGQyMmJiYWQuLjFiNDAyZWViZDNkOSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0 aWMgY2hhciBnZXRfdGlsaW5nX2ZsYWcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IAogc3RhdGljIGNoYXIgZ2V0X2dsb2JhbF9mbGFnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCiB7Ci0JcmV0dXJuIG9iai0+ZmF1bHRfbWFwcGFibGUgPyAnZycgOiAnICc7CisJcmV0 dXJuICFsaXN0X2VtcHR5KCZvYmotPnVzZXJmYXVsdF9saW5rKSA/ICdnJyA6ICcgJzsKIH0KIAog c3RhdGljIGNoYXIgZ2V0X3Bpbl9tYXBwZWRfZmxhZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNWIyYjdmM2M2ZTc2Li40ODljZjUy MDFlZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTM2MSw2ICsxMzYxLDE0IEBAIHN0 cnVjdCBpOTE1X2dlbV9tbSB7CiAJICovCiAJc3RydWN0IGxpc3RfaGVhZCB1bmJvdW5kX2xpc3Q7 CiAKKwkvKiogUHJvdGVjdHMgYWNjZXNzIHRvIHRoZSB1c2VyZmF1bHRfbGlzdCAqLworCXNwaW5s b2NrX3QgdXNlcmZhdWx0X2xvY2s7CisKKwkvKiogTGlzdCBvZiBhbGwgb2JqZWN0cyBpbiBndHRf c3BhY2UsIGN1cnJlbnRseSBtbWFwZWQgYnkgdXNlcnNwYWNlLgorCSAqIEFsbCBvYmplY3RzIHdp dGhpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIG9uIGJvdW5kX2xpc3QuCisJICovCisJc3RydWN0 IGxpc3RfaGVhZCB1c2VyZmF1bHRfbGlzdDsKKwogCS8qKiBVc2FibGUgcG9ydGlvbiBvZiB0aGUg R1RUIGZvciBHRU0gKi8KIAl1bnNpZ25lZCBsb25nIHN0b2xlbl9iYXNlOyAvKiBsaW1pdGVkIHRv IGxvdyBtZW1vcnkgKDMyLWJpdCkgKi8KIApAQCAtMjIwNSw2ICsyMjEzLDExIEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0IHsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbjsKIAlzdHJ1 Y3QgbGlzdF9oZWFkIGdsb2JhbF9saXN0OwogCisJLyoqCisJICogV2hldGhlciB0aGUgb2JqZWN0 IGlzIGN1cnJlbnRseSBpbiB0aGUgR0dUVCBtbWFwLgorCSAqLworCXN0cnVjdCBsaXN0X2hlYWQg dXNlcmZhdWx0X2xpbms7CisKIAkvKiogVXNlZCBpbiBleGVjYnVmIHRvIHRlbXBvcmFyaWx5IGhv bGQgYSByZWYgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIG9ial9leGVjX2xpbms7CiAKQEAgLTIyMzIs MTMgKzIyNDUsNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJICovCiAJdW5zaWdu ZWQgaW50IG1hZHY6MjsKIAotCS8qKgotCSAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgZ3R0IG1hcHBp bmcgbmVlZHMgdG8gYmUgbWFwcGFibGUgKGFuZCBpc24ndCBqdXN0Ci0JICogbWFwcGFibGUgYnkg YWNjaWRlbnQpLiBUcmFjayBwaW4gYW5kIGZhdWx0IHNlcGFyYXRlIGZvciBhIG1vcmUKLQkgKiBh Y2N1cmF0ZSBtYXBwYWJsZSB3b3JraW5nIHNldC4KLQkgKi8KLQl1bnNpZ25lZCBpbnQgZmF1bHRf bWFwcGFibGU6MTsKLQogCS8qCiAJICogSXMgdGhlIG9iamVjdCB0byBiZSBtYXBwZWQgYXMgcmVh ZC1vbmx5IHRvIHRoZSBHUFUKIAkgKiBPbmx5IGhvbm91cmVkIGlmIGhhcmR3YXJlIGhhcyByZWxl dmFudCBwdGUgYml0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA4ZWQ4ZTI0MDI1YWMuLmI3 YTZiY2QxNWJjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xODM5LDE2ICsxODM5LDE5 IEBAIGludCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWEsIHN0cnVj dCB2bV9mYXVsdCAqdm1mKQogCWlmIChyZXQpCiAJCWdvdG8gZXJyX3VucGluOwogCisJLyogTWFy ayBhcyBiZWluZyBtbWFwcGVkIGludG8gdXNlcnNwYWNlIGZvciBsYXRlciByZXZvY2F0aW9uICov CisJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+bW0udXNlcmZhdWx0X2xvY2spOworCWlmIChsaXN0X2Vt cHR5KCZvYmotPnVzZXJmYXVsdF9saW5rKSkKKwkJbGlzdF9hZGQoJm9iai0+dXNlcmZhdWx0X2xp bmssICZkZXZfcHJpdi0+bW0udXNlcmZhdWx0X2xpc3QpOworCXNwaW5fdW5sb2NrKCZkZXZfcHJp di0+bW0udXNlcmZhdWx0X2xvY2spOworCiAJLyogRmluYWxseSwgcmVtYXAgaXQgdXNpbmcgdGhl IG5ldyBHVFQgb2Zmc2V0ICovCiAJcmV0ID0gcmVtYXBfaW9fbWFwcGluZyhhcmVhLAogCQkJICAg ICAgIGFyZWEtPnZtX3N0YXJ0ICsgKHZtYS0+Z2d0dF92aWV3LnBhcmFtcy5wYXJ0aWFsLm9mZnNl dCA8PCBQQUdFX1NISUZUKSwKIAkJCSAgICAgICAoZ2d0dC0+bWFwcGFibGVfYmFzZSArIHZtYS0+ bm9kZS5zdGFydCkgPj4gUEFHRV9TSElGVCwKIAkJCSAgICAgICBtaW5fdCh1NjQsIHZtYS0+c2l6 ZSwgYXJlYS0+dm1fZW5kIC0gYXJlYS0+dm1fc3RhcnQpLAogCQkJICAgICAgICZnZ3R0LT5tYXBw YWJsZSk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfdW5waW47CiAKLQlvYmotPmZhdWx0X21hcHBh YmxlID0gdHJ1ZTsKIGVycl91bnBpbjoKIAlfX2k5MTVfdm1hX3VucGluKHZtYSk7CiBlcnJfdW5s b2NrOgpAQCAtMTkxNiwxMyArMTkxOSwyMiBAQCBpbnQgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZt X2FyZWFfc3RydWN0ICphcmVhLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIHZvaWQKIGk5MTVfZ2Vt X3JlbGVhc2VfbW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogeworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKKwlib29s IHphcCA9IGZhbHNlOworCiAJLyogU2VyaWFsaXNhdGlvbiBiZXR3ZWVuIHVzZXIgR1RUIGFjY2Vz cyBhbmQgb3VyIGNvZGUgZGVwZW5kcyB1cG9uCiAJICogcmV2b2tpbmcgdGhlIENQVSdzIFBURSB3 aGlsc3QgdGhlIG11dGV4IGlzIGhlbGQuIFRoZSBuZXh0IHVzZXIKIAkgKiBwYWdlZmF1bHQgdGhl biBoYXMgdG8gd2FpdCB1bnRpbCB3ZSByZWxlYXNlIHRoZSBtdXRleC4KIAkgKi8KLQlsb2NrZGVw X2Fzc2VydF9oZWxkKCZvYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaWYgKCFvYmotPmZhdWx0X21h cHBhYmxlKQorCXNwaW5fbG9jaygmaTkxNS0+bW0udXNlcmZhdWx0X2xvY2spOworCWlmICghbGlz dF9lbXB0eSgmb2JqLT51c2VyZmF1bHRfbGluaykpIHsKKwkJbGlzdF9kZWxfaW5pdCgmb2JqLT51 c2VyZmF1bHRfbGluayk7CisJCXphcCA9IHRydWU7CisJfQorCXNwaW5fdW5sb2NrKCZpOTE1LT5t bS51c2VyZmF1bHRfbG9jayk7CisJaWYgKCF6YXApCiAJCXJldHVybjsKIAogCWRybV92bWFfbm9k ZV91bm1hcCgmb2JqLT5iYXNlLnZtYV9ub2RlLApAQCAtMTkzNiw4ICsxOTQ4LDYgQEAgaTkxNV9n ZW1fcmVsZWFzZV9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJICogbWVt b3J5IHdyaXRlcyBiZWZvcmUgdG91Y2hpbmcgcmVnaXN0ZXJzIC8gR1NNLgogCSAqLwogCXdtYigp OwotCi0Jb2JqLT5mYXVsdF9tYXBwYWJsZSA9IGZhbHNlOwogfQogCiB2b2lkCkBAIC0xOTQ1LDgg KzE5NTUsMTkgQEAgaTkxNV9nZW1fcmVsZWFzZV9hbGxfbW1hcHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJmRldl9wcml2LT5tbS5ib3VuZF9saXN0LCBnbG9i YWxfbGlzdCkKLQkJaTkxNV9nZW1fcmVsZWFzZV9tbWFwKG9iaik7CisJc3Bpbl9sb2NrKCZkZXZf cHJpdi0+bW0udXNlcmZhdWx0X2xvY2spOworCXdoaWxlICgob2JqID0gbGlzdF9maXJzdF9lbnRy eV9vcl9udWxsKCZkZXZfcHJpdi0+bW0udXNlcmZhdWx0X2xpc3QsCisJCQkJCSAgICAgICBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwKKwkJCQkJICAgICAgIHVzZXJmYXVsdF9saW5rKSkpIHsK KwkJbGlzdF9kZWxfaW5pdCgmb2JqLT51c2VyZmF1bHRfbGluayk7CisJCXNwaW5fdW5sb2NrKCZk ZXZfcHJpdi0+bW0udXNlcmZhdWx0X2xvY2spOworCisJCWRybV92bWFfbm9kZV91bm1hcCgmb2Jq LT5iYXNlLnZtYV9ub2RlLAorCQkJCSAgIG9iai0+YmFzZS5kZXYtPmFub25faW5vZGUtPmlfbWFw cGluZyk7CisKKwkJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+bW0udXNlcmZhdWx0X2xvY2spOworCX0K KwlzcGluX3VubG9jaygmZGV2X3ByaXYtPm1tLnVzZXJmYXVsdF9sb2NrKTsKIH0KIAogLyoqCkBA IC00MTA4LDYgKzQxMjksNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9pbml0KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaW50IGk7CiAKIAlJTklUX0xJU1RfSEVBRCgmb2JqLT5n bG9iYWxfbGlzdCk7CisJSU5JVF9MSVNUX0hFQUQoJm9iai0+dXNlcmZhdWx0X2xpbmspOwogCWZv ciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspCiAJCWluaXRfcmVxdWVzdF9hY3Rp dmUoJm9iai0+bGFzdF9yZWFkW2ldLAogCQkJCSAgICBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19y ZWFkKTsKQEAgLTQ1MjEsNiArNDU0Myw3IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJaW50IHJldDsKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKKwlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPm1tLnVzZXJmYXVsdF9sb2NrKTsKIAogCWlm ICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7CiAJCWRldl9wcml2LT5ndC5yZXN1bWUgPSBpbnRl bF9sZWdhY3lfc3VibWlzc2lvbl9yZXN1bWU7CkBAIC00NjQwLDYgKzQ2NjMsNyBAQCBpOTE1X2dl bV9sb2FkX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJTklUX0xJU1RfSEVBRCgmZGV2 X3ByaXYtPm1tLnVuYm91bmRfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5tbS5i b3VuZF9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPm1tLmZlbmNlX2xpc3QpOwor CUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+bW0udXNlcmZhdWx0X2xpc3QpOwogCUlOSVRfREVM QVlFRF9XT1JLKCZkZXZfcHJpdi0+Z3QucmV0aXJlX3dvcmssCiAJCQkgIGk5MTVfZ2VtX3JldGly ZV93b3JrX2hhbmRsZXIpOwogCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+Z3QuaWRsZV93 b3JrLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKaW5kZXggYjVlOWU2NjlmNTBm Li5hOTM0ZjM3MmM1Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V2aWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwpAQCAt NTYsNyArNTYsNyBAQCBtYXJrX2ZyZWUoc3RydWN0IGk5MTVfdm1hICp2bWEsIHVuc2lnbmVkIGlu dCBmbGFncywgc3RydWN0IGxpc3RfaGVhZCAqdW53aW5kKQogCWlmIChXQVJOX09OKCFsaXN0X2Vt cHR5KCZ2bWEtPmV4ZWNfbGlzdCkpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoZmxhZ3MgJiBQ SU5fTk9ORkFVTFQgJiYgdm1hLT5vYmotPmZhdWx0X21hcHBhYmxlKQorCWlmIChmbGFncyAmIFBJ Tl9OT05GQVVMVCAmJiAhbGlzdF9lbXB0eSgmdm1hLT5vYmotPnVzZXJmYXVsdF9saW5rKSkKIAkJ cmV0dXJuIGZhbHNlOwogCiAJbGlzdF9hZGQoJnZtYS0+ZXhlY19saXN0LCB1bndpbmQpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMKaW5kZXggYTZkYWYyZGVhYjc0Li42NzAxMzE3 OWI4ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2UuYwpAQCAtMzkxLDcgKzM5 MSw3IEBAIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkJICovCiAJCWlmICh2bWEgJiYgIWk5MTVfZ2VtX29iamVjdF9pc190aWxlZCh2bWEtPm9i aikpIHsKIAkJCUdFTV9CVUdfT04oIXJlZy0+ZGlydHkpOwotCQkJR0VNX0JVR19PTih2bWEtPm9i ai0+ZmF1bHRfbWFwcGFibGUpOworCQkJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmdm1hLT5vYmot PnVzZXJmYXVsdF9saW5rKSk7CiAKIAkJCWxpc3RfbW92ZSgmcmVnLT5saW5rLCAmZGV2X3ByaXYt Pm1tLmZlbmNlX2xpc3QpOwogCQkJdm1hLT5mZW5jZSA9IE5VTEw7Ci0tIAoyLjkuMwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==