From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 25/26] drm/i915: Replace 4096 with PAGE_SIZE or I915_GTT_PAGE_SIZE Date: Sat, 31 Dec 2016 12:07:01 +0000 Message-ID: <20161231120702.21204-26-chris@chris-wilson.co.uk> References: <20161231120702.21204-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-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11CBF6E2EC for ; Sat, 31 Dec 2016 12:07:30 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id l2so49523545wml.2 for ; Sat, 31 Dec 2016 04:07:29 -0800 (PST) In-Reply-To: <20161231120702.21204-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 U3RhcnQgY29udmVydGluZyBvdmVyIGZyb20gdGhlIGJ5dGUgY291bnQgdG8gaXRzIHNlbWFudGlj IG1hY3JvLCBlaXRoZXIKd2Ugd2FudCB0byBhbGxvY2F0ZSB0aGUgc2l6ZSBvZiBhIHBoeXNpY2Fs IHBhZ2UgaW4gbWFpbiBtZW1vcnkgb3Igd2UKd2FudCB0aGUgc2l6ZSBvZiBhIHZpcnR1YWwgcGFn ZSBpbiB0aGUgR1RULiA0MDk2IGNvdWxkIG1lYW4gZWl0aGVyLCBidXQKUEFHRV9TSVpFIGFuZCBJ OTE1X0dUVF9QQUdFX1NJWkUgYXJlIGV4cGxpY2l0IGFuZCBzaG91bGQgaGVscCBpbXByb3ZlCmNv ZSBjb21wcmVoZW5zaW9uIGFuZCBmdXR1cmUgY2hhbmdlcy4KClNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jICAgICAgfCAgNSArKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9mZW5jZV9yZWcuYyAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMgICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oICAgICAgICAgIHwgIDUgKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc3RvbGVuLmMgICAgICAgfCAgNyArKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jICAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jICAgICAgICAgICAgIHwgIDUgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyAgICAgIHwgMTAgKysrKystLS0tLQogMTIgZmlsZXMgY2hhbmdl ZCwgMzQgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKaW5kZXggMDQyNGNlZTVjNzY3Li5iYWQ1NzI3OWU4MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwpAQCAtMjA5Miw3ICsyMDkyLDcgQEAgdTMyIGk5MTVfZ2VtX2dldF9nZ3R0X2FsaWdubWVu dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBzaXplLAogCSAqIGlmIGEg ZmVuY2UgcmVnaXN0ZXIgaXMgbmVlZGVkIGZvciB0aGUgb2JqZWN0LgogCSAqLwogCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDQgfHwgdGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfTk9ORSkK LQkJcmV0dXJuIDQwOTY7CisJCXJldHVybiBJOTE1X0dUVF9NSU5fQUxJR05NRU5UOwogCiAJLyoK IAkgKiBQcmV2aW91cyBjaGlwcyBuZWVkIHRvIGJlIGFsaWduZWQgdG8gdGhlIHNpemUgb2YgdGhl IHNtYWxsZXN0CkBAIC0zNTYwLDcgKzM1NjAsNyBAQCBpOTE1X2dlbV9vYmplY3RfdW5waW5fZnJv bV9kaXNwbGF5X3BsYW5lKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCQlyZXR1cm47CiAKIAlpZiAo LS12bWEtPm9iai0+cGluX2Rpc3BsYXkgPT0gMCkKLQkJdm1hLT5kaXNwbGF5X2FsaWdubWVudCA9 IDQwOTY7CisJCXZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBJOTE1X0dUVF9NSU5fQUxJR05NRU5U OwogCiAJLyogQnVtcCB0aGUgTFJVIHRvIHRyeSBhbmQgYXZvaWQgcHJlbWF0dXJlIGV2aWN0aW9u IHdoaWxzdCBmbGlwcGluZyAgKi8KIAlpZiAoIWk5MTVfdm1hX2lzX2FjdGl2ZSh2bWEpKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IGE4ZjZiODg0M2JkZi4uZDQ3 ODBjZGZiOGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0z NDEsNyArMzQxLDcgQEAgX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJaWYgKEhBU19HVUMoZGV2X3ByaXYpICYmIGk5MTUuZW5hYmxlX2d1Y19s b2FkaW5nKQogCQljdHgtPmdndHRfb2Zmc2V0X2JpYXMgPSBHVUNfV09QQ01fVE9QOwogCWVsc2UK LQkJY3R4LT5nZ3R0X29mZnNldF9iaWFzID0gNDA5NjsKKwkJY3R4LT5nZ3R0X29mZnNldF9iaWFz ID0gSTkxNV9HVFRfUEFHRV9TSVpFOwogCiAJcmV0dXJuIGN0eDsKIApAQCAtNDU2LDcgKzQ1Niw4 IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQlkZXZfcHJpdi0+aHdfY29udGV4dF9zaXplID0gMDsKIAl9IGVsc2UgaWYgKEhB U19IV19DT05URVhUUyhkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPmh3X2NvbnRleHRfc2l6ZSA9 Ci0JCQlyb3VuZF91cChnZXRfY29udGV4dF9zaXplKGRldl9wcml2KSwgNDA5Nik7CisJCQlyb3Vu ZF91cChnZXRfY29udGV4dF9zaXplKGRldl9wcml2KSwKKwkJCQkgSTkxNV9HVFRfUEFHRV9TSVpF KTsKIAkJaWYgKGRldl9wcml2LT5od19jb250ZXh0X3NpemUgPiAoMTw8MjApKSB7CiAJCQlEUk1f REVCVUdfRFJJVkVSKCJEaXNhYmxpbmcgSFcgQ29udGV4dHM7IGludmFsaWQgc2l6ZSAlZFxuIiwK IAkJCQkJIGRldl9wcml2LT5od19jb250ZXh0X3NpemUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V2aWN0LmMKaW5kZXggNTAxMjllYzFjYWFiLi43MGJhOTJmOTExNDggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwpAQCAtMjYzLDkgKzI2Myw5IEBAIGludCBpOTE1X2dl bV9ldmljdF9mb3Jfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdGFyZ2V0LCB1bnNpZ25lZCBpbnQgZmxh Z3MpCiAJaWYgKGNoZWNrX2NvbG9yKSB7CiAJCS8qIEV4cGFuZCBzZWFyY2ggdG8gY292ZXIgbmVp Z2hib3VyaW5nIGd1YXJkIHBhZ2VzIChvciBsYWNrISkgKi8KIAkJaWYgKHN0YXJ0ID4gdGFyZ2V0 LT52bS0+c3RhcnQpCi0JCQlzdGFydCAtPSA0MDk2OworCQkJc3RhcnQgLT0gSTkxNV9HVFRfUEFH RV9TSVpFOwogCQlpZiAoZW5kIDwgdGFyZ2V0LT52bS0+c3RhcnQgKyB0YXJnZXQtPnZtLT50b3Rh bCkKLQkJCWVuZCArPSA0MDk2OworCQkJZW5kICs9IEk5MTVfR1RUX1BBR0VfU0laRTsKIAl9CiAK IAlkcm1fbW1fZm9yX2VhY2hfbm9kZV9pbl9yYW5nZShub2RlLCAmdGFyZ2V0LT52bS0+bW0sIHN0 YXJ0LCBlbmQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpp bmRleCBhNWZlMjk5ZGExZDMuLmM2OTIyYTVmMDUxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtNDM4LDcgKzQzOCw3IEBAIHN0YXRpYyB2b2lkICpy ZWxvY19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJbWVtc2V0KCZj YWNoZS0+bm9kZSwgMCwgc2l6ZW9mKGNhY2hlLT5ub2RlKSk7CiAJCQlyZXQgPSBkcm1fbW1faW5z ZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYwogCQkJCSgmZ2d0dC0+YmFzZS5tbSwgJmNhY2hlLT5u b2RlLAotCQkJCSA0MDk2LCAwLCBJOTE1X0NPTE9SX1VORVZJQ1RBQkxFLAorCQkJCSBQQUdFX1NJ WkUsIDAsIEk5MTVfQ09MT1JfVU5FVklDVEFCTEUsCiAJCQkJIDAsIGdndHQtPm1hcHBhYmxlX2Vu ZCwKIAkJCQkgRFJNX01NX1NFQVJDSF9ERUZBVUxULAogCQkJCSBEUk1fTU1fQ1JFQVRFX0RFRkFV TFQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVn LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYwppbmRleCA2ZGU1 MjdkZjZjZGMuLjY3ODM1ZDdiMzljNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZmVuY2VfcmVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f ZmVuY2VfcmVnLmMKQEAgLTgxLDExICs4MSwxMSBAQCBzdGF0aWMgdm9pZCBpOTY1X3dyaXRlX2Zl bmNlX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnICpmZW5jZSwKIAkJdW5zaWduZWQgaW50 IHN0cmlkZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfc3RyaWRlKHZtYS0+b2JqKTsKIAogCQlHRU1f QlVHX09OKCFpOTE1X3ZtYV9pc19tYXBfYW5kX2ZlbmNlYWJsZSh2bWEpKTsKLQkJR0VNX0JVR19P Tih2bWEtPm5vZGUuc3RhcnQgJiA0MDk1KTsKLQkJR0VNX0JVR19PTih2bWEtPmZlbmNlX3NpemUg JiA0MDk1KTsKKwkJR0VNX0JVR19PTih2bWEtPm5vZGUuc3RhcnQgJiAoSTkxNV9HVFRfUEFHRV9T SVpFIC0gMSkpOworCQlHRU1fQlVHX09OKHZtYS0+ZmVuY2Vfc2l6ZSAmIChJOTE1X0dUVF9QQUdF X1NJWkUgLSAxKSk7CiAJCUdFTV9CVUdfT04oc3RyaWRlICYgMTI3KTsKIAotCQl2YWwgPSAodm1h LT5ub2RlLnN0YXJ0ICsgdm1hLT5mZW5jZV9zaXplIC0gNDA5NikgPDwgMzI7CisJCXZhbCA9ICh2 bWEtPm5vZGUuc3RhcnQgKyB2bWEtPmZlbmNlX3NpemUgLSBJOTE1X0dUVF9QQUdFX1NJWkUpIDw8 IDMyOwogCQl2YWwgfD0gdm1hLT5ub2RlLnN0YXJ0OwogCQl2YWwgfD0gKHU2NCkoKHN0cmlkZSAv IDEyOCkgLSAxKSA8PCBmZW5jZV9waXRjaF9zaGlmdDsKIAkJaWYgKHRpbGluZyA9PSBJOTE1X1RJ TElOR19ZKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAyYzU3OTk0NjQ0N2Mu LjExNmU0M2JmZmRiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTI3MTYs MTEgKzI3MTYsMTEgQEAgc3RhdGljIHZvaWQgaTkxNV9ndHRfY29sb3JfYWRqdXN0KGNvbnN0IHN0 cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKIAkJCQkgIHU2NCAqZW5kKQogewogCWlmIChub2RlLT5j b2xvciAhPSBjb2xvcikKLQkJKnN0YXJ0ICs9IDQwOTY7CisJCSpzdGFydCArPSBJOTE1X0dUVF9Q QUdFX1NJWkU7CiAKIAlub2RlID0gbGlzdF9uZXh0X2VudHJ5KG5vZGUsIG5vZGVfbGlzdCk7CiAJ aWYgKG5vZGUtPmFsbG9jYXRlZCAmJiBub2RlLT5jb2xvciAhPSBjb2xvcikKLQkJKmVuZCAtPSA0 MDk2OworCQkqZW5kIC09IEk5MTVfR1RUX1BBR0VfU0laRTsKIH0KIAogaW50IGk5MTVfZ2VtX2lu aXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0yNzQ3LDcgKzI3 NDcsNyBAQCBpbnQgaTkxNV9nZW1faW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAkvKiBSZXNlcnZlIGEgbWFwcGFibGUgc2xvdCBmb3Igb3VyIGxvY2tsZXNzIGVy cm9yIGNhcHR1cmUgKi8KIAlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJp YygmZ2d0dC0+YmFzZS5tbSwKIAkJCQkJCSAgJmdndHQtPmVycm9yX2NhcHR1cmUsCi0JCQkJCQkg IDQwOTYsIDAsCisJCQkJCQkgIFBBR0VfU0laRSwgMCwKIAkJCQkJCSAgSTkxNV9DT0xPUl9VTkVW SUNUQUJMRSwKIAkJCQkJCSAgMCwgZ2d0dC0+bWFwcGFibGVfZW5kLAogCQkJCQkJICAwLCAwKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggYTQwNzBjMjdkNjliLi5lMjE3YjE0 ZTE0ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC00MCw2ICs0MCw5IEBA CiAjaW5jbHVkZSAiaTkxNV9nZW1fdGltZWxpbmUuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9yZXF1 ZXN0LmgiCiAKKyNkZWZpbmUgSTkxNV9HVFRfUEFHRV9TSVpFIDQwOTYKKyNkZWZpbmUgSTkxNV9H VFRfTUlOX0FMSUdOTUVOVCBJOTE1X0dUVF9QQUdFX1NJWkUKKwogI2RlZmluZSBJOTE1X0ZFTkNF X1JFR19OT05FIC0xCiAjZGVmaW5lIEk5MTVfTUFYX05VTV9GRU5DRVMgMzIKIC8qIDMyIGZlbmNl cyArIHNpZ24gYml0IGZvciBGRU5DRV9SRUdfTk9ORSAqLwpAQCAtNTYzLDYgKzU2Niw2IEBAIHZv aWQgaTkxNV9nZW1fZ3R0X2ZpbmlzaF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogI2RlZmluZSBQSU5fSElHSAkJQklUKDkpCiAjZGVmaW5lIFBJTl9PRkZTRVRfQklBUwkJ QklUKDEwKQogI2RlZmluZSBQSU5fT0ZGU0VUX0ZJWEVECUJJVCgxMSkKLSNkZWZpbmUgUElOX09G RlNFVF9NQVNLCQkofjQwOTUpCisjZGVmaW5lIFBJTl9PRkZTRVRfTUFTSwkJKC1JOTE1X0dUVF9Q QUdFX1NJWkUpCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVuZGVyX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5k ZXJfc3RhdGUuYwppbmRleCA1YWYxOWIwYmY3MTMuLjYzYWU3ZTgxMzMzNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKQEAgLTE4NywxNCArMTg3LDE0 IEBAIGludCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiAJaWYgKCFyb2RhdGEpCiAJCXJldHVybiAwOwogCi0JaWYgKHJvZGF0YS0+YmF0 Y2hfaXRlbXMgKiA0ID4gNDA5NikKKwlpZiAocm9kYXRhLT5iYXRjaF9pdGVtcyAqIDQgPiBQQUdF X1NJWkUpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJc28gPSBrbWFsbG9jKHNpemVvZigqc28pLCBH RlBfS0VSTkVMKTsKIAlpZiAoIXNvKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW9iaiA9IGk5MTVf Z2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoZW5naW5lLT5pOTE1LCA0MDk2KTsKKwlvYmogPSBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGVuZ2luZS0+aTkxNSwgUEFHRV9TSVpFKTsK IAlpZiAoSVNfRVJSKG9iaikpIHsKIAkJcmV0ID0gUFRSX0VSUihvYmopOwogCQlnb3RvIGVycl9m cmVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCA1ZmQ4NTEzMzZh OTkuLmJlNjExZjEzNjdiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMK QEAgLTQ4Miw3ICs0ODIsNyBAQCBpbnQgaTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0b2xlbl91c2FibGVfc3RhcnQgPSAwOwogCS8qIFdh U2tpcFN0b2xlbk1lbW9yeUZpcnN0UGFnZTpiZHcrICovCiAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOCkKLQkJc3RvbGVuX3VzYWJsZV9zdGFydCA9IDQwOTY7CisJCXN0b2xlbl91c2FibGVf c3RhcnQgPSBQQUdFX1NJWkU7CiAKIAlnZ3R0LT5zdG9sZW5fdXNhYmxlX3NpemUgPQogCQlnZ3R0 LT5zdG9sZW5fc2l6ZSAtIHJlc2VydmVkX3RvdGFsIC0gc3RvbGVuX3VzYWJsZV9zdGFydDsKQEAg LTY0NCw4ICs2NDQsOSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxs b2NhdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdgogCQkJc3RvbGVuX29mZnNl dCwgZ3R0X29mZnNldCwgc2l6ZSk7CiAKIAkvKiBLSVNTIGFuZCBleHBlY3QgZXZlcnl0aGluZyB0 byBiZSBwYWdlLWFsaWduZWQgKi8KLQlpZiAoV0FSTl9PTihzaXplID09IDApIHx8IFdBUk5fT04o c2l6ZSAmIDQwOTUpIHx8Ci0JICAgIFdBUk5fT04oc3RvbGVuX29mZnNldCAmIDQwOTUpKQorCWlm IChXQVJOX09OKHNpemUgPT0gMCkgfHwKKwkgICAgV0FSTl9PTihzaXplICYgKEk5MTVfR1RUX1BB R0VfU0laRSAtIDEpKSB8fAorCSAgICBXQVJOX09OKHN0b2xlbl9vZmZzZXQgJiAoSTkxNV9HVFRf TUlOX0FMSUdOTUVOVCAtIDEpKSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlzdG9sZW4gPSBremFsbG9j KHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwppbmRl eCBhZTAwZDlmNGU1MjAuLjY1OTZkMDk2M2RhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCkBA IC05MSw3ICs5MSw3IEBAIF9faTkxNV92bWFfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCiAJdm1hLT52bSA9IHZtOwogCXZtYS0+b2JqID0gb2JqOwogCXZtYS0+c2l6ZSA9 IG9iai0+YmFzZS5zaXplOwotCXZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSA0MDk2OworCXZtYS0+ ZGlzcGxheV9hbGlnbm1lbnQgPSBJOTE1X0dUVF9NSU5fQUxJR05NRU5UOwogCiAJaWYgKHZpZXcp IHsKIAkJdm1hLT5nZ3R0X3ZpZXcgPSAqdmlldzsKQEAgLTQzNSw3ICs0MzUsNyBAQCBpOTE1X3Zt YV9pbnNlcnQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1 NjQgZmxhZ3MpCiAJCSAqIHdpdGggemVybyBhbGlnbm1lbnQsIHNvIHdoZXJlIHBvc3NpYmxlIHVz ZSB0aGUgb3B0aW1hbAogCQkgKiBwYXRoLgogCQkgKi8KLQkJaWYgKGFsaWdubWVudCA8PSA0MDk2 KQorCQlpZiAoYWxpZ25tZW50IDw9IEk5MTVfR1RUX01JTl9BTElHTk1FTlQpCiAJCQlhbGlnbm1l bnQgPSAwOwogCiBzZWFyY2hfZnJlZToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNjAw NTE4ZWU4OWRiLi5jODA5ZWRhNjVmNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0x OTM3LDcgKzE5MzcsNyBAQCBpbnQgbG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKIAllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYiA9IGdlbjhfZW1p dF9icmVhZGNydW1iX3JlbmRlcjsKIAllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGdlbjhf ZW1pdF9icmVhZGNydW1iX3JlbmRlcl9zejsKIAotCXJldCA9IGludGVsX2VuZ2luZV9jcmVhdGVf c2NyYXRjaChlbmdpbmUsIDQwOTYpOworCXJldCA9IGludGVsX2VuZ2luZV9jcmVhdGVfc2NyYXRj aChlbmdpbmUsIFBBR0VfU0laRSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjIx OSw3ICsyMjE5LDggQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxv YyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCiAJV0FSTl9PTihjZS0+c3RhdGUpOwog Ci0JY29udGV4dF9zaXplID0gcm91bmRfdXAoaW50ZWxfbHJfY29udGV4dF9zaXplKGVuZ2luZSks IDQwOTYpOworCWNvbnRleHRfc2l6ZSA9IHJvdW5kX3VwKGludGVsX2xyX2NvbnRleHRfc2l6ZShl bmdpbmUpLAorCQkJCUk5MTVfR1RUX1BBR0VfU0laRSk7CiAKIAkvKiBPbmUgZXh0cmEgcGFnZSBh cyB0aGUgc2hhcmluZyBkYXRhIGJldHdlZW4gZHJpdmVyIGFuZCBHdUMgKi8KIAljb250ZXh0X3Np emUgKz0gUEFHRV9TSVpFICogTFJDX1BQSFdTUF9QTjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwppbmRleCAwOTcxYWMzOTZiNjAuLmFiODNmYzIyZDIwNyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMTczNiw3ICsxNzM2LDcgQEAgc3Rh dGljIGludCBpbml0X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IAl2b2lkICp2YWRkcjsKIAlpbnQgcmV0OwogCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9pbnRlcm5hbChlbmdpbmUtPmk5MTUsIDQwOTYpOworCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9j cmVhdGVfaW50ZXJuYWwoZW5naW5lLT5pOTE1LCBQQUdFX1NJWkUpOwogCWlmIChJU19FUlIob2Jq KSkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzdGF0dXMgcGFnZVxuIik7CiAJ CXJldHVybiBQVFJfRVJSKG9iaik7CkBAIC0xNzc3LDcgKzE3NzcsNyBAQCBzdGF0aWMgaW50IGlu aXRfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJZW5naW5l LT5zdGF0dXNfcGFnZS52bWEgPSB2bWE7CiAJZW5naW5lLT5zdGF0dXNfcGFnZS5nZ3R0X29mZnNl dCA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKTsKLQllbmdpbmUtPnN0YXR1c19wYWdlLnBhZ2VfYWRk ciA9IG1lbXNldCh2YWRkciwgMCwgNDA5Nik7CisJZW5naW5lLT5zdGF0dXNfcGFnZS5wYWdlX2Fk ZHIgPSBtZW1zZXQodmFkZHIsIDAsIFBBR0VfU0laRSk7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCIl cyBod3Mgb2Zmc2V0OiAweCUwOHhcbiIsCiAJCQkgZW5naW5lLT5uYW1lLCBpOTE1X2dndHRfb2Zm c2V0KHZtYSkpOwpAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgc3RhdGljIGludCBpbnRlbF9pbml0X3Jp bmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAl9CiAKIAkvKiBSaW5n IHdyYXBhcm91bmQgYXQgb2Zmc2V0IDAgc29tZXRpbWVzIGhhbmdzLiBObyBpZGVhIHdoeS4gKi8K LQlyZXQgPSBpbnRlbF9yaW5nX3BpbihyaW5nLCA0MDk2KTsKKwlyZXQgPSBpbnRlbF9yaW5nX3Bp bihyaW5nLCBJOTE1X0dUVF9QQUdFX1NJWkUpOwogCWlmIChyZXQpIHsKIAkJaW50ZWxfcmluZ19m cmVlKHJpbmcpOwogCQlnb3RvIGVycm9yOwpAQCAtMjQ2Niw3ICsyNDY2LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfcmluZ19pbml0X3NlbWFwaG9yZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDggJiYgIWRldl9wcml2LT5zZW1h cGhvcmUpIHsKIAkJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKLQkJb2JqID0gaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZShkZXZfcHJpdiwgNDA5Nik7CisJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVh dGUoZGV2X3ByaXYsIFBBR0VfU0laRSk7CiAJCWlmIChJU19FUlIob2JqKSkKIAkJCWdvdG8gZXJy OwogCkBAIC0yNjgzLDcgKzI2ODMsNyBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZm ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlyZXR1cm4gcmV0OwogCiAJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewotCQlyZXQgPSBpbnRlbF9lbmdpbmVfY3JlYXRl X3NjcmF0Y2goZW5naW5lLCA0MDk2KTsKKwkJcmV0ID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9zY3Jh dGNoKGVuZ2luZSwgUEFHRV9TSVpFKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfSBl bHNlIGlmIChIQVNfQlJPS0VOX0NTX1RMQihkZXZfcHJpdikpIHsKLS0gCjIuMTEuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==