From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 26/38] drm: Extract struct drm_mm_scan from struct drm_mm Date: Thu, 22 Dec 2016 08:36:29 +0000 Message-ID: <20161222083641.2691-27-chris@chris-wilson.co.uk> References: <20161222083641.2691-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161222083641.2691-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIHNjYW4gc3RhdGUgb2NjdXBpZXMgYSBsYXJnZSBwcm9wb3J0aW9uIG9mIHRoZSBzdHJ1Y3Qg ZHJtX21tIGFuZCBpcwpyYXJlbHkgdXNlZCBhbmQgb25seSBjb250YWlucyB0ZW1wb3Jhcnkgc3Rh dGUuIFRoYXQgbWFrZXMgaXQgc3VpdGFibGUgdG8KbW92aW5nIHRvIGl0cyBzdHJ1Y3QgYW5kIG9u dG8gdGhlIHN0YWNrIG9mIHRoZSBjYWxsZXJzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9tbS5jICAgICAgICAgICAgICAgIHwgMTI0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5jICAgfCAgIDcgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgICB8ICAxOSArKystLQogZHJpdmVy cy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jIHwgIDQ1ICsrKysrKy0tLS0tLQogaW5j bHVkZS9kcm0vZHJtX21tLmggICAgICAgICAgICAgICAgICAgIHwgIDQzICsrKysrKystLS0tCiA1 IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9t bS5jCmluZGV4IGI4MDMwNTQ4NDEyNC4uMjFiZDJlMTM3MzhiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX21tLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jCkBAIC01NzQs NyArNTc0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX3NlYXJjaF9mcmVl X2dlbmVyaWMoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0sCiAJdTY0IGFkal9lbmQ7CiAJdTY0IGJl c3Rfc2l6ZTsKIAotCURSTV9NTV9CVUdfT04obW0tPnNjYW5uZWRfYmxvY2tzKTsKKwlEUk1fTU1f QlVHX09OKG1tLT5zY2FuX2FjdGl2ZSk7CiAKIAliZXN0ID0gTlVMTDsKIAliZXN0X3NpemUgPSB+ MFVMOwpAQCAtNjE4LDcgKzYxOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX21tX25vZGUgKmRybV9t bV9zZWFyY2hfZnJlZV9pbl9yYW5nZV9nZW5lcmljKGNvbnN0IHN0cnVjdCBkcm1fCiAJdTY0IGFk al9lbmQ7CiAJdTY0IGJlc3Rfc2l6ZTsKIAotCURSTV9NTV9CVUdfT04obW0tPnNjYW5uZWRfYmxv Y2tzKTsKKwlEUk1fTU1fQlVHX09OKG1tLT5zY2FuX2FjdGl2ZSk7CiAKIAliZXN0ID0gTlVMTDsK IAliZXN0X3NpemUgPSB+MFVMOwpAQCAtNjkzLDcgKzY5Myw3IEBAIEVYUE9SVF9TWU1CT0woZHJt X21tX3JlcGxhY2Vfbm9kZSk7CiAgKgogICogVGhlIERSTSByYW5nZSBhbGxvY2F0b3Igc3VwcG9y dHMgdGhpcyB1c2UtY2FzZSB0aHJvdWdoIHRoZSBzY2FubmluZwogICogaW50ZXJmYWNlcy4gRmly c3QgYSBzY2FuIG9wZXJhdGlvbiBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB3aXRoCi0gKiBkcm1f bW1faW5pdF9zY2FuKCkgb3IgZHJtX21tX2luaXRfc2Nhbl93aXRoX3JhbmdlKCkuIFRoZSBkcml2 ZXIgYWRkcworICogZHJtX21tX3NjYW5faW5pdCgpIG9yIGRybV9tbV9zY2FuX2luaXRfd2l0aF9y YW5nZSgpLiBUaGUgZHJpdmVyIGFkZHMKICAqIG9iamVjdHMgdG8gdGhlIHJvYXN0ZXIgKHByb2Jh Ymx5IGJ5IHdhbGtpbmcgYW4gTFJVIGxpc3QsIGJ1dCB0aGlzIGNhbiBiZQogICogZnJlZWx5IGlt cGxlbWVudGVkKSB1bnRpbCBhIHN1aXRhYmxlIGhvbGUgaXMgZm91bmQgb3IgdGhlcmUncyBubyBm dXJ0aGVyCiAgKiBldmljdGFibGUgb2JqZWN0LgpAQCAtNzEwLDcgKzcxMCw4IEBAIEVYUE9SVF9T WU1CT0woZHJtX21tX3JlcGxhY2Vfbm9kZSk7CiAgKi8KIAogLyoqCi0gKiBkcm1fbW1faW5pdF9z Y2FuIC0gaW5pdGlhbGl6ZSBscnUgc2Nhbm5pbmcKKyAqIGRybV9tbV9zY2FuX2luaXQgLSBpbml0 aWFsaXplIGxydSBzY2FubmluZworICogQHNjYW46IHNjYW4gc3RhdGUKICAqIEBtbTogZHJtX21t IHRvIHNjYW4KICAqIEBzaXplOiBzaXplIG9mIHRoZSBhbGxvY2F0aW9uCiAgKiBAYWxpZ25tZW50 OiBhbGlnbm1lbnQgb2YgdGhlIGFsbG9jYXRpb24KQEAgLTcyNCwyNiArNzI1LDMzIEBAIEVYUE9S VF9TWU1CT0woZHJtX21tX3JlcGxhY2Vfbm9kZSk7CiAgKiBBcyBsb25nIGFzIHRoZSBzY2FuIGxp c3QgaXMgbm9uLWVtcHR5LCBubyBvdGhlciBvcGVyYXRpb25zIHRoYW4KICAqIGFkZGluZy9yZW1v dmluZyBub2RlcyB0by9mcm9tIHRoZSBzY2FuIGxpc3QgYXJlIGFsbG93ZWQuCiAgKi8KLXZvaWQg ZHJtX21tX2luaXRfc2NhbihzdHJ1Y3QgZHJtX21tICptbSwKK3ZvaWQgZHJtX21tX3NjYW5faW5p dChzdHJ1Y3QgZHJtX21tX3NjYW4gKnNjYW4sCisJCSAgICAgIHN0cnVjdCBkcm1fbW0gKm1tLAog CQkgICAgICB1NjQgc2l6ZSwKIAkJICAgICAgdTY0IGFsaWdubWVudCwKIAkJICAgICAgdW5zaWdu ZWQgbG9uZyBjb2xvcikKIHsKIAlEUk1fTU1fQlVHX09OKCFzaXplKTsKKwlEUk1fTU1fQlVHX09O KG1tLT5zY2FuX2FjdGl2ZSk7CiAKLQltbS0+c2Nhbl9jb2xvciA9IGNvbG9yOwotCW1tLT5zY2Fu X2FsaWdubWVudCA9IGFsaWdubWVudDsKLQltbS0+c2Nhbl9zaXplID0gc2l6ZTsKLQltbS0+c2Nh bm5lZF9ibG9ja3MgPSAwOwotCW1tLT5zY2FuX2hpdF9zdGFydCA9IDA7Ci0JbW0tPnNjYW5faGl0 X2VuZCA9IDA7Ci0JbW0tPnNjYW5fY2hlY2tfcmFuZ2UgPSAwOwotCW1tLT5wcmV2X3NjYW5uZWRf bm9kZSA9IE5VTEw7CisJc2Nhbi0+bW0gPSBtbTsKKworCXNjYW4tPmNvbG9yID0gY29sb3I7CisJ c2Nhbi0+YWxpZ25tZW50ID0gYWxpZ25tZW50OworCXNjYW4tPnNpemUgPSBzaXplOworCisJc2Nh bi0+Y2hlY2tfcmFuZ2UgPSAwOworCisJc2Nhbi0+aGl0X3N0YXJ0ID0gVTY0X01BWDsKKwlzY2Fu LT5oaXRfZW5kID0gMDsKKworCXNjYW4tPnByZXZfc2Nhbm5lZF9ub2RlID0gTlVMTDsKIH0KLUVY UE9SVF9TWU1CT0woZHJtX21tX2luaXRfc2Nhbik7CitFWFBPUlRfU1lNQk9MKGRybV9tbV9zY2Fu X2luaXQpOwogCiAvKioKLSAqIGRybV9tbV9pbml0X3NjYW4gLSBpbml0aWFsaXplIHJhbmdlLXJl c3RyaWN0ZWQgbHJ1IHNjYW5uaW5nCisgKiBkcm1fbW1fc2Nhbl9pbml0X3dpdGhfcmFuZ2UgLSBp bml0aWFsaXplIHJhbmdlLXJlc3RyaWN0ZWQgbHJ1IHNjYW5uaW5nCisgKiBAc2Nhbjogc2NhbiBz dGF0ZQogICogQG1tOiBkcm1fbW0gdG8gc2NhbgogICogQHNpemU6IHNpemUgb2YgdGhlIGFsbG9j YXRpb24KICAqIEBhbGlnbm1lbnQ6IGFsaWdubWVudCBvZiB0aGUgYWxsb2NhdGlvbgpAQCAtNzU5 LDcgKzc2Nyw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX21tX2luaXRfc2Nhbik7CiAgKiBBcyBsb25n IGFzIHRoZSBzY2FuIGxpc3QgaXMgbm9uLWVtcHR5LCBubyBvdGhlciBvcGVyYXRpb25zIHRoYW4K ICAqIGFkZGluZy9yZW1vdmluZyBub2RlcyB0by9mcm9tIHRoZSBzY2FuIGxpc3QgYXJlIGFsbG93 ZWQuCiAgKi8KLXZvaWQgZHJtX21tX2luaXRfc2Nhbl93aXRoX3JhbmdlKHN0cnVjdCBkcm1fbW0g Km1tLAordm9pZCBkcm1fbW1fc2Nhbl9pbml0X3dpdGhfcmFuZ2Uoc3RydWN0IGRybV9tbV9zY2Fu ICpzY2FuLAorCQkJCSBzdHJ1Y3QgZHJtX21tICptbSwKIAkJCQkgdTY0IHNpemUsCiAJCQkJIHU2 NCBhbGlnbm1lbnQsCiAJCQkJIHVuc2lnbmVkIGxvbmcgY29sb3IsCkBAIC03NjgsMTkgKzc3Nywy NSBAQCB2b2lkIGRybV9tbV9pbml0X3NjYW5fd2l0aF9yYW5nZShzdHJ1Y3QgZHJtX21tICptbSwK IHsKIAlEUk1fTU1fQlVHX09OKHN0YXJ0ID49IGVuZCk7CiAJRFJNX01NX0JVR19PTighc2l6ZSB8 fCBzaXplID4gZW5kIC0gc3RhcnQpOworCURSTV9NTV9CVUdfT04obW0tPnNjYW5fYWN0aXZlKTsK KworCXNjYW4tPm1tID0gbW07CisKKwlzY2FuLT5jb2xvciA9IGNvbG9yOworCXNjYW4tPmFsaWdu bWVudCA9IGFsaWdubWVudDsKKwlzY2FuLT5zaXplID0gc2l6ZTsKKworCURSTV9NTV9CVUdfT04o ZW5kIDw9IHN0YXJ0KTsKKwlzY2FuLT5yYW5nZV9zdGFydCA9IHN0YXJ0OworCXNjYW4tPnJhbmdl X2VuZCA9IGVuZDsKKwlzY2FuLT5jaGVja19yYW5nZSA9IDE7CiAKLQltbS0+c2Nhbl9jb2xvciA9 IGNvbG9yOwotCW1tLT5zY2FuX2FsaWdubWVudCA9IGFsaWdubWVudDsKLQltbS0+c2Nhbl9zaXpl ID0gc2l6ZTsKLQltbS0+c2Nhbm5lZF9ibG9ja3MgPSAwOwotCW1tLT5zY2FuX2hpdF9zdGFydCA9 IDA7Ci0JbW0tPnNjYW5faGl0X2VuZCA9IDA7Ci0JbW0tPnNjYW5fc3RhcnQgPSBzdGFydDsKLQlt bS0+c2Nhbl9lbmQgPSBlbmQ7Ci0JbW0tPnNjYW5fY2hlY2tfcmFuZ2UgPSAxOwotCW1tLT5wcmV2 X3NjYW5uZWRfbm9kZSA9IE5VTEw7CisJc2Nhbi0+aGl0X3N0YXJ0ID0gVTY0X01BWDsKKwlzY2Fu LT5oaXRfZW5kID0gMDsKKworCXNjYW4tPnByZXZfc2Nhbm5lZF9ub2RlID0gTlVMTDsKIH0KLUVY UE9SVF9TWU1CT0woZHJtX21tX2luaXRfc2Nhbl93aXRoX3JhbmdlKTsKK0VYUE9SVF9TWU1CT0wo ZHJtX21tX3NjYW5faW5pdF93aXRoX3JhbmdlKTsKIAogLyoqCiAgKiBkcm1fbW1fc2Nhbl9hZGRf YmxvY2sgLSBhZGQgYSBub2RlIHRvIHRoZSBzY2FuIGxpc3QKQEAgLTc5Miw0NiArODA3LDQ2IEBA IEVYUE9SVF9TWU1CT0woZHJtX21tX2luaXRfc2Nhbl93aXRoX3JhbmdlKTsKICAqIFJldHVybnM6 CiAgKiBUcnVlIGlmIGEgaG9sZSBoYXMgYmVlbiBmb3VuZCwgZmFsc2Ugb3RoZXJ3aXNlLgogICov Ci1ib29sIGRybV9tbV9zY2FuX2FkZF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpCiti b29sIGRybV9tbV9zY2FuX2FkZF9ibG9jayhzdHJ1Y3QgZHJtX21tX3NjYW4gKnNjYW4sCisJCQkg ICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpCiB7Ci0Jc3RydWN0IGRybV9tbSAqbW0gPSBub2Rl LT5tbTsKKwlzdHJ1Y3QgZHJtX21tICptbSA9IHNjYW4tPm1tOwogCXN0cnVjdCBkcm1fbW1fbm9k ZSAqcHJldl9ub2RlOwogCXU2NCBob2xlX3N0YXJ0LCBob2xlX2VuZDsKIAl1NjQgYWRqX3N0YXJ0 LCBhZGpfZW5kOwogCi0JbW0tPnNjYW5uZWRfYmxvY2tzKys7Ci0KKwlEUk1fTU1fQlVHX09OKG5v ZGUtPm1tICE9IG1tKTsKKwlEUk1fTU1fQlVHX09OKCFub2RlLT5hbGxvY2F0ZWQpOwogCURSTV9N TV9CVUdfT04obm9kZS0+c2Nhbm5lZF9ibG9jayk7CiAJbm9kZS0+c2Nhbm5lZF9ibG9jayA9IDE7 CisJbW0tPnNjYW5fYWN0aXZlKys7CiAKLQlwcmV2X25vZGUgPSBsaXN0X2VudHJ5KG5vZGUtPm5v ZGVfbGlzdC5wcmV2LCBzdHJ1Y3QgZHJtX21tX25vZGUsCi0JCQkgICAgICAgbm9kZV9saXN0KTsK KwlwcmV2X25vZGUgPSBsaXN0X3ByZXZfZW50cnkobm9kZSwgbm9kZV9saXN0KTsKIAogCW5vZGUt PnNjYW5uZWRfcHJlY2VlZHNfaG9sZSA9IHByZXZfbm9kZS0+aG9sZV9mb2xsb3dzOwogCXByZXZf bm9kZS0+aG9sZV9mb2xsb3dzID0gMTsKIAlsaXN0X2RlbCgmbm9kZS0+bm9kZV9saXN0KTsKIAlu b2RlLT5ub2RlX2xpc3QucHJldiA9ICZwcmV2X25vZGUtPm5vZGVfbGlzdDsKLQlub2RlLT5ub2Rl X2xpc3QubmV4dCA9ICZtbS0+cHJldl9zY2FubmVkX25vZGUtPm5vZGVfbGlzdDsKLQltbS0+cHJl dl9zY2FubmVkX25vZGUgPSBub2RlOworCW5vZGUtPm5vZGVfbGlzdC5uZXh0ID0gJnNjYW4tPnBy ZXZfc2Nhbm5lZF9ub2RlLT5ub2RlX2xpc3Q7CisJc2Nhbi0+cHJldl9zY2FubmVkX25vZGUgPSBu b2RlOwogCiAJYWRqX3N0YXJ0ID0gaG9sZV9zdGFydCA9IGRybV9tbV9ob2xlX25vZGVfc3RhcnQo cHJldl9ub2RlKTsKIAlhZGpfZW5kID0gaG9sZV9lbmQgPSBkcm1fbW1faG9sZV9ub2RlX2VuZChw cmV2X25vZGUpOwogCi0JaWYgKG1tLT5zY2FuX2NoZWNrX3JhbmdlKSB7Ci0JCWlmIChhZGpfc3Rh cnQgPCBtbS0+c2Nhbl9zdGFydCkKLQkJCWFkal9zdGFydCA9IG1tLT5zY2FuX3N0YXJ0OwotCQlp ZiAoYWRqX2VuZCA+IG1tLT5zY2FuX2VuZCkKLQkJCWFkal9lbmQgPSBtbS0+c2Nhbl9lbmQ7CisJ aWYgKHNjYW4tPmNoZWNrX3JhbmdlKSB7CisJCWlmIChhZGpfc3RhcnQgPCBzY2FuLT5yYW5nZV9z dGFydCkKKwkJCWFkal9zdGFydCA9IHNjYW4tPnJhbmdlX3N0YXJ0OworCQlpZiAoYWRqX2VuZCA+ IHNjYW4tPnJhbmdlX2VuZCkKKwkJCWFkal9lbmQgPSBzY2FuLT5yYW5nZV9lbmQ7CiAJfQogCiAJ aWYgKG1tLT5jb2xvcl9hZGp1c3QpCi0JCW1tLT5jb2xvcl9hZGp1c3QocHJldl9ub2RlLCBtbS0+ c2Nhbl9jb2xvciwKLQkJCQkgJmFkal9zdGFydCwgJmFkal9lbmQpOworCQltbS0+Y29sb3JfYWRq dXN0KHByZXZfbm9kZSwgc2Nhbi0+Y29sb3IsICZhZGpfc3RhcnQsICZhZGpfZW5kKTsKIAogCWlm IChjaGVja19mcmVlX2hvbGUoYWRqX3N0YXJ0LCBhZGpfZW5kLAotCQkJICAgIG1tLT5zY2FuX3Np emUsIG1tLT5zY2FuX2FsaWdubWVudCkpIHsKLQkJbW0tPnNjYW5faGl0X3N0YXJ0ID0gaG9sZV9z dGFydDsKLQkJbW0tPnNjYW5faGl0X2VuZCA9IGhvbGVfZW5kOworCQkJICAgIHNjYW4tPnNpemUs IHNjYW4tPmFsaWdubWVudCkpIHsKKwkJc2Nhbi0+aGl0X3N0YXJ0ID0gaG9sZV9zdGFydDsKKwkJ c2Nhbi0+aGl0X2VuZCA9IGhvbGVfZW5kOwogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAKQEAgLTg1Niwy NCArODcxLDI1IEBAIEVYUE9SVF9TWU1CT0woZHJtX21tX3NjYW5fYWRkX2Jsb2NrKTsKICAqIFRy dWUgaWYgdGhpcyBibG9jayBzaG91bGQgYmUgZXZpY3RlZCwgZmFsc2Ugb3RoZXJ3aXNlLiBXaWxs IGFsd2F5cwogICogcmV0dXJuIGZhbHNlIHdoZW4gbm8gaG9sZSBoYXMgYmVlbiBmb3VuZC4KICAq LwotYm9vbCBkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soc3RydWN0IGRybV9tbV9ub2RlICpub2Rl KQorYm9vbCBkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soc3RydWN0IGRybV9tbV9zY2FuICpzY2Fu LAorCQkJICAgICAgc3RydWN0IGRybV9tbV9ub2RlICpub2RlKQogewotCXN0cnVjdCBkcm1fbW0g Km1tID0gbm9kZS0+bW07CiAJc3RydWN0IGRybV9tbV9ub2RlICpwcmV2X25vZGU7CiAKLQltbS0+ c2Nhbm5lZF9ibG9ja3MtLTsKLQorCURSTV9NTV9CVUdfT04obm9kZS0+bW0gIT0gc2Nhbi0+bW0p OwogCURSTV9NTV9CVUdfT04oIW5vZGUtPnNjYW5uZWRfYmxvY2spOwogCW5vZGUtPnNjYW5uZWRf YmxvY2sgPSAwOwogCi0JcHJldl9ub2RlID0gbGlzdF9lbnRyeShub2RlLT5ub2RlX2xpc3QucHJl diwgc3RydWN0IGRybV9tbV9ub2RlLAotCQkJICAgICAgIG5vZGVfbGlzdCk7CisJRFJNX01NX0JV R19PTighbm9kZS0+bW0tPnNjYW5fYWN0aXZlKTsKKwlub2RlLT5tbS0+c2Nhbl9hY3RpdmUtLTsK KworCXByZXZfbm9kZSA9IGxpc3RfcHJldl9lbnRyeShub2RlLCBub2RlX2xpc3QpOwogCiAJcHJl dl9ub2RlLT5ob2xlX2ZvbGxvd3MgPSBub2RlLT5zY2FubmVkX3ByZWNlZWRzX2hvbGU7CiAJbGlz dF9hZGQoJm5vZGUtPm5vZGVfbGlzdCwgJnByZXZfbm9kZS0+bm9kZV9saXN0KTsKIAotCSByZXR1 cm4gKGRybV9tbV9ob2xlX25vZGVfZW5kKG5vZGUpID4gbW0tPnNjYW5faGl0X3N0YXJ0ICYmCi0J CSBub2RlLT5zdGFydCA8IG1tLT5zY2FuX2hpdF9lbmQpOworCXJldHVybiAoZHJtX21tX2hvbGVf bm9kZV9lbmQobm9kZSkgPiBzY2FuLT5oaXRfc3RhcnQgJiYKKwkJbm9kZS0+c3RhcnQgPCBzY2Fu LT5oaXRfZW5kKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21tX3NjYW5fcmVtb3ZlX2Jsb2NrKTsK IApAQCAtODkwLDcgKzkwNiw3IEBAIHZvaWQgZHJtX21tX2luaXQoc3RydWN0IGRybV9tbSAqbW0s IHU2NCBzdGFydCwgdTY0IHNpemUpCiAJRFJNX01NX0JVR19PTihzdGFydCArIHNpemUgPD0gc3Rh cnQpOwogCiAJSU5JVF9MSVNUX0hFQUQoJm1tLT5ob2xlX3N0YWNrKTsKLQltbS0+c2Nhbm5lZF9i bG9ja3MgPSAwOworCW1tLT5zY2FuX2FjdGl2ZSA9IDA7CiAKIAkvKiBDbGV2ZXIgdHJpY2sgdG8g YXZvaWQgYSBzcGVjaWFsIGNhc2UgaW4gdGhlIGZyZWUgaG9sZSB0cmFja2luZy4gKi8KIAlJTklU X0xJU1RfSEVBRCgmbW0tPmhlYWRfbm9kZS5ub2RlX2xpc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2 L2V0bmF2aXZfbW11LmMKaW5kZXggMTY5YWM5NmU4ZjA4Li5mZTFlODg2ZGNhYmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfbW11LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9tbXUuYwpAQCAtMTEzLDYgKzExMyw3IEBAIHN0YXRpYyBp bnQgZXRuYXZpdl9pb21tdV9maW5kX2lvdmEoc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKIAog CXdoaWxlICgxKSB7CiAJCXN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqbSwgKm47CisJCXN0 cnVjdCBkcm1fbW1fc2NhbiBzY2FuOwogCQlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAJCWJvb2wg Zm91bmQ7CiAKQEAgLTEzNCw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfZmlu ZF9pb3ZhKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCiAJCX0KIAogCQkvKiBUcnkgdG8gcmV0 aXJlIHNvbWUgZW50cmllcyAqLwotCQlkcm1fbW1faW5pdF9zY2FuKCZtbXUtPm1tLCBzaXplLCAw LCAwKTsKKwkJZHJtX21tX3NjYW5faW5pdCgmc2NhbiwgJm1tdS0+bW0sIHNpemUsIDAsIDApOwog CiAJCWZvdW5kID0gMDsKIAkJSU5JVF9MSVNUX0hFQUQoJmxpc3QpOwpAQCAtMTUxLDcgKzE1Miw3 IEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9pb21tdV9maW5kX2lvdmEoc3RydWN0IGV0bmF2aXZfaW9t bXUgKm1tdSwKIAkJCQljb250aW51ZTsKIAogCQkJbGlzdF9hZGQoJmZyZWUtPnNjYW5fbm9kZSwg Jmxpc3QpOwotCQkJaWYgKGRybV9tbV9zY2FuX2FkZF9ibG9jaygmZnJlZS0+dnJhbV9ub2RlKSkg eworCQkJaWYgKGRybV9tbV9zY2FuX2FkZF9ibG9jaygmc2NhbiwgJmZyZWUtPnZyYW1fbm9kZSkp IHsKIAkJCQlmb3VuZCA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0xNzEsNyArMTcyLDcg QEAgc3RhdGljIGludCBldG5hdml2X2lvbW11X2ZpbmRfaW92YShzdHJ1Y3QgZXRuYXZpdl9pb21t dSAqbW11LAogCQkgKiBjYW4gbGVhdmUgdGhlIGJsb2NrIHBpbm5lZC4KIAkJICovCiAJCWxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShtLCBuLCAmbGlzdCwgc2Nhbl9ub2RlKQotCQkJaWYgKCFkcm1f bW1fc2Nhbl9yZW1vdmVfYmxvY2soJm0tPnZyYW1fbm9kZSkpCisJCQlpZiAoIWRybV9tbV9zY2Fu X3JlbW92ZV9ibG9jaygmc2NhbiwgJm0tPnZyYW1fbm9kZSkpCiAJCQkJbGlzdF9kZWxfaW5pdCgm bS0+c2Nhbl9ub2RlKTsKIAogCQkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXZpY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMK aW5kZXggNjQ1N2ZkMGMzM2E4Li42ZGIwZDczYzBhYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXZpY3QuYwpAQCAtNTEsNyArNTEsMTAgQEAgc3RhdGljIGJvb2wgZ2d0dF9pc19pZGxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogc3RhdGljIGJvb2wKLW1h cmtfZnJlZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdW5zaWduZWQgaW50IGZsYWdzLCBzdHJ1Y3Qg bGlzdF9oZWFkICp1bndpbmQpCittYXJrX2ZyZWUoc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAor CSAgc3RydWN0IGk5MTVfdm1hICp2bWEsCisJICB1bnNpZ25lZCBpbnQgZmxhZ3MsCisJICBzdHJ1 Y3QgbGlzdF9oZWFkICp1bndpbmQpCiB7CiAJaWYgKGk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEpKQog CQlyZXR1cm4gZmFsc2U7CkBAIC02Myw3ICs2Niw3IEBAIG1hcmtfZnJlZShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwgdW5zaWduZWQgaW50IGZsYWdzLCBzdHJ1Y3QgbGlzdF9oZWFkICp1bndpbmQpCiAJ CXJldHVybiBmYWxzZTsKIAogCWxpc3RfYWRkKCZ2bWEtPmV4ZWNfbGlzdCwgdW53aW5kKTsKLQly ZXR1cm4gZHJtX21tX3NjYW5fYWRkX2Jsb2NrKCZ2bWEtPm5vZGUpOworCXJldHVybiBkcm1fbW1f c2Nhbl9hZGRfYmxvY2soc2NhbiwgJnZtYS0+bm9kZSk7CiB9CiAKIC8qKgpAQCAtOTcsNiArMTAw LDcgQEAgaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAogCQkJIHVuc2lnbmVkIGZsYWdzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHZtLT5pOTE1OworCXN0cnVjdCBkcm1fbW1fc2NhbiBzY2FuOwogCXN0cnVjdCBs aXN0X2hlYWQgZXZpY3Rpb25fbGlzdDsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpwaGFzZXNbXSA9IHsK IAkJJnZtLT5pbmFjdGl2ZV9saXN0LApAQCAtMTIzLDExICsxMjcsMTIgQEAgaTkxNV9nZW1fZXZp Y3Rfc29tZXRoaW5nKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCSAqIG9iamVjdCBv biB0aGUgVEFJTC4KIAkgKi8KIAlpZiAoc3RhcnQgIT0gMCB8fCBlbmQgIT0gdm0tPnRvdGFsKSB7 Ci0JCWRybV9tbV9pbml0X3NjYW5fd2l0aF9yYW5nZSgmdm0tPm1tLCBtaW5fc2l6ZSwKKwkJZHJt X21tX3NjYW5faW5pdF93aXRoX3JhbmdlKCZzY2FuLCAmdm0tPm1tLCBtaW5fc2l6ZSwKIAkJCQkJ ICAgIGFsaWdubWVudCwgY2FjaGVfbGV2ZWwsCiAJCQkJCSAgICBzdGFydCwgZW5kKTsKIAl9IGVs c2UKLQkJZHJtX21tX2luaXRfc2Nhbigmdm0tPm1tLCBtaW5fc2l6ZSwgYWxpZ25tZW50LCBjYWNo ZV9sZXZlbCk7CisJCWRybV9tbV9zY2FuX2luaXQoJnNjYW4sICZ2bS0+bW0sIG1pbl9zaXplLAor CQkJCSBhbGlnbm1lbnQsIGNhY2hlX2xldmVsKTsKIAogCS8qIFJldGlyZSBiZWZvcmUgd2Ugc2Vh cmNoIHRoZSBhY3RpdmUgbGlzdC4gQWx0aG91Z2ggd2UgaGF2ZQogCSAqIHJlYXNvbmFibGUgYWNj dXJhY3kgaW4gb3VyIHJldGlyZW1lbnQgbGlzdHMsIHdlIG1heSBoYXZlCkBAIC0xNDQsMTMgKzE0 OSwxMyBAQCBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCiAJcGhhc2UgPSBwaGFzZXM7CiAJZG8gewogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZt YSwgKnBoYXNlLCB2bV9saW5rKQotCQkJaWYgKG1hcmtfZnJlZSh2bWEsIGZsYWdzLCAmZXZpY3Rp b25fbGlzdCkpCisJCQlpZiAobWFya19mcmVlKCZzY2FuLCB2bWEsIGZsYWdzLCAmZXZpY3Rpb25f bGlzdCkpCiAJCQkJZ290byBmb3VuZDsKIAl9IHdoaWxlICgqKytwaGFzZSk7CiAKIAkvKiBOb3Ro aW5nIGZvdW5kLCBjbGVhbiB1cCBhbmQgYmFpbCBvdXQhICovCiAJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHZtYSwgbmV4dCwgJmV2aWN0aW9uX2xpc3QsIGV4ZWNfbGlzdCkgewotCQlyZXQgPSBk cm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soJnZtYS0+bm9kZSk7CisJCXJldCA9IGRybV9tbV9zY2Fu X3JlbW92ZV9ibG9jaygmc2NhbiwgJnZtYS0+bm9kZSk7CiAJCUJVR19PTihyZXQpOwogCiAJCUlO SVRfTElTVF9IRUFEKCZ2bWEtPmV4ZWNfbGlzdCk7CkBAIC0xOTksNyArMjA0LDcgQEAgaTkxNV9n ZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCSAqIG9m IGFueSBvZiBvdXIgb2JqZWN0cywgdGh1cyBjb3JydXB0aW5nIHRoZSBsaXN0KS4KIAkgKi8KIAls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCBuZXh0LCAmZXZpY3Rpb25fbGlzdCwgZXhlY19s aXN0KSB7Ci0JCWlmIChkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soJnZtYS0+bm9kZSkpCisJCWlm IChkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soJnNjYW4sICZ2bWEtPm5vZGUpKQogCQkJX19pOTE1 X3ZtYV9waW4odm1hKTsKIAkJZWxzZQogCQkJbGlzdF9kZWxfaW5pdCgmdm1hLT5leGVjX2xpc3Qp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jIGIv ZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCmluZGV4IGUyZWQ5ZWZiMzYx Yy4uOTk3ZjJiYzkzYjliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rl c3QtZHJtX21tLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5j CkBAIC0xMTE0LDExICsxMTE0LDExIEBAIHN0YXRpYyBpbnQgaWd0X2FsaWduNjQodm9pZCAqaWdu b3JlZCkKIAlyZXR1cm4gaWd0X2FsaWduX3BvdCg2NCk7CiB9CiAKLXN0YXRpYyB2b2lkIHNob3df c2Nhbihjb25zdCBzdHJ1Y3QgZHJtX21tICpzY2FuKQorc3RhdGljIHZvaWQgc2hvd19zY2FuKGNv bnN0IHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbikKIHsKIAlwcl9pbmZvKCJzY2FuOiBoaXQgWyVs bHgsICVsbHhdLCBzaXplPSVsbGQsIGFsaWduPSVsbGQsIGNvbG9yPSVsZFxuIiwKLQkJc2Nhbi0+ c2Nhbl9oaXRfc3RhcnQsIHNjYW4tPnNjYW5faGl0X2VuZCwKLQkJc2Nhbi0+c2Nhbl9zaXplLCBz Y2FuLT5zY2FuX2FsaWdubWVudCwgc2Nhbi0+c2Nhbl9jb2xvcik7CisJCXNjYW4tPmhpdF9zdGFy dCwgc2Nhbi0+aGl0X2VuZCwKKwkJc2Nhbi0+c2l6ZSwgc2Nhbi0+YWxpZ25tZW50LCBzY2FuLT5j b2xvcik7CiB9CiAKIHN0YXRpYyB2b2lkIHNob3dfaG9sZXMoY29uc3Qgc3RydWN0IGRybV9tbSAq bW0sIGludCBjb3VudCkKQEAgLTExNTgsNyArMTE1OCw3IEBAIHN0cnVjdCBldmljdF9ub2RlIHsK IAlzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CiB9OwogCi1zdGF0aWMgYm9vbCBldmljdF9ub2Rlcyhz dHJ1Y3QgZHJtX21tICptbSwKK3N0YXRpYyBib29sIGV2aWN0X25vZGVzKHN0cnVjdCBkcm1fbW1f c2NhbiAqc2NhbiwKIAkJCXN0cnVjdCBldmljdF9ub2RlICpub2RlcywKIAkJCXVuc2lnbmVkIGlu dCAqb3JkZXIsCiAJCQl1bnNpZ25lZCBpbnQgY291bnQsCkBAIC0xMTcwLDE4ICsxMTcwLDE2IEBA IHN0YXRpYyBib29sIGV2aWN0X25vZGVzKHN0cnVjdCBkcm1fbW0gKm1tLAogCWZvciAoaSA9IDA7 IGkgPCBjb3VudDsgaSsrKSB7CiAJCWUgPSAmbm9kZXNbb3JkZXIgPyBvcmRlcltpXSA6IGldOwog CQlsaXN0X2FkZCgmZS0+bGluaywgZXZpY3RfbGlzdCk7Ci0JCWlmIChkcm1fbW1fc2Nhbl9hZGRf YmxvY2soJmUtPm5vZGUpKQorCQlpZiAoZHJtX21tX3NjYW5fYWRkX2Jsb2NrKHNjYW4sICZlLT5u b2RlKSkKIAkJCWJyZWFrOwogCX0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZSwgZW4sIGV2 aWN0X2xpc3QsIGxpbmspIHsKLQkJaWYgKCFkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soJmUtPm5v ZGUpKQorCQlpZiAoIWRybV9tbV9zY2FuX3JlbW92ZV9ibG9jayhzY2FuLCAmZS0+bm9kZSkpCiAJ CQlsaXN0X2RlbCgmZS0+bGluayk7CiAJfQogCWlmIChsaXN0X2VtcHR5KGV2aWN0X2xpc3QpKSB7 CiAJCXByX2VycigiRmFpbGVkIHRvIGZpbmQgZXZpY3Rpb246IHNpemU9JWxsZCBbYXZhaWw9JWRd LCBhbGlnbj0lbGxkIChjb2xvcj0lbHUpXG4iLAotCQkgICAgICAgbW0tPnNjYW5fc2l6ZSwgY291 bnQsCi0JCSAgICAgICBtbS0+c2Nhbl9hbGlnbm1lbnQsCi0JCSAgICAgICBtbS0+c2Nhbl9jb2xv cik7CisJCSAgICAgICBzY2FuLT5zaXplLCBjb3VudCwgc2Nhbi0+YWxpZ25tZW50LCBzY2FuLT5j b2xvcik7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTExOTUsMTkgKzExOTMsMjAgQEAgc3Rh dGljIGJvb2wgZXZpY3Rfbm90aGluZyhzdHJ1Y3QgZHJtX21tICptbSwKIAkJCSAgdW5zaWduZWQg aW50IHRvdGFsX3NpemUsCiAJCQkgIHN0cnVjdCBldmljdF9ub2RlICpub2RlcykKIHsKKwlzdHJ1 Y3QgZHJtX21tX3NjYW4gc2NhbjsKIAlMSVNUX0hFQUQoZXZpY3RfbGlzdCk7CiAJc3RydWN0IGV2 aWN0X25vZGUgKmU7CiAJc3RydWN0IGRybV9tbV9ub2RlICpub2RlOwogCXVuc2lnbmVkIGludCBu OwogCi0JZHJtX21tX2luaXRfc2NhbihtbSwgMSwgMCwgMCk7CisJZHJtX21tX3NjYW5faW5pdCgm c2NhbiwgbW0sIDEsIDAsIDApOwogCWZvciAobiA9IDA7IG4gPCB0b3RhbF9zaXplOyBuKyspIHsK IAkJZSA9ICZub2Rlc1tuXTsKIAkJbGlzdF9hZGQoJmUtPmxpbmssICZldmljdF9saXN0KTsKLQkJ ZHJtX21tX3NjYW5fYWRkX2Jsb2NrKCZlLT5ub2RlKTsKKwkJZHJtX21tX3NjYW5fYWRkX2Jsb2Nr KCZzY2FuLCAmZS0+bm9kZSk7CiAJfQogCWxpc3RfZm9yX2VhY2hfZW50cnkoZSwgJmV2aWN0X2xp c3QsIGxpbmspCi0JCWRybV9tbV9zY2FuX3JlbW92ZV9ibG9jaygmZS0+bm9kZSk7CisJCWRybV9t bV9zY2FuX3JlbW92ZV9ibG9jaygmc2NhbiwgJmUtPm5vZGUpOwogCiAJZm9yIChuID0gMDsgbiA8 IHRvdGFsX3NpemU7IG4rKykgewogCQllID0gJm5vZGVzW25dOwpAQCAtMTI0MSwxOSArMTI0MCwy MSBAQCBzdGF0aWMgYm9vbCBldmljdF9ldmVyeXRoaW5nKHN0cnVjdCBkcm1fbW0gKm1tLAogCQkJ ICAgICB1bnNpZ25lZCBpbnQgdG90YWxfc2l6ZSwKIAkJCSAgICAgc3RydWN0IGV2aWN0X25vZGUg Km5vZGVzKQogeworCXN0cnVjdCBkcm1fbW1fc2NhbiBzY2FuOwogCUxJU1RfSEVBRChldmljdF9s aXN0KTsKIAlzdHJ1Y3QgZXZpY3Rfbm9kZSAqZTsKIAl1bnNpZ25lZCBpbnQgbjsKIAlpbnQgZXJy OwogCi0JZHJtX21tX2luaXRfc2NhbihtbSwgdG90YWxfc2l6ZSwgMCwgMCk7CisJZHJtX21tX3Nj YW5faW5pdCgmc2NhbiwgbW0sIHRvdGFsX3NpemUsIDAsIDApOwogCWZvciAobiA9IDA7IG4gPCB0 b3RhbF9zaXplOyBuKyspIHsKIAkJZSA9ICZub2Rlc1tuXTsKIAkJbGlzdF9hZGQoJmUtPmxpbmss ICZldmljdF9saXN0KTsKLQkJZHJtX21tX3NjYW5fYWRkX2Jsb2NrKCZlLT5ub2RlKTsKKwkJaWYg KGRybV9tbV9zY2FuX2FkZF9ibG9jaygmc2NhbiwgJmUtPm5vZGUpKQorCQkJYnJlYWs7CiAJfQog CWxpc3RfZm9yX2VhY2hfZW50cnkoZSwgJmV2aWN0X2xpc3QsIGxpbmspIHsKLQkJaWYgKCFkcm1f bW1fc2Nhbl9yZW1vdmVfYmxvY2soJmUtPm5vZGUpKSB7CisJCWlmICghZHJtX21tX3NjYW5fcmVt b3ZlX2Jsb2NrKCZzY2FuLCAmZS0+bm9kZSkpIHsKIAkJCXByX2VycigiTm9kZSAlbGxkIG5vdCBt YXJrZWQgZm9yIGV2aWN0aW9uIVxuIiwKIAkJCSAgICAgICBlLT5ub2RlLnN0YXJ0KTsKIAkJCWxp c3RfZGVsKCZlLT5saW5rKTsKQEAgLTEyODcsMTUgKzEyODgsMTYgQEAgc3RhdGljIGludCBldmlj dF9zb21ldGhpbmcoc3RydWN0IGRybV9tbSAqbW0sCiAJCQkgICB1bnNpZ25lZCBpbnQgYWxpZ25t ZW50LAogCQkJICAgY29uc3Qgc3RydWN0IGluc2VydF9tb2RlICptb2RlKQogeworCXN0cnVjdCBk cm1fbW1fc2NhbiBzY2FuOwogCUxJU1RfSEVBRChldmljdF9saXN0KTsKIAlzdHJ1Y3QgZXZpY3Rf bm9kZSAqZTsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgdG1wOwogCWludCBlcnI7CiAKLQlkcm1fbW1f aW5pdF9zY2FuX3dpdGhfcmFuZ2UobW0sCisJZHJtX21tX3NjYW5faW5pdF93aXRoX3JhbmdlKCZz Y2FuLCBtbSwKIAkJCQkgICAgc2l6ZSwgYWxpZ25tZW50LCAwLAogCQkJCSAgICByYW5nZV9zdGFy dCwgcmFuZ2VfZW5kKTsKLQlpZiAoIWV2aWN0X25vZGVzKG1tLAorCWlmICghZXZpY3Rfbm9kZXMo JnNjYW4sCiAJCQkgbm9kZXMsIG9yZGVyLCBjb3VudCwKIAkJCSAmZXZpY3RfbGlzdCkpCiAJCXJl dHVybiAtRUlOVkFMOwpAQCAtMTMwNyw3ICsxMzA5LDcgQEAgc3RhdGljIGludCBldmljdF9zb21l dGhpbmcoc3RydWN0IGRybV9tbSAqbW0sCiAJaWYgKGVycikgewogCQlwcl9lcnIoIkZhaWxlZCB0 byBpbnNlcnQgaW50byBldmljdGlvbiBob2xlOiBzaXplPSVkLCBhbGlnbj0lZFxuIiwKIAkJICAg ICAgIHNpemUsIGFsaWdubWVudCk7Ci0JCXNob3dfc2NhbihtbSk7CisJCXNob3dfc2Nhbigmc2Nh bik7CiAJCXNob3dfaG9sZXMobW0sIDMpOwogCQlyZXR1cm4gZXJyOwogCX0KQEAgLTE4NjQsMTUg KzE4NjYsMTYgQEAgc3RhdGljIGludCBldmljdF9jb2xvcihzdHJ1Y3QgZHJtX21tICptbSwKIAkJ ICAgICAgIHVuc2lnbmVkIGxvbmcgY29sb3IsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW5zZXJ0 X21vZGUgKm1vZGUpCiB7CisJc3RydWN0IGRybV9tbV9zY2FuIHNjYW47CiAJTElTVF9IRUFEKGV2 aWN0X2xpc3QpOwogCXN0cnVjdCBldmljdF9ub2RlICplOwogCXN0cnVjdCBkcm1fbW1fbm9kZSB0 bXA7CiAJaW50IGVycjsKIAotCWRybV9tbV9pbml0X3NjYW5fd2l0aF9yYW5nZShtbSwKKwlkcm1f bW1fc2Nhbl9pbml0X3dpdGhfcmFuZ2UoJnNjYW4sIG1tLAogCQkJCSAgICBzaXplLCBhbGlnbm1l bnQsIGNvbG9yLAogCQkJCSAgICByYW5nZV9zdGFydCwgcmFuZ2VfZW5kKTsKLQlpZiAoIWV2aWN0 X25vZGVzKG1tLAorCWlmICghZXZpY3Rfbm9kZXMoJnNjYW4sCiAJCQkgbm9kZXMsIG9yZGVyLCBj b3VudCwKIAkJCSAmZXZpY3RfbGlzdCkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTg4NCw3ICsx ODg3LDcgQEAgc3RhdGljIGludCBldmljdF9jb2xvcihzdHJ1Y3QgZHJtX21tICptbSwKIAlpZiAo ZXJyKSB7CiAJCXByX2VycigiRmFpbGVkIHRvIGluc2VydCBpbnRvIGV2aWN0aW9uIGhvbGU6IHNp emU9JWQsIGFsaWduPSVkLCBjb2xvcj0lbHUsIGVycj0lZFxuIiwKIAkJICAgICAgIHNpemUsIGFs aWdubWVudCwgY29sb3IsIGVycik7Ci0JCXNob3dfc2NhbihtbSk7CisJCXNob3dfc2Nhbigmc2Nh bik7CiAJCXNob3dfaG9sZXMobW0sIDMpOwogCQlyZXR1cm4gZXJyOwogCX0KZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9tbS5oIGIvaW5jbHVkZS9kcm0vZHJtX21tLmgKaW5kZXggNzJlMGMw ZGRmOGQwLi5mY2FkNzE4YzVmYjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9tbS5oCisr KyBiL2luY2x1ZGUvZHJtL2RybV9tbS5oCkBAIC05OCwyMCArOTgsMjkgQEAgc3RydWN0IGRybV9t bSB7CiAJLyogS2VlcCBhbiBpbnRlcnZhbF90cmVlIGZvciBmYXN0IGxvb2t1cCBvZiBkcm1fbW1f bm9kZXMgYnkgYWRkcmVzcy4gKi8KIAlzdHJ1Y3QgcmJfcm9vdCBpbnRlcnZhbF90cmVlOwogCi0J dW5zaWduZWQgaW50IHNjYW5fY2hlY2tfcmFuZ2UgOiAxOwotCXVuc2lnbmVkIGludCBzY2FubmVk X2Jsb2NrczsKLQl1bnNpZ25lZCBsb25nIHNjYW5fY29sb3I7Ci0JdTY0IHNjYW5fYWxpZ25tZW50 OwotCXU2NCBzY2FuX3NpemU7Ci0JdTY0IHNjYW5faGl0X3N0YXJ0OwotCXU2NCBzY2FuX2hpdF9l bmQ7Ci0JdTY0IHNjYW5fc3RhcnQ7Ci0JdTY0IHNjYW5fZW5kOwotCXN0cnVjdCBkcm1fbW1fbm9k ZSAqcHJldl9zY2FubmVkX25vZGU7Ci0KIAl2b2lkICgqY29sb3JfYWRqdXN0KShjb25zdCBzdHJ1 Y3QgZHJtX21tX25vZGUgKm5vZGUsCiAJCQkgICAgIHVuc2lnbmVkIGxvbmcgY29sb3IsCiAJCQkg ICAgIHU2NCAqc3RhcnQsIHU2NCAqZW5kKTsKKworCXVuc2lnbmVkIGxvbmcgc2Nhbl9hY3RpdmU7 Cit9OworCitzdHJ1Y3QgZHJtX21tX3NjYW4geworCXN0cnVjdCBkcm1fbW0gKm1tOworCisJdTY0 IHNpemU7CisJdTY0IGFsaWdubWVudDsKKworCXU2NCByYW5nZV9zdGFydDsKKwl1NjQgcmFuZ2Vf ZW5kOworCisJdTY0IGhpdF9zdGFydDsKKwl1NjQgaGl0X2VuZDsKKworCXN0cnVjdCBkcm1fbW1f bm9kZSAqcHJldl9zY2FubmVkX25vZGU7CisKKwl1bnNpZ25lZCBsb25nIGNvbG9yOworCWJvb2wg Y2hlY2tfcmFuZ2UgOiAxOwogfTsKIAogLyoqCkBAIC0zNzgsMTggKzM4NywyMiBAQCBfX2RybV9t bV9pbnRlcnZhbF9maXJzdChjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwgdTY0IHN0YXJ0LCB1NjQg bGFzdCk7CiAJICAgICBub2RlX18gJiYgbm9kZV9fLT5zdGFydCA8IChlbmRfXyk7CQkJCVwKIAkg ICAgIG5vZGVfXyA9IGxpc3RfbmV4dF9lbnRyeShub2RlX18sIG5vZGVfbGlzdCkpCiAKLXZvaWQg ZHJtX21tX2luaXRfc2NhbihzdHJ1Y3QgZHJtX21tICptbSwKK3ZvaWQgZHJtX21tX3NjYW5faW5p dChzdHJ1Y3QgZHJtX21tX3NjYW4gKnNjYW4sCisJCSAgICAgIHN0cnVjdCBkcm1fbW0gKm1tLAog CQkgICAgICB1NjQgc2l6ZSwKIAkJICAgICAgdTY0IGFsaWdubWVudCwKIAkJICAgICAgdW5zaWdu ZWQgbG9uZyBjb2xvcik7Ci12b2lkIGRybV9tbV9pbml0X3NjYW5fd2l0aF9yYW5nZShzdHJ1Y3Qg ZHJtX21tICptbSwKK3ZvaWQgZHJtX21tX3NjYW5faW5pdF93aXRoX3JhbmdlKHN0cnVjdCBkcm1f bW1fc2NhbiAqc2NhbiwKKwkJCQkgc3RydWN0IGRybV9tbSAqbW0sCiAJCQkJIHU2NCBzaXplLAog CQkJCSB1NjQgYWxpZ25tZW50LAogCQkJCSB1bnNpZ25lZCBsb25nIGNvbG9yLAogCQkJCSB1NjQg c3RhcnQsCiAJCQkJIHU2NCBlbmQpOwotYm9vbCBkcm1fbW1fc2Nhbl9hZGRfYmxvY2soc3RydWN0 IGRybV9tbV9ub2RlICpub2RlKTsKLWJvb2wgZHJtX21tX3NjYW5fcmVtb3ZlX2Jsb2NrKHN0cnVj dCBkcm1fbW1fbm9kZSAqbm9kZSk7Citib29sIGRybV9tbV9zY2FuX2FkZF9ibG9jayhzdHJ1Y3Qg ZHJtX21tX3NjYW4gKnNjYW4sCisJCQkgICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpOworYm9v bCBkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAorCQkJ ICAgICAgc3RydWN0IGRybV9tbV9ub2RlICpub2RlKTsKIAogdm9pZCBkcm1fbW1fZGVidWdfdGFi bGUoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0sIGNvbnN0IGNoYXIgKnByZWZpeCk7CiAjaWZkZWYg Q09ORklHX0RFQlVHX0ZTCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=