From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 06/21] drm/i915: introduce page_size members Date: Thu, 5 Oct 2017 16:19:00 +0100 Message-ID: <20171005151915.11151-7-matthew.auld@intel.com> References: <20171005151915.11151-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A8436E81A for ; Thu, 5 Oct 2017 15:19:39 +0000 (UTC) In-Reply-To: <20171005151915.11151-1-matthew.auld@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 SW4gcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgaHVnZSBndHQgcGFnZXMgZm9yIHRoZSBwcGd0 dCwgd2UgaW50cm9kdWNlCnBhZ2Ugc2l6ZSBtZW1iZXJzIGZvciBnZW0gb2JqZWN0cy4gIFdlIGZp bGwgaW4gdGhlIHBhZ2Ugc2l6ZXMgYnkKc2Nhbm5pbmcgdGhlIHNnIHRhYmxlLgoKdjI6IHBhc3Mg dGhlIHNnX21hc2sgdG8gc2V0X3BhZ2VzCgp2MzogY2FsY3VsYXRlIHRoZSBzZ19tYXNrIGlubGlu ZSB3aXRoIHBvcHVsYXRpbmcgdGhlIHNnX3RhYmxlIHdoZXJlCnBvc3NpYmxlLCBhbmQgcGFzcyB0 byBzZXRfcGFnZXMgYWxvbmcgd2l0aCB0aGUgcGFnZXMuCgp2NDogYnVuY2ggb2YgaW1wcm92ZW1l bnRzIGZyb20gSm9vbmFzCgp2NTogZml4IG51bV9wYWdlcyBibHVuZGVyCiAgICBpbnRyb2R1Y2Ug aTkxNV9zZ19wYWdlX3NpemVzIGhlbHBlcgoKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxt YXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGlu ZW5AbGludXguaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgICAgIHwgMjAgKysrKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICAgICB8IDQyICsr KysrKysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1h YnVmLmMgICAgICAgICAgIHwgIDUgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9p bnRlcm5hbC5jICAgICAgICAgfCAgNSArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X29iamVjdC5oICAgICAgICAgICB8IDE3ICsrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3N0b2xlbi5jICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV91c2VycHRyLmMgICAgICAgICAgfCAgNSArKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3QuYyB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMgICAgfCAgNSArKy0KIDkgZmlsZXMgY2hhbmdl ZCwgOTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggM2Q0ZGVlODE3MzgxLi4zYmQwYTQxZmNkOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaApAQCAtMjg3Miw2ICsyODcyLDIxIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNjYXR0ZXJs aXN0ICpfX3NnX25leHQoc3RydWN0IHNjYXR0ZXJsaXN0ICpzZykKIAkgICAgICgoKF9faXRlciku Y3VyciArPSBQQUdFX1NJWkUpID49IChfX2l0ZXIpLm1heCkgPwkJXAogCSAgICAgKF9faXRlcikg PSBfX3NndF9pdGVyKF9fc2dfbmV4dCgoX19pdGVyKS5zZ3ApLCBmYWxzZSksIDAgOiAwKQogCitz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpOTE1X3NnX3BhZ2Vfc2l6ZXMoc3RydWN0IHNjYXR0 ZXJsaXN0ICpzZykKK3sKKwl1bnNpZ25lZCBpbnQgcGFnZV9zaXplczsKKworCXBhZ2Vfc2l6ZXMg PSAwOworCXdoaWxlIChzZykgeworCQlHRU1fQlVHX09OKHNnLT5vZmZzZXQpOworCQlHRU1fQlVH X09OKCFJU19BTElHTkVEKHNnLT5sZW5ndGgsIFBBR0VfU0laRSkpOworCQlwYWdlX3NpemVzIHw9 IHNnLT5sZW5ndGg7CisJCXNnID0gX19zZ19uZXh0KHNnKTsKKwl9CisKKwlyZXR1cm4gcGFnZV9z aXplczsKK30KKwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaTkxNV9zZ19zZWdtZW50X3Np emUodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgc2l6ZSA9IHN3aW90bGJfbWF4X3NlZ21lbnQoKTsK QEAgLTMxMDEsNiArMzExNiw4IEBAIGludGVsX2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogI2RlZmluZSBVU0VTX1BQR1RUKGRldl9wcml2KQkJKGk5MTVfbW9k cGFyYW1zLmVuYWJsZV9wcGd0dCkKICNkZWZpbmUgVVNFU19GVUxMX1BQR1RUKGRldl9wcml2KQko aTkxNV9tb2RwYXJhbXMuZW5hYmxlX3BwZ3R0ID49IDIpCiAjZGVmaW5lIFVTRVNfRlVMTF80OEJJ VF9QUEdUVChkZXZfcHJpdikJKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wcGd0dCA9PSAzKQorI2Rl ZmluZSBIQVNfUEFHRV9TSVpFUyhkZXZfcHJpdiwgc2l6ZXMpIFwKKwkoKHNpemVzKSAmJiAoKChz aXplcykgJiB+KGRldl9wcml2KS0+aW5mby5wYWdlX3NpemVzKSkgPT0gMCkKIAogI2RlZmluZSBI QVNfT1ZFUkxBWShkZXZfcHJpdikJCSAoKGRldl9wcml2KS0+aW5mby5oYXNfb3ZlcmxheSkKICNk ZWZpbmUgT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChkZXZfcHJpdikgXApAQCAtMzUxNyw3ICszNTM0 LDggQEAgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRkcmVzcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCQkJCXVuc2lnbmVkIGxvbmcgbik7CiAKIHZvaWQgX19pOTE1X2dlbV9v YmplY3Rfc2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCQkJIHN0 cnVjdCBzZ190YWJsZSAqcGFnZXMpOworCQkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzLAorCQkJ CSB1bnNpZ25lZCBpbnQgc2dfbWFzayk7CiBpbnQgX19pOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Vz KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCiBzdGF0aWMgaW5saW5lIGludCBf X211c3RfY2hlY2sKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGMxYzA3ZDA5NTdhYS4uZmIz YjM0MTBlOTU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTIyOCw3ICsyMjgsNyBAQCBz dGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQogCiAJb2JqLT5waHlzX2hhbmRsZSA9IHBoeXM7CiAKLQlfX2k5MTVf Z2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCk7CisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3Bh Z2VzKG9iaiwgc3QsIHNnLT5sZW5ndGgpOwogCiAJcmV0dXJuIDA7CiAKQEAgLTIyNjYsNiArMjI2 Niw4IEBAIHZvaWQgX19pOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCiAJaWYgKCFJU19FUlIocGFnZXMpKQogCQlvYmotPm9wcy0+cHV0X3Bh Z2VzKG9iaiwgcGFnZXMpOwogCisJb2JqLT5tbS5wYWdlX3NpemVzLnBoeXMgPSBvYmotPm1tLnBh Z2Vfc2l6ZXMuc2cgPSAwOworCiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZvYmotPm1tLmxvY2sp OwogfQpAQCAtMjMwOCw2ICsyMzEwLDcgQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXN0cnVjdCBwYWdl ICpwYWdlOwogCXVuc2lnbmVkIGxvbmcgbGFzdF9wZm4gPSAwOwkvKiBzdXBwcmVzcyBnY2Mgd2Fy bmluZyAqLwogCXVuc2lnbmVkIGludCBtYXhfc2VnbWVudCA9IGk5MTVfc2dfc2VnbWVudF9zaXpl KCk7CisJdW5zaWduZWQgaW50IHNnX21hc2s7CiAJZ2ZwX3Qgbm9yZWNsYWltOwogCWludCByZXQ7 CiAKQEAgLTIzMzksNiArMjM0Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9w YWdlc19ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAogCXNnID0gc3QtPnNn bDsKIAlzdC0+bmVudHMgPSAwOworCXNnX21hc2sgPSAwOwogCWZvciAoaSA9IDA7IGkgPCBwYWdl X2NvdW50OyBpKyspIHsKIAkJY29uc3QgdW5zaWduZWQgaW50IHNocmlua1tdID0gewogCQkJSTkx NV9TSFJJTktfQk9VTkQgfCBJOTE1X1NIUklOS19VTkJPVU5EIHwgSTkxNV9TSFJJTktfUFVSR0VB QkxFLApAQCAtMjM5MSw4ICsyMzk1LDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dl dF9wYWdlc19ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJaWYgKCFpIHx8 CiAJCSAgICBzZy0+bGVuZ3RoID49IG1heF9zZWdtZW50IHx8CiAJCSAgICBwYWdlX3RvX3Bmbihw YWdlKSAhPSBsYXN0X3BmbiArIDEpIHsKLQkJCWlmIChpKQorCQkJaWYgKGkpIHsKKwkJCQlzZ19t YXNrIHw9IHNnLT5sZW5ndGg7CiAJCQkJc2cgPSBzZ19uZXh0KHNnKTsKKwkJCX0KIAkJCXN0LT5u ZW50cysrOwogCQkJc2dfc2V0X3BhZ2Uoc2csIHBhZ2UsIFBBR0VfU0laRSwgMCk7CiAJCX0gZWxz ZSB7CkBAIC0yNDAzLDggKzI0MDksMTAgQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2VzX2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkvKiBDaGVjayB0 aGF0IHRoZSBpOTY1Zy9nbSB3b3JrYXJvdW5kIHdvcmtzLiAqLwogCQlXQVJOX09OKChnZnAgJiBf X0dGUF9ETUEzMikgJiYgKGxhc3RfcGZuID49IDB4MDAxMDAwMDBVTCkpOwogCX0KLQlpZiAoc2cp IC8qIGxvb3AgdGVybWluYXRlZCBlYXJseTsgc2hvcnQgc2cgdGFibGUgKi8KKwlpZiAoc2cpIHsg LyogbG9vcCB0ZXJtaW5hdGVkIGVhcmx5OyBzaG9ydCBzZyB0YWJsZSAqLworCQlzZ19tYXNrIHw9 IHNnLT5sZW5ndGg7CiAJCXNnX21hcmtfZW5kKHNnKTsKKwl9CiAKIAkvKiBUcmltIHVudXNlZCBz ZyBlbnRyaWVzIHRvIGF2b2lkIHdhc3RpbmcgbWVtb3J5LiAqLwogCWk5MTVfc2dfdHJpbShzdCk7 CkBAIC0yNDMzLDcgKzI0NDEsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZXNfZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKGk5MTVfZ2VtX29i amVjdF9uZWVkc19iaXQxN19zd2l6emxlKG9iaikpCiAJCWk5MTVfZ2VtX29iamVjdF9kb19iaXRf MTdfc3dpenpsZShvYmosIHN0KTsKIAotCV9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmos IHN0KTsKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCwgc2dfbWFzayk7CiAK IAlyZXR1cm4gMDsKIApAQCAtMjQ2MCw4ICsyNDY4LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1f b2JqZWN0X2dldF9wYWdlc19ndHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIH0K IAogdm9pZCBfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKLQkJCQkgc3RydWN0IHNnX3RhYmxlICpwYWdlcykKKwkJCQkgc3RydWN0IHNn X3RhYmxlICpwYWdlcywKKwkJCQkgdW5zaWduZWQgaW50IHNnX21hc2spCiB7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOworCXVuc2lnbmVk IGxvbmcgc3VwcG9ydGVkX3BhZ2Vfc2l6ZXMgPSBJTlRFTF9JTkZPKGk5MTUpLT5wYWdlX3NpemVz OworCWludCBpOworCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmb2JqLT5tbS5sb2NrKTsKIAogCW9i ai0+bW0uZ2V0X3BhZ2Uuc2dfcG9zID0gcGFnZXMtPnNnbDsKQEAgLTI0NzUsNiArMjQ4OCwyNSBA QCB2b2lkIF9faTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAogCQlfX2k5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2JqKTsKIAkJb2JqLT5t bS5xdWlya2VkID0gdHJ1ZTsKIAl9CisKKwlHRU1fQlVHX09OKCFzZ19tYXNrKTsKKwlvYmotPm1t LnBhZ2Vfc2l6ZXMucGh5cyA9IHNnX21hc2s7CisKKwkvKgorCSAqIENhbGN1bGF0ZSB0aGUgc3Vw cG9ydGVkIHBhZ2Utc2l6ZXMgd2hpY2ggZml0IGludG8gdGhlIGdpdmVuIHNnX21hc2suCisJICog VGhpcyB3aWxsIGdpdmUgdXMgdGhlIHBhZ2Utc2l6ZXMgd2hpY2ggd2UgbWF5IGJlIGFibGUgdG8g dXNlCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgd2hlbiBsYXRlciBpbnNlcnRpbmcgaW50byB0aGUg R1RULiBGb3IgZXhhbXBsZSBpZgorCSAqIHBoeXM9MkcsIHRoZW4gaW4gdGhlb3J5IHdlIHNob3Vs ZCBiZSBhYmxlIHRvIHVzZSAxRywgMk0sIDY0SyBvciA0SworCSAqIHBhZ2VzLCBhbHRob3VnaCBp biBwcmFjdGljZSB0aGlzIHdpbGwgZGVwZW5kIG9uIGEgbnVtYmVyIG9mIG90aGVyCisJICogZmFj dG9ycy4KKwkgKi8KKwlvYmotPm1tLnBhZ2Vfc2l6ZXMuc2cgPSAwOworCWZvcl9lYWNoX3NldF9i aXQoaSwgJnN1cHBvcnRlZF9wYWdlX3NpemVzLCBCSVRTX1BFUl9MT05HKSB7CisJCWlmIChvYmot Pm1tLnBhZ2Vfc2l6ZXMucGh5cyAmIH4wdSA8PCBpKQorCQkJb2JqLT5tbS5wYWdlX3NpemVzLnNn IHw9IEJJVChpKTsKKwl9CisKKwlHRU1fQlVHX09OKCFIQVNfUEFHRV9TSVpFUyhpOTE1LCBvYmot Pm1tLnBhZ2Vfc2l6ZXMuc2cpKTsKIH0KIAogc3RhdGljIGludCBfX19faTkxNV9nZW1fb2JqZWN0 X2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9kbWFidWYuYwppbmRleCA0YzRkYzg1MTU5ZmIuLmU1NDJhOWQ4MDA3NyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKQEAgLTI1OSwxMyArMjU5LDE2 IEBAIHN0cnVjdCBkbWFfYnVmICppOTE1X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19kbWFidWYoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2Vz OworCXVuc2lnbmVkIGludCBzZ19tYXNrOwogCiAJcGFnZXMgPSBkbWFfYnVmX21hcF9hdHRhY2ht ZW50KG9iai0+YmFzZS5pbXBvcnRfYXR0YWNoLAogCQkJCSAgICAgICBETUFfQklESVJFQ1RJT05B TCk7CiAJaWYgKElTX0VSUihwYWdlcykpCiAJCXJldHVybiBQVFJfRVJSKHBhZ2VzKTsKIAotCV9f aTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKKwlzZ19tYXNrID0gaTkxNV9z Z19wYWdlX3NpemVzKHBhZ2VzLT5zZ2wpOworCisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2Vz KG9iaiwgcGFnZXMsIHNnX21hc2spOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRlcm5hbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1faW50ZXJuYWwuYwppbmRleCBmNTk3NjRkYTQyNTQuLmJkYzIzYzRjODc4MyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1faW50ZXJuYWwuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9pbnRlcm5hbC5jCkBAIC00OSw2ICs0OSw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19pbnRlcm5hbChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwogCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7CisJdW5zaWduZWQgaW50IHNnX21hc2s7CiAJdW5zaWduZWQgaW50 IG5wYWdlczsKIAlpbnQgbWF4X29yZGVyOwogCWdmcF90IGdmcDsKQEAgLTg3LDYgKzg4LDcgQEAg c3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2ludGVybmFsKHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiAKIAlzZyA9IHN0LT5zZ2w7CiAJc3QtPm5lbnRzID0gMDsK KwlzZ19tYXNrID0gMDsKIAogCWRvIHsKIAkJaW50IG9yZGVyID0gbWluKGZscyhucGFnZXMpIC0g MSwgbWF4X29yZGVyKTsKQEAgLTEwNCw2ICsxMDYsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29i amVjdF9nZXRfcGFnZXNfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IAkJfSB3aGlsZSAoMSk7CiAKIAkJc2dfc2V0X3BhZ2Uoc2csIHBhZ2UsIFBBR0VfU0laRSA8PCBv cmRlciwgMCk7CisJCXNnX21hc2sgfD0gUEFHRV9TSVpFIDw8IG9yZGVyOwogCQlzdC0+bmVudHMr KzsKIAogCQlucGFnZXMgLT0gMSA8PCBvcmRlcjsKQEAgLTEzMiw3ICsxMzUsNyBAQCBzdGF0aWMg aW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKIAkgKi8KIAlvYmotPm1tLm1hZHYgPSBJOTE1X01BRFZfRE9OVE5FRUQ7 CiAKLQlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMob2JqLCBzdCk7CisJX19pOTE1X2dlbV9v YmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3QsIHNnX21hc2spOwogCiAJcmV0dXJuIDA7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggMDM2ZTg0N2IyN2YwLi4xMTA2NzI5 NTJhMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oCkBAIC0xNjksNiAr MTY5LDIzIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKIAkJc3RydWN0IHNnX3RhYmxl ICpwYWdlczsKIAkJdm9pZCAqbWFwcGluZzsKIAorCQlzdHJ1Y3QgaTkxNV9wYWdlX3NpemVzIHsK KwkJCS8qKgorCQkJICogVGhlIHNnIG1hc2sgb2YgdGhlIHBhZ2VzIHNnX3RhYmxlLiBpLmUgdGhl IG1hc2sgb2YKKwkJCSAqIG9mIHRoZSBsZW5ndGhzIGZvciBlYWNoIHNnIGVudHJ5LgorCQkJICov CisJCQl1bnNpZ25lZCBpbnQgcGh5czsKKworCQkJLyoqCisJCQkgKiBUaGUgZ3R0IHBhZ2Ugc2l6 ZXMgd2UgYXJlIGFsbG93ZWQgdG8gdXNlIGdpdmVuIHRoZQorCQkJICogc2cgbWFzayBhbmQgdGhl IHN1cHBvcnRlZCBwYWdlIHNpemVzLiBUaGlzIHdpbGwKKwkJCSAqIGV4cHJlc3MgdGhlIHNtYWxs ZXN0IHVuaXQgd2UgY2FuIHVzZSBmb3IgdGhlIHdob2xlCisJCQkgKiBvYmplY3QsIGFzIHdlbGwg YXMgdGhlIGxhcmdlciBzaXplcyB3ZSBtYXkgYmUgYWJsZQorCQkJICogdG8gdXNlIG9wcG9ydHVu aXN0aWNhbGx5LgorCQkJICovCisJCQl1bnNpZ25lZCBpbnQgc2c7CisJCX0gcGFnZV9zaXplczsK KwogCQlzdHJ1Y3QgaTkxNV9nZW1fb2JqZWN0X3BhZ2VfaXRlciB7CiAJCQlzdHJ1Y3Qgc2NhdHRl cmxpc3QgKnNnX3BvczsKIAkJCXVuc2lnbmVkIGludCBzZ19pZHg7IC8qIGluIHBhZ2VzLCBidXQg MzJiaXQgZWVrISAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCA1 MzdlY2IyMjRkYjAuLjU0ZmQ0Y2ZhOWQwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c3RvbGVuLmMKQEAgLTU0OCw3ICs1NDgsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9n ZXRfcGFnZXNfc3RvbGVuKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKElT X0VSUihwYWdlcykpCiAJCXJldHVybiBQVFJfRVJSKHBhZ2VzKTsKIAotCV9faTkxNV9nZW1fb2Jq ZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzKTsKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFnZXMo b2JqLCBwYWdlcywgb2JqLT5zdG9sZW4tPnNpemUpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggNzBhZDc0ODk4MjdkLi40MWUxNmUx OWMzZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMKQEAgLTQwNSw2 ICs0MDUsNyBAQCBfX2k5MTVfZ2VtX3VzZXJwdHJfYWxsb2NfcGFnZXMoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIHsKIAl1bnNpZ25lZCBpbnQgbWF4X3NlZ21lbnQgPSBpOTE1X3Nn X3NlZ21lbnRfc2l6ZSgpOwogCXN0cnVjdCBzZ190YWJsZSAqc3Q7CisJdW5zaWduZWQgaW50IHNn X21hc2s7CiAJaW50IHJldDsKIAogCXN0ID0ga21hbGxvYyhzaXplb2YoKnN0KSwgR0ZQX0tFUk5F TCk7CkBAIC00MzQsNyArNDM1LDkgQEAgX19pOTE1X2dlbV91c2VycHRyX2FsbG9jX3BhZ2VzKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJ fQogCi0JX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3QpOworCXNnX21hc2sgPSBp OTE1X3NnX3BhZ2Vfc2l6ZXMoc3QtPnNnbCk7CisKKwlfX2k5MTVfZ2VtX29iamVjdF9zZXRfcGFn ZXMob2JqLCBzdCwgc2dfbWFzayk7CiAKIAlyZXR1cm4gc3Q7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9nZW1fb2JqZWN0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9nZW1fb2JqZWN0LmMKaW5kZXggNDFjMTVmM2FhNDY3 Li5hMjYzMmRmMzkxNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9odWdlX2dlbV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aHVnZV9nZW1fb2JqZWN0LmMKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIGludCBodWdlX2dldF9w YWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWlmIChpOTE1X2dlbV9ndHRf cHJlcGFyZV9wYWdlcyhvYmosIHBhZ2VzKSkKIAkJZ290byBlcnI7CiAKLQlfX2k5MTVfZ2VtX29i amVjdF9zZXRfcGFnZXMob2JqLCBwYWdlcyk7CisJX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2Vz KG9iaiwgcGFnZXMsIFBBR0VfU0laRSk7CiAKIAlyZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2d0dC5jCmluZGV4IGFhMWRiMzc1ZDU5YS4uODgz YmMxOWUzYWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2Vt X2d0dC5jCkBAIC00NSw2ICs0NSw3IEBAIHN0YXRpYyBpbnQgZmFrZV9nZXRfcGFnZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKICNkZWZpbmUgUEZOX0JJQVMgMHgxMDAwCiAJc3Ry dWN0IHNnX3RhYmxlICpwYWdlczsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXVuc2lnbmVk IGludCBzZ19tYXNrOwogCXR5cGVvZihvYmotPmJhc2Uuc2l6ZSkgcmVtOwogCiAJcGFnZXMgPSBr bWFsbG9jKHNpemVvZigqcGFnZXMpLCBHRlApOwpAQCAtNTcsNiArNTgsNyBAQCBzdGF0aWMgaW50 IGZha2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCXJldHVy biAtRU5PTUVNOwogCX0KIAorCXNnX21hc2sgPSAwOwogCXJlbSA9IG9iai0+YmFzZS5zaXplOwog CWZvciAoc2cgPSBwYWdlcy0+c2dsOyBzZzsgc2cgPSBzZ19uZXh0KHNnKSkgewogCQl1bnNpZ25l ZCBsb25nIGxlbiA9IG1pbl90KHR5cGVvZihyZW0pLCByZW0sIEJJVCgzMSkpOwpAQCAtNjUsNiAr NjcsNyBAQCBzdGF0aWMgaW50IGZha2VfZ2V0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCiAJCXNnX3NldF9wYWdlKHNnLCBwZm5fdG9fcGFnZShQRk5fQklBUyksIGxlbiwg MCk7CiAJCXNnX2RtYV9hZGRyZXNzKHNnKSA9IHBhZ2VfdG9fcGh5cyhzZ19wYWdlKHNnKSk7CiAJ CXNnX2RtYV9sZW4oc2cpID0gbGVuOworCQlzZ19tYXNrIHw9IGxlbjsKIAogCQlyZW0gLT0gbGVu OwogCX0KQEAgLTcyLDcgKzc1LDcgQEAgc3RhdGljIGludCBmYWtlX2dldF9wYWdlcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCiAJb2JqLT5tbS5tYWR2ID0gSTkxNV9NQURWX0RP TlRORUVEOwogCi0JX19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgcGFnZXMpOworCV9f aTkxNV9nZW1fb2JqZWN0X3NldF9wYWdlcyhvYmosIHBhZ2VzLCBzZ19tYXNrKTsKIAogCXJldHVy biAwOwogI3VuZGVmIEdGUAotLSAKMi4xMy41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK