From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 34/62] drm/i915: Simplify request_alloc by returning the allocated request Date: Fri, 3 Jun 2016 17:36:59 +0100 Message-ID: <1464971847-15809-35-git-send-email-chris@chris-wilson.co.uk> References: <1464971847-15809-1-git-send-email-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-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 939086EE2F for ; Fri, 3 Jun 2016 16:38:08 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id e3so610216wme.2 for ; Fri, 03 Jun 2016 09:38:08 -0700 (PDT) In-Reply-To: <1464971847-15809-1-git-send-email-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 SWYgaXMgc2ltcGxlciBhbmQgbGVhZHMgdG8gbW9yZSByZWFkYWJsZSBjb2RlIHRocm91Z2ggdGhl IGNhbGxzdGFjayBpZgp0aGUgYWxsb2NhdGlvbiByZXR1cm5zIHRoZSBhbGxvY2F0ZWQgc3RydWN0 IHRocm91Z2ggdGhlIHJldHVybiB2YWx1ZS4KClRoZSBpbXBvcnRhbmNlIG9mIHRoaXMgaXMgdGhh dCBpdCBubyBsb25nZXIgbG9va3MgbGlrZSB3ZSBhY2NpZGVudGFsbHkKYWxsb2NhdGUgcmVxdWVz dHMgYXMgc2lkZS1lZmZlY3Qgb2YgY2FsbGluZyBjZXJ0YWluIGZ1bmN0aW9ucy4KClNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA3NSArKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8 IDEyICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgICAgfCA1 OCArKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFj ZS5oICAgICAgICAgIHwgMTMgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgICAgICAgfCAzNiArKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuYyAgICAgICB8IDE5ICsrKystLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlv bnMoKyksIDE0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBmZTM5 Y2QyNTg0ZjMuLmIxZTAwYjQyYTgzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zMDY3 LDggKzMwNjcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3VucGluX21h cChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiBpbnQgX19tdXN0X2NoZWNrIGk5 MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50 IGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0J CQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqdG8sCi0JCQkgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICoqdG9fcmVxKTsKKwkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvKTsK IHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQkg ICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIGludCBpOTE1X2dlbV9kdW1i X2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CmluZGV4IDAzNGQ4MWM1NGQ2Ny4uZGUxZTg2NjI3NmM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKQEAgLTI1NTIsNTEgKzI1NTIsMzUgQEAgb3V0OgogCiBzdGF0aWMgaW50CiBfX2k5MTVfZ2Vt X29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCSAgICAgICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICp0bywKLQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqZnJvbV9yZXEsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg Kip0b19yZXEpCisJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvLAorCQkg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpmcm9tKQogewotCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmZyb207CiAJaW50IHJldDsKIAotCWZyb20gPSBmcm9tX3JlcS0+ZW5naW5l OwotCWlmICh0byA9PSBmcm9tKQorCWlmICh0by0+ZW5naW5lID09IGZyb20tPmVuZ2luZSkKIAkJ cmV0dXJuIDA7CiAKLQlpZiAoaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoZnJvbV9yZXEpKQor CWlmIChpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChmcm9tKSkKIAkJcmV0dXJuIDA7CiAKIAlp ZiAoIWk5MTUuc2VtYXBob3JlcykgewotCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IHRvX2k5MTUob2JqLT5iYXNlLmRldik7Ci0JCXJldCA9IF9faTkxNV93YWl0X3JlcXVlc3QoZnJv bV9yZXEsCi0JCQkJCSAgaTkxNS0+bW0uaW50ZXJydXB0aWJsZSwKKwkJcmV0ID0gX19pOTE1X3dh aXRfcmVxdWVzdChmcm9tLAorCQkJCQkgIGZyb20tPmk5MTUtPm1tLmludGVycnVwdGlibGUsCiAJ CQkJCSAgTlVMTCwKIAkJCQkJICBOT19XQUlUQk9PU1QpOwogCQlpZiAocmV0KQogCQkJcmV0dXJu IHJldDsKIAotCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX3JlcXVlc3Qob2JqLCBmcm9tX3JlcSk7 CisJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfcmVxdWVzdChvYmosIGZyb20pOwogCX0gZWxzZSB7 Ci0JCWludCBpZHggPSBpbnRlbF9lbmdpbmVfc3luY19pbmRleChmcm9tLCB0byk7Ci0JCXUzMiBz ZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKGZyb21fcmVxKTsKKwkJaW50IGlkeCA9 IGludGVsX2VuZ2luZV9zeW5jX2luZGV4KGZyb20tPmVuZ2luZSwgdG8tPmVuZ2luZSk7CisJCXUz MiBzZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKGZyb20pOwogCi0JCVdBUk5fT04o IXRvX3JlcSk7Ci0KLQkJaWYgKHNlcW5vIDw9IGZyb20tPnNlbWFwaG9yZS5zeW5jX3NlcW5vW2lk eF0pCisJCWlmIChzZXFubyA8PSBmcm9tLT5lbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vW2lk eF0pCiAJCQlyZXR1cm4gMDsKIAotCQlpZiAoKnRvX3JlcSA9PSBOVUxMKSB7Ci0JCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKLQotCQkJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9h bGxvYyh0bywgTlVMTCk7Ci0JCQlpZiAoSVNfRVJSKHJlcSkpCi0JCQkJcmV0dXJuIFBUUl9FUlIo cmVxKTsKLQotCQkJKnRvX3JlcSA9IHJlcTsKLQkJfQotCi0JCXRyYWNlX2k5MTVfZ2VtX3Jpbmdf c3luY190bygqdG9fcmVxLCBmcm9tLCBmcm9tX3JlcSk7Ci0JCXJldCA9IHRvLT5zZW1hcGhvcmUu c3luY190bygqdG9fcmVxLCBmcm9tLCBzZXFubyk7CisJCXRyYWNlX2k5MTVfZ2VtX3Jpbmdfc3lu Y190byh0bywgZnJvbSk7CisJCXJldCA9IHRvLT5lbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3RvKHRv LCBmcm9tLT5lbmdpbmUsIHNlcW5vKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKQEAg LTI2MDQsOCArMjU4OCw4IEBAIF9faTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJICogbWlnaHQgaGF2ZSBqdXN0IGNhdXNlZCBzZXFubyB3cmFw IHVuZGVyCiAJCSAqIHRoZSByYWRhci4KIAkJICovCi0JCWZyb20tPnNlbWFwaG9yZS5zeW5jX3Nl cW5vW2lkeF0gPQotCQkJaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2JqLT5sYXN0X3JlYWRf cmVxW2Zyb20tPmlkXSk7CisJCWZyb20tPmVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm9baWR4 XSA9CisJCQlpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxhc3RfcmVhZF9yZXFbZnJv bS0+ZW5naW5lLT5pZF0pOwogCX0KIAogCXJldHVybiAwOwpAQCAtMjYxNSwxNyArMjU5OSwxMiBA QCBfX2k5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAgKiBpOTE1X2dlbV9vYmplY3Rfc3luYyAtIHN5bmMgYW4gb2JqZWN0IHRvIGEgcmluZy4KICAq CiAgKiBAb2JqOiBvYmplY3Qgd2hpY2ggbWF5IGJlIGluIHVzZSBvbiBhbm90aGVyIHJpbmcuCi0g KiBAdG86IHJpbmcgd2Ugd2lzaCB0byB1c2UgdGhlIG9iamVjdCBvbi4gTWF5IGJlIE5VTEwuCi0g KiBAdG9fcmVxOiByZXF1ZXN0IHdlIHdpc2ggdG8gdXNlIHRoZSBvYmplY3QgZm9yLiBTZWUgYmVs b3cuCi0gKiAgICAgICAgICBUaGlzIHdpbGwgYmUgYWxsb2NhdGVkIGFuZCByZXR1cm5lZCBpZiBh IHJlcXVlc3QgaXMKLSAqICAgICAgICAgIHJlcXVpcmVkIGJ1dCBub3QgcGFzc2VkIGluLgorICog QHRvOiByZXF1ZXN0IHdlIGFyZSB3aXNoaW5nIHRvIHVzZQogICoKICAqIFRoaXMgY29kZSBpcyBt ZWFudCB0byBhYnN0cmFjdCBvYmplY3Qgc3luY2hyb25pemF0aW9uIHdpdGggdGhlIEdQVS4KLSAq IENhbGxpbmcgd2l0aCBOVUxMIGltcGxpZXMgc3luY2hyb25pemluZyB0aGUgb2JqZWN0IHdpdGgg dGhlIENQVQotICogcmF0aGVyIHRoYW4gYSBwYXJ0aWN1bGFyIEdQVSByaW5nLiBDb25jZXB0dWFs bHkgd2Ugc2VyaWFsaXNlIHdyaXRlcwotICogYmV0d2VlbiBlbmdpbmVzIGluc2lkZSB0aGUgR1BV LiBXZSBvbmx5IGFsbG93IG9uZSBlbmdpbmUgdG8gd3JpdGUKLSAqIGludG8gYSBidWZmZXIgYXQg YW55IHRpbWUsIGJ1dCBtdWx0aXBsZSByZWFkZXJzLiBUbyBlbnN1cmUgZWFjaCBoYXMKLSAqIGEg Y29oZXJlbnQgdmlldyBvZiBtZW1vcnksIHdlIG11c3Q6CisgKiBDb25jZXB0dWFsbHkgd2Ugc2Vy aWFsaXNlIHdyaXRlcyBiZXR3ZWVuIGVuZ2luZXMgaW5zaWRlIHRoZSBHUFUuCisgKiBXZSBvbmx5 IGFsbG93IG9uZSBlbmdpbmUgdG8gd3JpdGUgaW50byBhIGJ1ZmZlciBhdCBhbnkgdGltZSwgYnV0 CisgKiBtdWx0aXBsZSByZWFkZXJzLiBUbyBlbnN1cmUgZWFjaCBoYXMgYSBjb2hlcmVudCB2aWV3 IG9mIG1lbW9yeSwgd2UgbXVzdDoKICAqCiAgKiAtIElmIHRoZXJlIGlzIGFuIG91dHN0YW5kaW5n IHdyaXRlIHJlcXVlc3QgdG8gdGhlIG9iamVjdCwgdGhlIG5ldwogICogICByZXF1ZXN0IG11c3Qg d2FpdCBmb3IgaXQgdG8gY29tcGxldGUgKGVpdGhlciBDUFUgb3IgaW4gaHcsIHJlcXVlc3RzCkBA IC0yNjM0LDIyICsyNjEzLDExIEBAIF9faTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKICAqIC0gSWYgd2UgYXJlIGEgd3JpdGUgcmVxdWVzdCAocGVu ZGluZ193cml0ZV9kb21haW4gaXMgc2V0KSwgdGhlIG5ldwogICogICByZXF1ZXN0IG11c3Qgd2Fp dCBmb3Igb3V0c3RhbmRpbmcgcmVhZCByZXF1ZXN0cyB0byBjb21wbGV0ZS4KICAqCi0gKiBGb3Ig Q1BVIHN5bmNocm9uaXNhdGlvbiAoTlVMTCB0bykgbm8gcmVxdWVzdCBpcyByZXF1aXJlZC4gRm9y IHN5bmNpbmcgd2l0aAotICogcmluZ3MgdG9fcmVxIG11c3QgYmUgbm9uLU5VTEwuIEhvd2V2ZXIs IGEgcmVxdWVzdCBkb2VzIG5vdCBoYXZlIHRvIGJlCi0gKiBwcmUtYWxsb2NhdGVkLiBJZiAqdG9f cmVxIGlzIE5VTEwgYW5kIHN5bmMgY29tbWFuZHMgd2lsbCBiZSBlbWl0dGVkIHRoZW4gYQotICog cmVxdWVzdCB3aWxsIGJlIGFsbG9jYXRlZCBhdXRvbWF0aWNhbGx5IGFuZCByZXR1cm5lZCB0aHJv dWdoICp0b19yZXEuIE5vdGUKLSAqIHRoYXQgaXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdCBjb21t YW5kcyB3aWxsIGJlIGVtaXR0ZWQgKGJlY2F1c2UgdGhlIHN5c3RlbQotICogbWlnaHQgYWxyZWFk eSBiZSBpZGxlKS4gSGVuY2UgdGhlcmUgaXMgbm8gbmVlZCB0byBjcmVhdGUgYSByZXF1ZXN0IHRo YXQKLSAqIG1pZ2h0IG5ldmVyIGhhdmUgYW55IHdvcmsgc3VibWl0dGVkLiBOb3RlIGZ1cnRoZXIg dGhhdCBpZiBhIHJlcXVlc3QgaXMKLSAqIHJldHVybmVkIGluICp0b19yZXEsIGl0IGlzIHRoZSBy ZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIHN1Ym1pdAotICogdGhhdCByZXF1ZXN0IChh ZnRlciBwb3RlbnRpYWxseSBhZGRpbmcgbW9yZSB3b3JrIHRvIGl0KS4KLSAqCiAgKiBSZXR1cm5z IDAgaWYgc3VjY2Vzc2Z1bCwgZWxzZSBwcm9wYWdhdGVzIHVwIHRoZSBsb3dlciBsYXllciBlcnJv ci4KICAqLwogaW50CiBpOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAotCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnRvLAotCQkgICAgIHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqKnRvX3JlcSkKKwkJICAgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnRvKQogewogCWNvbnN0IGJvb2wgcmVhZG9ubHkgPSBvYmotPmJhc2Uu cGVuZGluZ193cml0ZV9kb21haW4gPT0gMDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcVtJOTE1X05VTV9FTkdJTkVTXTsKQEAgLTI2NTgsOSArMjYyNiw2IEBAIGk5MTVfZ2VtX29i amVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaWYgKCFvYmotPmFj dGl2ZSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAodG8gPT0gTlVMTCkKLQkJcmV0dXJuIGk5MTVfZ2Vt X29iamVjdF93YWl0X3JlbmRlcmluZyhvYmosIHJlYWRvbmx5KTsKLQogCW4gPSAwOwogCWlmIChy ZWFkb25seSkgewogCQlpZiAob2JqLT5sYXN0X3dyaXRlX3JlcSkKQEAgLTI2NzEsNyArMjYzNiw3 IEBAIGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJCQkJcmVxW24rK10gPSBvYmotPmxhc3RfcmVhZF9yZXFbaV07CiAJfQogCWZvciAoaSA9IDA7 IGkgPCBuOyBpKyspIHsKLQkJcmV0ID0gX19pOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHRvLCBy ZXFbaV0sIHRvX3JlcSk7CisJCXJldCA9IF9faTkxNV9nZW1fb2JqZWN0X3N5bmMob2JqLCB0bywg cmVxW2ldKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDZlNDM5ZjVkMTY3NC4uODc1MWEyMWNi NjJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC05 NTEsNyArOTUxLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2dwdShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiA9IHZtYS0+b2JqOwogCiAJCWlmIChvYmotPmFjdGl2ZSAmIG90aGVyX3JpbmdzKSB7Ci0JCQly ZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmosIHJlcS0+ZW5naW5lLCAmcmVxKTsKKwkJCXJl dCA9IGk5MTVfZ2VtX29iamVjdF9zeW5jKG9iaiwgcmVxKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0 dXJuIHJldDsKIAkJfQpAQCAtMTQxMyw3ICsxNDEzLDYgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZl cihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0ID0gJmRldl9wcml2LT5nZ3R0OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx ID0gTlVMTDsKIAlzdHJ1Y3QgZWJfdm1hcyAqZWI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKmJhdGNoX29iajsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBzaGFkb3df ZXhlY19lbnRyeTsKQEAgLTE2MDEsMTMgKzE2MDAsMTMgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZl cihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlwYXJhbXMtPmJhdGNoX29i al92bV9vZmZzZXQgPSBpOTE1X2dlbV9vYmpfb2Zmc2V0KGJhdGNoX29iaiwgdm0pOwogCiAJLyog QWxsb2NhdGUgYSByZXF1ZXN0IGZvciB0aGlzIGJhdGNoIGJ1ZmZlciBuaWNlIGFuZCBlYXJseS4g Ki8KLQlyZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4KTsKLQlpZiAoSVNf RVJSKHJlcSkpIHsKLQkJcmV0ID0gUFRSX0VSUihyZXEpOworCXBhcmFtcy0+cmVxdWVzdCA9IGk5 MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBjdHgpOworCWlmIChJU19FUlIocGFyYW1zLT5y ZXF1ZXN0KSkgeworCQlyZXQgPSBQVFJfRVJSKHBhcmFtcy0+cmVxdWVzdCk7CiAJCWdvdG8gZXJy X2JhdGNoX3VucGluOwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3RvX2NsaWVu dChyZXEsIGZpbGUpOworCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3RvX2NsaWVudChwYXJh bXMtPnJlcXVlc3QsIGZpbGUpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX3JlcXVlc3Q7CiAKQEAg LTE2MjMsNyArMTYyMiw2IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAlwYXJhbXMtPmRpc3BhdGNoX2ZsYWdzICAgICAgICAgID0g ZGlzcGF0Y2hfZmxhZ3M7CiAJcGFyYW1zLT5iYXRjaF9vYmogICAgICAgICAgICAgICA9IGJhdGNo X29iajsKIAlwYXJhbXMtPmN0eCAgICAgICAgICAgICAgICAgICAgID0gY3R4OwotCXBhcmFtcy0+ cmVxdWVzdCAgICAgICAgICAgICAgICAgPSByZXE7CiAKIAlyZXQgPSBkZXZfcHJpdi0+Z3QuZXhl Y2J1Zl9zdWJtaXQocGFyYW1zLCBhcmdzLCAmZWItPnZtYXMpOwogZXJyX3JlcXVlc3Q6CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKaW5kZXggYjBjNmU1NzE5N2JiLi4wNmY3 MjRlZTIzZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKQEAgLTIw MSwxMCArMjAxLDIxIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fZ2V0X3NlcW5vKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyICpzZXFubykKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGlubGluZSBpbnQKLV9faTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCi0JCQkgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKLQkJCSBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipyZXFfb3V0KQorLyoqCisgKiBpOTE1X2dlbV9y ZXF1ZXN0X2FsbG9jIC0gYWxsb2NhdGUgYSByZXF1ZXN0IHN0cnVjdHVyZQorICoKKyAqIEBlbmdp bmU6IGVuZ2luZSB0aGF0IHdlIHdpc2ggdG8gaXNzdWUgdGhlIHJlcXVlc3Qgb24uCisgKiBAY3R4 OiBjb250ZXh0IHRoYXQgdGhlIHJlcXVlc3Qgd2lsbCBiZSBhc3NvY2lhdGVkIHdpdGguCisgKiAg ICAgICBUaGlzIGNhbiBiZSBOVUxMIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBkaXJlY3RseSByZWxh dGVkIHRvCisgKiAgICAgICBhbnkgc3BlY2lmaWMgdXNlciBjb250ZXh0LCBpbiB3aGljaCBjYXNl IHRoaXMgZnVuY3Rpb24gd2lsbAorICogICAgICAgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIGNvbnRl eHQgdG8gdXNlLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgcmVx dWVzdCBpZiBzdWNjZXNzZnVsLAorICogb3IgYW4gZXJyb3IgY29kZSBpZiBub3QuCisgKi8KK3N0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCitpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5l LT5pOTE1OwogCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRl dl9wcml2LT5ncHVfZXJyb3IpOwpAQCAtMjEyLDIyICsyMjMsMTcgQEAgX19pOTE1X2dlbV9yZXF1 ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAl1MzIgc2Vxbm87CiAJ aW50IHJldDsKIAotCWlmICghcmVxX291dCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQkqcmVxX291 dCA9IE5VTEw7Ci0KIAkvKiBBQkk6IEJlZm9yZSB1c2Vyc3BhY2UgYWNjZXNzZXMgdGhlIEdQVSAo ZS5nLiBleGVjYnVmZmVyKSwgcmVwb3J0CiAJICogRUlPIGlmIHRoZSBHUFUgaXMgYWxyZWFkeSB3 ZWRnZWQsIG9yIEVBR0FJTiB0byBkcm9wIHRoZSBzdHJ1Y3RfbXV0ZXgKIAkgKiBhbmQgcmVzdGFy dC4KIAkgKi8KIAlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZShyZXNldF9jb3VudGVyLCBkZXZf cHJpdi0+bW0uaW50ZXJydXB0aWJsZSk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJcmV0 dXJuIEVSUl9QVFIocmV0KTsKIAogCXJlcSA9IGttZW1fY2FjaGVfemFsbG9jKGRldl9wcml2LT5y ZXF1ZXN0cywgR0ZQX0tFUk5FTCk7CiAJaWYgKHJlcSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01F TTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlyZXQgPSBpOTE1X2dlbV9nZXRfc2Vx bm8oZGV2X3ByaXYsICZzZXFubyk7CiAJaWYgKHJldCkKQEAgLTI2MSwzOSArMjY3LDEzIEBAIF9f aTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJ aWYgKHJldCkKIAkJZ290byBlcnJfY3R4OwogCi0JKnJlcV9vdXQgPSByZXE7Ci0JcmV0dXJuIDA7 CisJcmV0dXJuIHJlcTsKIAogZXJyX2N0eDoKIAlpOTE1X2dlbV9jb250ZXh0X3B1dChjdHgpOwog ZXJyOgogCWttZW1fY2FjaGVfZnJlZShkZXZfcHJpdi0+cmVxdWVzdHMsIHJlcSk7Ci0JcmV0dXJu IHJldDsKLX0KLQotLyoqCi0gKiBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jIC0gYWxsb2NhdGUgYSBy ZXF1ZXN0IHN0cnVjdHVyZQotICoKLSAqIEBlbmdpbmU6IGVuZ2luZSB0aGF0IHdlIHdpc2ggdG8g aXNzdWUgdGhlIHJlcXVlc3Qgb24uCi0gKiBAY3R4OiBjb250ZXh0IHRoYXQgdGhlIHJlcXVlc3Qg d2lsbCBiZSBhc3NvY2lhdGVkIHdpdGguCi0gKiAgICAgICBUaGlzIGNhbiBiZSBOVUxMIGlmIHRo ZSByZXF1ZXN0IGlzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvCi0gKiAgICAgICBhbnkgc3BlY2lm aWMgdXNlciBjb250ZXh0LCBpbiB3aGljaCBjYXNlIHRoaXMgZnVuY3Rpb24gd2lsbAotICogICAg ICAgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIGNvbnRleHQgdG8gdXNlLgotICoKLSAqIFJldHVybnMg YSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgcmVxdWVzdCBpZiBzdWNjZXNzZnVsLAotICogb3Ig YW4gZXJyb3IgY29kZSBpZiBub3QuCi0gKi8KLXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq Ci1pOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK LQkJICAgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCi17Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXE7Ci0JaW50IGVycjsKLQotCWlmIChjdHggPT0gTlVMTCkKLQkJ Y3R4ID0gZW5naW5lLT5pOTE1LT5rZXJuZWxfY29udGV4dDsKLQllcnIgPSBfX2k5MTVfZ2VtX3Jl cXVlc3RfYWxsb2MoZW5naW5lLCBjdHgsICZyZXEpOwotCXJldHVybiBlcnIgPyBFUlJfUFRSKGVy cikgOiByZXE7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KIAogaW50IGk5MTVfZ2VtX3JlcXVl c3RfYWRkX3RvX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdHJhY2UuaAppbmRleCAwMjk2YTc3YjU4NmEuLmU3YjNlNmU0ZjRhNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaApAQCAtNDQ5LDEwICs0NDksOSBAQCBUUkFDRV9FVkVO VChpOTE1X2dlbV9ldmljdF92bSwKICk7CiAKIFRSQUNFX0VWRU5UKGk5MTVfZ2VtX3Jpbmdfc3lu Y190bywKLQkgICAgVFBfUFJPVE8oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp0b19yZXEs Ci0JCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZnJvbSwKLQkJICAgICBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSksCi0JICAgIFRQX0FSR1ModG9fcmVxLCBmcm9tLCByZXEp LAorCSAgICBUUF9QUk9UTyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnRvLAorCQkgICAg IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqZnJvbSksCisJICAgIFRQX0FSR1ModG8sIGZy b20pLAogCiAJICAgIFRQX1NUUlVDVF9fZW50cnkoCiAJCQkgICAgIF9fZmllbGQodTMyLCBkZXYp CkBAIC00NjMsOSArNDYyLDkgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmluZ19zeW5jX3RvLAog CiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgX19lbnRyeS0+ZGV2ID0gZnJvbS0+aTkxNS0+ ZGV2LT5wcmltYXJ5LT5pbmRleDsKLQkJCSAgIF9fZW50cnktPnN5bmNfZnJvbSA9IGZyb20tPmlk OwotCQkJICAgX19lbnRyeS0+c3luY190byA9IHRvX3JlcS0+ZW5naW5lLT5pZDsKLQkJCSAgIF9f ZW50cnktPnNlcW5vID0gcmVxLT5mZW5jZS5zZXFubzsKKwkJCSAgIF9fZW50cnktPnN5bmNfZnJv bSA9IGZyb20tPmVuZ2luZS0+aWQ7CisJCQkgICBfX2VudHJ5LT5zeW5jX3RvID0gdG8tPmVuZ2lu ZS0+aWQ7CisJCQkgICBfX2VudHJ5LT5zZXFubyA9IGZyb20tPmZlbmNlLnNlcW5vOwogCQkJICAg KSwKIAogCSAgICBUUF9wcmludGsoImRldj0ldSwgc3luYy1mcm9tPSV1LCBzeW5jLXRvPSV1LCBz ZXFubz0ldSIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNjNjZmQzMThi Y2QzLi4xNzVhNTUzZGM2YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAg LTExNjMxLDcgKzExNjMxLDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0IGludGVsX2ZsaXBfd29yayAqd29yazsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJYm9vbCBtbWlvX2ZsaXA7Ci0Jc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0ID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3Q7CiAJaW50IHJldDsKIAogCS8qCkBAIC0xMTczNiwyMiArMTE3MzYs NiBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAogCW1taW9fZmxpcCA9IHVzZV9tbWlvX2ZsaXAoZW5naW5lLCBvYmopOwogCi0JLyogV2hl biB1c2luZyBDUyBmbGlwcywgd2Ugd2FudCB0byBlbWl0IHNlbWFwaG9yZXMgYmV0d2VlbiByaW5n cy4KLQkgKiBIb3dldmVyLCB3aGVuIHVzaW5nIG1taW8gZmxpcHMgd2Ugd2lsbCBjcmVhdGUgYSB0 YXNrIHRvIGRvIHRoZQotCSAqIHN5bmNocm9uaXNhdGlvbiwgc28gYWxsIHdlIHdhbnQgaGVyZSBp cyB0byBwaW4gdGhlIGZyYW1lYnVmZmVyCi0JICogaW50byB0aGUgZGlzcGxheSBwbGFuZSBhbmQg c2tpcCBhbnkgd2FpdHMuCi0JICovCi0JaWYgKCFtbWlvX2ZsaXApIHsKLQkJcmV0ID0gaTkxNV9n ZW1fb2JqZWN0X3N5bmMob2JqLCBlbmdpbmUsICZyZXF1ZXN0KTsKLQkJaWYgKCFyZXQgJiYgIXJl cXVlc3QpIHsKLQkJCXJlcXVlc3QgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgTlVM TCk7Ci0JCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8ocmVxdWVzdCk7Ci0JCX0KLQotCQlpZiAocmV0 KQotCQkJZ290byBjbGVhbnVwX3BlbmRpbmc7Ci0JfQotCiAJcmV0ID0gaW50ZWxfcGluX2FuZF9m ZW5jZV9mYl9vYmooZmIsIHByaW1hcnktPnN0YXRlLT5yb3RhdGlvbik7CiAJaWYgKHJldCkKIAkJ Z290byBjbGVhbnVwX3BlbmRpbmc7CkBAIC0xMTc2OSwxNCArMTE3NTMsMjQgQEAgc3RhdGljIGlu dCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAkJc2NoZWR1 bGVfd29yaygmd29yay0+bW1pb193b3JrKTsKIAl9IGVsc2UgewotCQlpOTE1X2dlbV9yZXF1ZXN0 X2Fzc2lnbigmd29yay0+ZmxpcF9xdWV1ZWRfcmVxLCByZXF1ZXN0KTsKKwkJcmVxdWVzdCA9IGk5 MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBlbmdpbmUtPmxhc3RfY29udGV4dCk7CisJCWlm IChJU19FUlIocmVxdWVzdCkpIHsKKwkJCXJldCA9IFBUUl9FUlIocmVxdWVzdCk7CisJCQlnb3Rv IGNsZWFudXBfdW5waW47CisJCX0KKworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhvYmos IHJlcXVlc3QpOworCQlpZiAocmV0KQorCQkJZ290byBjbGVhbnVwX3JlcXVlc3Q7CisKIAkJcmV0 ID0gZGV2X3ByaXYtPmRpc3BsYXkucXVldWVfZmxpcChkZXYsIGNydGMsIGZiLCBvYmosIHJlcXVl c3QsCiAJCQkJCQkgICBwYWdlX2ZsaXBfZmxhZ3MpOwogCQlpZiAocmV0KQotCQkJZ290byBjbGVh bnVwX3VucGluOworCQkJZ290byBjbGVhbnVwX3JlcXVlc3Q7CiAKIAkJaW50ZWxfbWFya19wYWdl X2ZsaXBfYWN0aXZlKGludGVsX2NydGMsIHdvcmspOwogCisJCXdvcmstPmZsaXBfcXVldWVkX3Jl cSA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0KHJlcXVlc3QpOwogCQlpOTE1X2FkZF9yZXF1ZXN0X25v X2ZsdXNoKHJlcXVlc3QpOwogCX0KIApAQCAtMTE3OTEsMTEgKzExNzg1LDExIEBAIHN0YXRpYyBp bnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJcmV0dXJu IDA7CiAKK2NsZWFudXBfcmVxdWVzdDoKKwlpOTE1X2FkZF9yZXF1ZXN0X25vX2ZsdXNoKHJlcXVl c3QpOwogY2xlYW51cF91bnBpbjoKIAlpbnRlbF91bnBpbl9mYl9vYmooZmIsIGNydGMtPnByaW1h cnktPnN0YXRlLT5yb3RhdGlvbik7CiBjbGVhbnVwX3BlbmRpbmc6Ci0JaWYgKCFJU19FUlJfT1Jf TlVMTChyZXF1ZXN0KSkKLQkJaTkxNV9hZGRfcmVxdWVzdF9ub19mbHVzaChyZXF1ZXN0KTsKIAlh dG9taWNfZGVjKCZpbnRlbF9jcnRjLT51bnBpbl93b3JrX2NvdW50KTsKIAltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKIGNsZWFudXA6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmlu ZGV4IDU1ZDUyOWU1NjE0ZC4uM2ZhMmJjNTI5N2MxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwpAQCAtNjMzLDcgKzYzMyw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX21vdmVfdG9fZ3B1KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqID0gdm1hLT5vYmo7CiAKIAkJaWYgKG9iai0+YWN0aXZlICYgb3RoZXJfcmluZ3Mp IHsKLQkJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zeW5jKG9iaiwgcmVxLT5lbmdpbmUsICZyZXEp OworCQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3N5bmMob2JqLCByZXEpOwogCQkJaWYgKHJldCkK IAkJCQlyZXR1cm4gcmV0OwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKaW5k ZXggZmU5ZGE2MGQ4MDZlLi41ZjY0NWFkMmJhYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9v dmVybGF5LmMKQEAgLTIyOSwxMSArMjI5LDE3IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9k b193YWl0X3JlcXVlc3Qoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJcmV0dXJuIDA7 CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmFsbG9jX3JlcXVlc3Qo c3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gb3ZlcmxheS0+aTkxNTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdOworCXJldHVybiBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKGVuZ2luZSwgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0KTsKK30KKwogLyogb3Zlcmxh eSBuZWVkcyB0byBiZSBkaXNhYmxlIGluIE9DTUQgcmVnICovCiBzdGF0aWMgaW50IGludGVsX292 ZXJsYXlfb24oc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb3ZlcmxheS0+aTkxNTsKLQlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdOwogCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxOwogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwogCWludCByZXQ7 CkBAIC0yNDEsNyArMjQ3LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29uKHN0cnVjdCBp bnRlbF9vdmVybGF5ICpvdmVybGF5KQogCVdBUk5fT04ob3ZlcmxheS0+YWN0aXZlKTsKIAlXQVJO X09OKElTX0k4MzAoZGV2X3ByaXYpICYmICEoZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJLX1BJUEVB X0ZPUkNFKSk7CiAKLQlyZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgTlVMTCk7 CisJcmVxID0gYWxsb2NfcmVxdWVzdChvdmVybGF5KTsKIAlpZiAoSVNfRVJSKHJlcSkpCiAJCXJl dHVybiBQVFJfRVJSKHJlcSk7CiAKQEAgLTI2OCw3ICsyNzQsNiBAQCBzdGF0aWMgaW50IGludGVs X292ZXJsYXlfY29udGludWUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJCQkJICBi b29sIGxvYWRfcG9seXBoYXNlX2ZpbHRlcikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBvdmVybGF5LT5pOTE1OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXE7CiAJc3RydWN0IGludGVsX3JpbmcgKnJpbmc7CiAJdTMyIGZsaXBfYWRkciA9IG92ZXJs YXktPmZsaXBfYWRkcjsKQEAgLTI4NSw3ICsyOTAsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJs YXlfY29udGludWUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiAJaWYgKHRtcCAmICgx IDw8IDE3KSkKIAkJRFJNX0RFQlVHKCJvdmVybGF5IHVuZGVycnVuLCBET1ZTVEE6ICV4XG4iLCB0 bXApOwogCi0JcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhlbmdpbmUsIE5VTEwpOworCXJl cSA9IGFsbG9jX3JlcXVlc3Qob3ZlcmxheSk7CiAJaWYgKElTX0VSUihyZXEpKQogCQlyZXR1cm4g UFRSX0VSUihyZXEpOwogCkBAIC0zMzgsNyArMzQzLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfb3Zl cmxheV9vZmZfdGFpbChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIHN0YXRpYyBpbnQg aW50ZWxfb3ZlcmxheV9vZmYoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb3ZlcmxheS0+aTkxNTsKLQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1NdOwogCXN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwog CXUzMiBmbGlwX2FkZHIgPSBvdmVybGF5LT5mbGlwX2FkZHI7CkBAIC0zNTIsNyArMzU2LDcgQEAg c3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zlcmxh eSkKIAkgKiBvZiB0aGUgaHcuIERvIGl0IGluIGJvdGggY2FzZXMgKi8KIAlmbGlwX2FkZHIgfD0g T0ZDX1VQREFURTsKIAotCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBOVUxM KTsKKwlyZXEgPSBhbGxvY19yZXF1ZXN0KG92ZXJsYXkpOwogCWlmIChJU19FUlIocmVxKSkKIAkJ cmV0dXJuIFBUUl9FUlIocmVxKTsKIApAQCAtNDEyLDcgKzQxNiw2IEBAIHN0YXRpYyBpbnQgaW50 ZWxfb3ZlcmxheV9yZWNvdmVyX2Zyb21faW50ZXJydXB0KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpv dmVybGF5KQogc3RhdGljIGludCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZChzdHJ1Y3Qg aW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBvdmVybGF5LT5pOTE1OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107CiAJaW50IHJldDsKIAogCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmRldl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7CkBAIC00MjgsNyArNDMxLDcgQEAgc3Rh dGljIGludCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZChzdHJ1Y3QgaW50ZWxfb3Zlcmxh eSAqb3ZlcmxheSkKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAJCXN0cnVj dCBpbnRlbF9yaW5nICpyaW5nOwogCi0JCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5n aW5lLCBOVUxMKTsKKwkJcmVxID0gYWxsb2NfcmVxdWVzdChvdmVybGF5KTsKIAkJaWYgKElTX0VS UihyZXEpKQogCQkJcmV0dXJuIFBUUl9FUlIocmVxKTsKIAotLSAKMi44LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=