From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH v3 1/3] drm/i915: simplify allocation of driver-internal requests Date: Thu, 7 Jan 2016 10:20:50 +0000 Message-ID: <1452162052-22573-2-git-send-email-david.s.gordon@intel.com> References: <1452162052-22573-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 5055C6E667 for ; Thu, 7 Jan 2016 02:20:59 -0800 (PST) In-Reply-To: <1452162052-22573-1-git-send-email-david.s.gordon@intel.com> 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 VGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZSB0aGUgZHJpdmVyIG5lZWRzIGEgcmVx dWVzdCwgYnV0IGlzbid0Cndvcmtpbmcgb24gYmVoYWxmIG9mIGFueSBzcGVjaWZpYyB1c2VyIG9y IGluIGEgc3BlY2lmaWMgY29udGV4dC4gQXQKcHJlc2VudCwgd2UgYXNzb2NpYXRlIHRoZW0gd2l0 aCB0aGUgcGVyLWVuZ2luZSBkZWZhdWx0IGNvbnRleHQuIEEgZnV0dXJlCnBhdGNoIHdpbGwgYWJv bGlzaCB0aG9zZSBwZXItZW5naW5lIGNvbnRleHQgcG9pbnRlcnM7IGJ1dCB3ZSBjYW4gYWxyZWFk eQplbGltaW5hdGUgYSBsb3Qgb2YgdGhlIHJlZmVyZW5jZXMgdG8gdGhlbSwganVzdCBieSBtYWtp bmcgdGhlIGFsbG9jYXRvcgphbGxvdyBOVUxMIGFzIGEgc2hvcnRoYW5kIGZvciAiYW4gYXBwcm9w cmlhdGUgY29udGV4dCBmb3IgdGhpcyByaW5nIiwKd2hpY2ggd2lsbCBtZWFuIHRoYXQgdGhlIGNh bGxlcnMgZG9uJ3QgbmVlZCB0byBrbm93IGFueXRoaW5nIGFib3V0IGhvdwp0aGUgImFwcHJvcHJp YXRlIGNvbnRleHQiIGlzIGZvdW5kIChlLmcuIHBlci1yaW5nIHZzIHBlci1kZXZpY2UsIGV0Yyku CgpTbyB0aGlzIHBhdGNoIHJlbmFtZXMgdGhlIGV4aXN0aW5nIGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2MoKSwgYW5kIG1ha2VzCml0IGxvY2FsIChzdGF0aWMgaW5saW5lKSwgYW5kIHJlcGxhY2VzIGl0 IHdpdGggYSB3cmFwcGVyIHRoYXQgcHJvdmlkZXMKYSBkZWZhdWx0IGlmIHRoZSBjb250ZXh0IGlz IE5VTEwsIGFuZCBhbHNvIGhhcyBhIG5pY2VyIGNhbGxpbmcKY29udmVudGlvbiAoZG9lc24ndCBy ZXF1aXJlIGEgcG9pbnRlciB0byBhbiBvdXRwdXQgcGFyYW1ldGVyKS4gVGhlbiB3ZQpjaGFuZ2Ug YWxsIGNhbGxlcnMgdG8gdXNlIHRoZSBuZXcgY29udmVudGlvbjoKT0xEOgoJZXJyID0gaTkxNV9n ZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCB1c2VyX2N0eCwgJnJlcSk7CglpZiAoZXJyKSAuLi4KTkVX OgoJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCB1c2VyX2N0eCk7CglpZiAoSVNf RVJSKHJlcSkpIC4uLgpPTEQ6CgllcnIgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIHJp bmctPmRlZmF1bHRfY29udGV4dCwgJnJlcSk7CglpZiAoZXJyKSAuLi4KTkVXOgoJcmVxID0gaTkx NV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCBOVUxMKTsKCWlmIChJU19FUlIocmVxKSkgLi4uCgpT aWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICA2ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDU1ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1 ZmZlci5jIHwgMTQgKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyAgICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAg ICAgICB8ICA5ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgICAg ICAgfCAyNCArKysrKystLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyks IDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGM2ZGQ0ZGIuLmMy YjAwMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjI2MCw5ICsyMjYwLDkgQEAgc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKIAogfTsKIAotaW50IGk5MTVfZ2VtX3JlcXVlc3Rf YWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKLQkJCSAgIHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgsCi0JCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipyZXFfb3V0 KTsKK3N0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqIF9fbXVzdF9jaGVjaworaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCisJCSAgICAgICBz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogdm9pZCBpOTE1X2dlbV9yZXF1ZXN0 X2ZyZWUoc3RydWN0IGtyZWYgKnJlcV9yZWYpOwogaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWRkX3Rv X2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCmluZGV4IDZjNjBlMDQuLmM5MDhlZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpA QCAtMjY4OCw5ICsyNjg4LDEwIEBAIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9mcmVlKHN0cnVjdCBr cmVmICpyZXFfcmVmKQogCWttZW1fY2FjaGVfZnJlZShyZXEtPmk5MTUtPnJlcXVlc3RzLCByZXEp OwogfQogCi1pbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLAotCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKLQkJCSAgIHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqKnJlcV9vdXQpCitzdGF0aWMgaW5saW5lIGludAorX19pOTE1 X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCisJCQkgc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKKwkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KipyZXFfb3V0KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUocmluZy0+ZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKQEAgLTI3 NTMsNiArMjc1NCwzMSBAQCBlcnI6CiAJcmV0dXJuIHJldDsKIH0KIAorLyoqCisgKiBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jIC0gYWxsb2NhdGUgYSByZXF1ZXN0IHN0cnVjdHVyZQorICoKKyAqIEBl bmdpbmU6IGVuZ2luZSB0aGF0IHdlIHdpc2ggdG8gaXNzdWUgdGhlIHJlcXVlc3Qgb24uCisgKiBA Y3R4OiBjb250ZXh0IHRoYXQgdGhlIHJlcXVlc3Qgd2lsbCBiZSBhc3NvY2lhdGVkIHdpdGguCisg KiAgICAgICBUaGlzIGNhbiBiZSBOVUxMIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBkaXJlY3RseSBy ZWxhdGVkIHRvCisgKiAgICAgICBhbnkgc3BlY2lmaWMgdXNlciBjb250ZXh0LCBpbiB3aGljaCBj YXNlIHRoaXMgZnVuY3Rpb24gd2lsbAorICogICAgICAgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIGNv bnRleHQgdG8gdXNlLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQg cmVxdWVzdCBpZiBzdWNjZXNzZnVsLAorICogb3IgYW4gZXJyb3IgY29kZSBpZiBub3QuCisgKi8K K3N0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCitpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKKwkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CisJaW50IGVy cjsKKworCWlmIChjdHggPT0gTlVMTCkKKwkJY3R4ID0gZW5naW5lLT5kZWZhdWx0X2NvbnRleHQ7 CisJZXJyID0gX19pOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4LCAmcmVxKTsKKwly ZXR1cm4gZXJyID8gRVJSX1BUUihlcnIpIDogcmVxOworfQorCiB2b2lkIGk5MTVfZ2VtX3JlcXVl c3RfY2FuY2VsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCWludGVsX3Jp bmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJlcS0+cmluZ2J1Zik7CkBAIC0zMTcwLDkgKzMxOTYs MTMgQEAgX19pOTE1X2dlbV9vYmplY3Rfc3luYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCQkJcmV0dXJuIDA7CiAKIAkJaWYgKCp0b19yZXEgPT0gTlVMTCkgewotCQkJcmV0ID0g aTkxNV9nZW1fcmVxdWVzdF9hbGxvYyh0bywgdG8tPmRlZmF1bHRfY29udGV4dCwgdG9fcmVxKTsK LQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxOworCisJCQlyZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHRvLCBOVUxMKTsK KwkJCWlmIChJU19FUlIocmVxKSkKKwkJCQlyZXR1cm4gUFRSX0VSUihyZXEpOworCisJCQkqdG9f cmVxID0gcmVxOwogCQl9CiAKIAkJdHJhY2VfaTkxNV9nZW1fcmluZ19zeW5jX3RvKCp0b19yZXEs IGZyb20sIGZyb21fcmVxKTsKQEAgLTMzNzIsOSArMzQwMiw5IEBAIGludCBpOTE1X2dwdV9pZGxl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7 CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCQkJcmV0ID0gaTkxNV9n ZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCByaW5nLT5kZWZhdWx0X2NvbnRleHQsICZyZXEpOwotCQkJ aWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0OworCQkJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxv YyhyaW5nLCBOVUxMKTsKKwkJCWlmIChJU19FUlIocmVxKSkKKwkJCQlyZXR1cm4gUFRSX0VSUihy ZXEpOwogCiAJCQlyZXQgPSBpOTE1X3N3aXRjaF9jb250ZXh0KHJlcSk7CiAJCQlpZiAocmV0KSB7 CkBAIC00ODY5LDEwICs0ODk5LDkgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKIAkJc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJV0FSTl9PTighcmluZy0+ZGVmYXVsdF9jb250 ZXh0KTsKLQotCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIHJpbmctPmRlZmF1 bHRfY29udGV4dCwgJnJlcSk7Ci0JCWlmIChyZXQpIHsKKwkJcmVxID0gaTkxNV9nZW1fcmVxdWVz dF9hbGxvYyhyaW5nLCBOVUxMKTsKKwkJaWYgKElTX0VSUihyZXEpKSB7CisJCQlyZXQgPSBQVFJf RVJSKHJlcSk7CiAJCQlpOTE1X2dlbV9jbGVhbnVwX3JpbmdidWZmZXIoZGV2KTsKIAkJCWdvdG8g b3V0OwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5k ZXggZGNjYjUxNy4uZGM2Y2FlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYwpAQCAtMTM4MSw2ICsxMzgxLDcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkgICAgICAgc3RydWN0IGRybV9p OTE1X2dlbV9leGVjX29iamVjdDIgKmV4ZWMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSA9IE5VTEw7CiAJc3RydWN0IGViX3ZtYXMgKmViOwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpiYXRjaF9vYmo7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIg c2hhZG93X2V4ZWNfZW50cnk7CkBAIC0xNjAyLDExICsxNjAzLDEzIEBAIGk5MTVfZ2VtX2RvX2V4 ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcGFyYW1zLT5i YXRjaF9vYmpfdm1fb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX29mZnNldChiYXRjaF9vYmosIHZtKTsK IAogCS8qIEFsbG9jYXRlIGEgcmVxdWVzdCBmb3IgdGhpcyBiYXRjaCBidWZmZXIgbmljZSBhbmQg ZWFybHkuICovCi0JcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCBjdHgsICZwYXJh bXMtPnJlcXVlc3QpOwotCWlmIChyZXQpCisJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhy aW5nLCBjdHgpOworCWlmIChJU19FUlIocmVxKSkgeworCQlyZXQgPSBQVFJfRVJSKHJlcSk7CiAJ CWdvdG8gZXJyX2JhdGNoX3VucGluOworCX0KIAotCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWRk X3RvX2NsaWVudChwYXJhbXMtPnJlcXVlc3QsIGZpbGUpOworCXJldCA9IGk5MTVfZ2VtX3JlcXVl c3RfYWRkX3RvX2NsaWVudChyZXEsIGZpbGUpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX2JhdGNo X3VucGluOwogCkBAIC0xNjIyLDYgKzE2MjUsNyBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcGFyYW1zLT5kaXNwYXRjaF9mbGFn cyAgICAgICAgICA9IGRpc3BhdGNoX2ZsYWdzOwogCXBhcmFtcy0+YmF0Y2hfb2JqICAgICAgICAg ICAgICAgPSBiYXRjaF9vYmo7CiAJcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0 eDsKKwlwYXJhbXMtPnJlcXVlc3QgICAgICAgICAgICAgICAgID0gcmVxOwogCiAJcmV0ID0gZGV2 X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0KHBhcmFtcywgYXJncywgJmViLT52bWFzKTsKIApAQCAt MTY0NSw4ICsxNjQ5LDggQEAgZXJyOgogCSAqIG11c3QgYmUgZnJlZWQgYWdhaW4uIElmIGl0IHdh cyBzdWJtaXR0ZWQgdGhlbiBpdCBpcyBiZWluZyB0cmFja2VkCiAJICogb24gdGhlIGFjdGl2ZSBy ZXF1ZXN0IGxpc3QgYW5kIG5vIGNsZWFuIHVwIGlzIHJlcXVpcmVkIGhlcmUuCiAJICovCi0JaWYg KHJldCAmJiBwYXJhbXMtPnJlcXVlc3QpCi0JCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHBhcmFt cy0+cmVxdWVzdCk7CisJaWYgKHJldCAmJiByZXEpCisJCWk5MTVfZ2VtX3JlcXVlc3RfY2FuY2Vs KHJlcSk7CiAKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGVkOWFiNjAuLjFmOGY3ODEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExNzAwLDkgKzExNzAwLDExIEBAIHN0YXRpYyBp bnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCQlvYmot Pmxhc3Rfd3JpdGVfcmVxKTsKIAl9IGVsc2UgewogCQlpZiAoIXJlcXVlc3QpIHsKLQkJCXJldCA9 IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MocmluZywgcmluZy0+ZGVmYXVsdF9jb250ZXh0LCAmcmVx dWVzdCk7Ci0JCQlpZiAocmV0KQorCQkJcmVxdWVzdCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo cmluZywgTlVMTCk7CisJCQlpZiAoSVNfRVJSKHJlcXVlc3QpKSB7CisJCQkJcmV0ID0gUFRSX0VS UihyZXF1ZXN0KTsKIAkJCQlnb3RvIGNsZWFudXBfdW5waW47CisJCQl9CiAJCX0KIAogCQlyZXQg PSBkZXZfcHJpdi0+ZGlzcGxheS5xdWV1ZV9mbGlwKGRldiwgY3J0YywgZmIsIG9iaiwgcmVxdWVz dCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggODA5NmM2YS4uOGI2NTQyZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTI1MTAsMTEgKzI1MTAsMTAgQEAgaW50IGludGVsX2xy X2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAlpZiAo Y3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCAmJiByaW5nLT5pbml0X2NvbnRleHQpIHsKIAkJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJcmV0ID0gaTkxNV9nZW1fcmVx dWVzdF9hbGxvYyhyaW5nLAotCQkJY3R4LCAmcmVxKTsKLQkJaWYgKHJldCkgewotCQkJRFJNX0VS Uk9SKCJyaW5nIGNyZWF0ZSByZXE6ICVkXG4iLAotCQkJCXJldCk7CisJCXJlcSA9IGk5MTVfZ2Vt X3JlcXVlc3RfYWxsb2MocmluZywgY3R4KTsKKwkJaWYgKElTX0VSUihyZXEpKSB7CisJCQlyZXQg PSBQVFJfRVJSKHJlcSk7CisJCQlEUk1fRVJST1IoInJpbmcgY3JlYXRlIHJlcTogJWRcbiIsIHJl dCk7CiAJCQlnb3RvIGVycm9yX3JpbmdidWY7CiAJCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf b3ZlcmxheS5jCmluZGV4IDc2ZjE5ODAuLjkxNjg0MTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vdmVybGF5LmMKQEAgLTI0MCw5ICsyNDAsOSBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlf b24oc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiAJV0FSTl9PTihvdmVybGF5LT5hY3Rp dmUpOwogCVdBUk5fT04oSVNfSTgzMChkZXYpICYmICEoZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJL X1BJUEVBX0ZPUkNFKSk7CiAKLQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIHJp bmctPmRlZmF1bHRfY29udGV4dCwgJnJlcSk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwly ZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIE5VTEwpOworCWlmIChJU19FUlIocmVx KSkKKwkJcmV0dXJuIFBUUl9FUlIocmVxKTsKIAogCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVx LCA0KTsKIAlpZiAocmV0KSB7CkBAIC0yODMsOSArMjgzLDkgQEAgc3RhdGljIGludCBpbnRlbF9v dmVybGF5X2NvbnRpbnVlKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAogCWlmICh0bXAg JiAoMSA8PCAxNykpCiAJCURSTV9ERUJVRygib3ZlcmxheSB1bmRlcnJ1biwgRE9WU1RBOiAleFxu IiwgdG1wKTsKIAotCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MocmluZywgcmluZy0+ZGVm YXVsdF9jb250ZXh0LCAmcmVxKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCXJlcSA9IGk5 MTVfZ2VtX3JlcXVlc3RfYWxsb2MocmluZywgTlVMTCk7CisJaWYgKElTX0VSUihyZXEpKQorCQly ZXR1cm4gUFRSX0VSUihyZXEpOwogCiAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwog CWlmIChyZXQpIHsKQEAgLTM0OSw5ICszNDksOSBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlf b2ZmKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQogCSAqIG9mIHRoZSBody4gRG8gaXQg aW4gYm90aCBjYXNlcyAqLwogCWZsaXBfYWRkciB8PSBPRkNfVVBEQVRFOwogCi0JcmV0ID0gaTkx NV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCByaW5nLT5kZWZhdWx0X2NvbnRleHQsICZyZXEpOwot CWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhy aW5nLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHJlcSkpCisJCXJldHVybiBQVFJfRVJSKHJlcSk7CiAK IAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNik7CiAJaWYgKHJldCkgewpAQCAtNDIzLDkg KzQyMyw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWQoc3RydWN0 IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiAJCS8qIHN5bmNocm9ub3VzIHNsb3dwYXRoICovCiAJ CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCXJldCA9IGk5MTVfZ2VtX3Jl cXVlc3RfYWxsb2MocmluZywgcmluZy0+ZGVmYXVsdF9jb250ZXh0LCAmcmVxKTsKLQkJaWYgKHJl dCkKLQkJCXJldHVybiByZXQ7CisJCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MocmluZywg TlVMTCk7CisJCWlmIChJU19FUlIocmVxKSkKKwkJCXJldHVybiBQVFJfRVJSKHJlcSk7CiAKIAkJ cmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDIpOwogCQlpZiAocmV0KSB7Ci0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK