From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH] drm: Move ->get_scanout_position() to struct drm_crtc_funcs Date: Tue, 16 Dec 2014 18:00:14 +0100 Message-ID: <1418749214-17433-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, Ben Skeggs , Alex Deucher , Daniel Vetter , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCk5vbmUgb2YgdGhlIGRy aXZlcnMgdXNlIHRoaXMgaW4gbGVnYWN5IG1vZGUsIHNvIGl0IGNhbiBiZSBjb252ZXJ0ZWQgdG8K dXNlIHN0cnVjdCBkcm1fY3J0YyAqIGRpcmVjdGx5LiBXaGlsZSBhdCBpdCwgYWxzbyBtYWtlIHRo ZSBzb2xlIHVzZXIgb2YKdGhlIGNhbGxiYWNrLCBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9z Y2Fub3V0cG9zKCksIHBhc3MgdGhyb3VnaCB0aGUKQ1JUQyBkaXJlY3RseS4KCkNjOiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+ CkNjOiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+CkNjOiBDaHJpc3Rp YW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IFRoaWVy cnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQpOb3RlOiBUaGlzIGlzIGNvbXBpbGUt dGVzdGVkIG9ubHkuIEl0IGlzIGEgc3RyYWlnaHRmb3J3YXJkIGNvbnZlcnNpb24gc28KSSB3b3Vs ZG4ndCBleHBlY3QgYW55IGZhbGxvdXQsIGJ1dCBpdCdkIGNlcnRhaW5seSBiZSBiZXN0IGlmIHRo aXMgY2FuIGJlCnRlc3RlZCBvbiBhbGwgdGhyZWUgZHJpdmVycy4KCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2lycS5jICAgICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgIHwgMTUgKysrKystLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCAgMSArCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICB8ICAzICsrCiBkcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9kaXNwbnYwNC9jcnRjLmMgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfZGlzcGxheS5jIHwgMjUgKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmggfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfZHJtLmMgICAgIHwgIDEgLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnY1MF9kaXNwbGF5LmMgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k aXNwbGF5LmMgICB8IDM5ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2Rydi5jICAgICAgIHwgIDEgLQogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fa21zLmMgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fbW9kZS5oICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcG0u YyAgICAgICAgfCAgNCArKy0KIGluY2x1ZGUvZHJtL2RybVAuaCAgICAgICAgICAgICAgICAgICAg ICAgIHwgNDcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9kcm0vZHJt X2NydGMuaCAgICAgICAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMTYgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDEyMSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9pcnEuYwppbmRleCAzN2I1MzZjNTdjZDIuLjE4ZjFjY2FkN2VlMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ly cS5jCkBAIC0xNjEsMTQgKzE2MSwxNCBAQCBFWFBPUlRfU1lNQk9MKGRybV9jYWxjX3RpbWVzdGFt cGluZ19jb25zdGFudHMpOwogICogRFJNX1ZCTEFOS1RJTUVfSU5WQkwgLSBUaW1lc3RhbXAgdGFr ZW4gd2hpbGUgc2Nhbm91dCB3YXMgaW4gdmJsYW5rIGludGVydmFsLgogICoKICAqLwotaW50IGRy bV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRl diwKLQkJCQkJICB1bnNpZ25lZCBpbnQgcGlwZSwKK2ludCBkcm1fY2FsY192Ymx0aW1lc3RhbXBf ZnJvbV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJICBpbnQgKm1heF9l cnJvciwKIAkJCQkJICBzdHJ1Y3QgdGltZXZhbCAqdmJsYW5rX3RpbWUsCiAJCQkJCSAgdW5zaWdu ZWQgZmxhZ3MsCiAJCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jcnRjICpyZWZjcnRjLAogCQkJCQkg IGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogeworCWNvbnN0IHN0cnVjdCBk cm1fY3J0Y19mdW5jcyAqZnVuY3MgPSBjcnRjLT5mdW5jczsKIAlzdHJ1Y3QgdGltZXZhbCB0dl9l dGltZTsKIAlrdGltZV90IHN0aW1lLCBldGltZTsKIAlpbnQgdmJsX3N0YXR1czsKQEAgLTE3Niwx NiArMTc2LDkgQEAgaW50IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3Moc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnQgZnJhbWVkdXJfbnMsIGxpbmVkdXJfbnMsIHBpeGVs ZHVyX25zLCBkZWx0YV9ucywgZHVyYXRpb25fbnM7CiAJYm9vbCBpbnZibDsKIAotCWlmIChwaXBl ID49IGRldi0+bnVtX2NydGNzKSB7Ci0JCURSTV9FUlJPUigiSW52YWxpZCBjcnRjICV1XG4iLCBw aXBlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCiAJLyogU2Nhbm91dCBwb3NpdGlvbiBxdWVy eSBub3Qgc3VwcG9ydGVkPyBTaG91bGQgbm90IGhhcHBlbi4gKi8KLQlpZiAoIWRldi0+ZHJpdmVy LT5nZXRfc2Nhbm91dF9wb3NpdGlvbikgewotCQlEUk1fRVJST1IoIkNhbGxlZCBmcm9tIGRyaXZl ciB3L28gZ2V0X3NjYW5vdXRfcG9zaXRpb24oKSE/XG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQor CWlmIChXQVJOX09OKGZ1bmNzLT5nZXRfc2Nhbm91dF9wb3NpdGlvbiA9PSBOVUxMKSkKKwkJcmV0 dXJuIC1FTk9TWVM7CiAKIAkvKiBEdXJhdGlvbnMgb2YgZnJhbWVzLCBsaW5lcywgcGl4ZWxzIGlu IG5hbm9zZWNvbmRzLiAqLwogCWZyYW1lZHVyX25zID0gcmVmY3J0Yy0+ZnJhbWVkdXJfbnM7CkBA IC0xOTYsNyArMTg5LDggQEAgaW50IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRw b3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKiBIYXBwZW5zIGR1cmluZyBpbml0aWFsIG1v ZGVzZXR0aW5nIG9mIGEgY3J0Yy4KIAkgKi8KIAlpZiAoZnJhbWVkdXJfbnMgPT0gMCkgewotCQlE Uk1fREVCVUcoImNydGMgJXU6IE5vb3AgZHVlIHRvIHVuaW5pdGlhbGl6ZWQgbW9kZS5cbiIsIHBp cGUpOworCQlEUk1fREVCVUcoImNydGMgJXg6IE5vb3AgZHVlIHRvIHVuaW5pdGlhbGl6ZWQgbW9k ZS5cbiIsCisJCQkgIGNydGMtPmJhc2UuaWQpOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9CiAKQEAg LTIxMiwxMyArMjA2LDEzIEBAIGludCBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0 cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAqIEdldCB2ZXJ0aWNhbCBhbmQgaG9yaXpv bnRhbCBzY2Fub3V0IHBvc2l0aW9uIHZwb3MsIGhwb3MsCiAJCSAqIGFuZCBib3VuZGluZyB0aW1l c3RhbXBzIHN0aW1lLCBldGltZSwgcHJlL3Bvc3QgcXVlcnkuCiAJCSAqLwotCQl2Ymxfc3RhdHVz ID0gZGV2LT5kcml2ZXItPmdldF9zY2Fub3V0X3Bvc2l0aW9uKGRldiwgcGlwZSwgZmxhZ3MsICZ2 cG9zLAotCQkJCQkJCSAgICAgICAmaHBvcywgJnN0aW1lLCAmZXRpbWUpOworCQl2Ymxfc3RhdHVz ID0gZnVuY3MtPmdldF9zY2Fub3V0X3Bvc2l0aW9uKGNydGMsIGZsYWdzLCAmdnBvcywKKwkJCQkJ CQkgJmhwb3MsICZzdGltZSwgJmV0aW1lKTsKIAogCQkvKiBSZXR1cm4gYXMgbm8tb3AgaWYgc2Nh bm91dCBxdWVyeSB1bnN1cHBvcnRlZCBvciBmYWlsZWQuICovCiAJCWlmICghKHZibF9zdGF0dXMg JiBEUk1fU0NBTk9VVFBPU19WQUxJRCkpIHsKLQkJCURSTV9ERUJVRygiY3J0YyAldSA6IHNjYW5v dXRwb3MgcXVlcnkgZmFpbGVkIFslZF0uXG4iLAotCQkJCSAgcGlwZSwgdmJsX3N0YXR1cyk7CisJ CQlEUk1fREVCVUcoImNydGMgJXg6IHNjYW5vdXRwb3MgcXVlcnkgZmFpbGVkIFslZF0uXG4iLAor CQkJCSAgY3J0Yy0+YmFzZS5pZCwgdmJsX3N0YXR1cyk7CiAJCQlyZXR1cm4gLUVJTzsKIAkJfQog CkBAIC0yMzIsOCArMjI2LDggQEAgaW50IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5v dXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCS8qIE5vaXN5IHN5c3RlbSB0aW1pbmc/ ICovCiAJaWYgKGkgPT0gRFJNX1RJTUVTVEFNUF9NQVhSRVRSSUVTKSB7Ci0JCURSTV9ERUJVRygi Y3J0YyAldTogTm9pc3kgdGltZXN0YW1wICVkIHVzID4gJWQgdXMgWyVkIHJlcHNdLlxuIiwKLQkJ CSAgcGlwZSwgZHVyYXRpb25fbnMvMTAwMCwgKm1heF9lcnJvci8xMDAwLCBpKTsKKwkJRFJNX0RF QlVHKCJjcnRjICV4OiBOb2lzeSB0aW1lc3RhbXAgJWQgdXMgPiAlZCB1cyBbJWQgcmVwc10uXG4i LAorCQkJICBjcnRjLT5iYXNlLmlkLCBkdXJhdGlvbl9ucy8xMDAwLCAqbWF4X2Vycm9yLzEwMDAs IGkpOwogCX0KIAogCS8qIFJldHVybiB1cHBlciBib3VuZCBvZiB0aW1lc3RhbXAgcHJlY2lzaW9u IGVycm9yLiAqLwpAQCAtMjY2LDggKzI2MCw4IEBAIGludCBkcm1fY2FsY192Ymx0aW1lc3RhbXBf ZnJvbV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWV0aW1lID0ga3RpbWVf c3ViX25zKGV0aW1lLCBkZWx0YV9ucyk7CiAJKnZibGFua190aW1lID0ga3RpbWVfdG9fdGltZXZh bChldGltZSk7CiAKLQlEUk1fREVCVUcoImNydGMgJXUgOiB2ICVkIHAoJWQsJWQpQCAlbGQuJWxk IC0+ICVsZC4lbGQgW2UgJWQgdXMsICVkIHJlcF1cbiIsCi0JCSAgcGlwZSwgKGludCl2Ymxfc3Rh dHVzLCBocG9zLCB2cG9zLAorCURSTV9ERUJVRygiY3J0YyAleDogdiAlZCBwKCVkLCVkKUAgJWxk LiVsZCAtPiAlbGQuJWxkIFtlICVkIHVzLCAlZCByZXBdXG4iLAorCQkgIGNydGMtPmJhc2UuaWQs IChpbnQpdmJsX3N0YXR1cywgaHBvcywgdnBvcywKIAkJICAobG9uZyl0dl9ldGltZS50dl9zZWMs IChsb25nKXR2X2V0aW1lLnR2X3VzZWMsCiAJCSAgKGxvbmcpdmJsYW5rX3RpbWUtPnR2X3NlYywg KGxvbmcpdmJsYW5rX3RpbWUtPnR2X3VzZWMsCiAJCSAgZHVyYXRpb25fbnMvMTAwMCwgaSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA5OTZjMjkzMWM0OTkuLmJjNmRjNTFhYmU5NSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC02NjIsMTQgKzY2MiwxNSBAQCBzdGF0aWMgaW50IF9f aW50ZWxfZ2V0X2NydGNfc2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJcmV0dXJu IChwb3NpdGlvbiArIGNydGMtPnNjYW5saW5lX29mZnNldCkgJSB2dG90YWw7CiB9CiAKLXN0YXRp YyBpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBwaXBlLAotCQkJCSAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsIGludCAqdnBvcywgaW50ICpocG9z LAotCQkJCSAgICBrdGltZV90ICpzdGltZSwga3RpbWVfdCAqZXRpbWUpCitpbnQgaTkxNV9nZXRf Y3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IGZsYWdz LAorCQkJICAgICBpbnQgKnZwb3MsIGludCAqaHBvcywga3RpbWVfdCAqc3RpbWUsCisJCQkgICAg IGt0aW1lX3QgKmV0aW1lKQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+cGlwZV90b19jcnRjX21hcHBpbmdb cGlwZV07CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmludGVsX2NydGMt PmNvbmZpZy5hZGp1c3RlZF9tb2RlOworCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKIAlpbnQgcG9zaXRpb247CiAJaW50IHZibF9zdGFydCwgdmJsX2VuZCwgaHN5bmNfc3RhcnQs IGh0b3RhbCwgdnRvdGFsOwogCWJvb2wgaW5fdmJsID0gdHJ1ZTsKQEAgLTgyNCw3ICs4MjUsNyBA QCBzdGF0aWMgaW50IGk5MTVfZ2V0X3ZibGFua190aW1lc3RhbXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IHBpcGUsCiAJfQogCiAJLyogSGVscGVyIHJvdXRpbmUgaW4gRFJNIGNvcmUgZG9l cyBhbGwgdGhlIHdvcms6ICovCi0JcmV0dXJuIGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3Nj YW5vdXRwb3MoZGV2LCBwaXBlLCBtYXhfZXJyb3IsCisJcmV0dXJuIGRybV9jYWxjX3ZibHRpbWVz dGFtcF9mcm9tX3NjYW5vdXRwb3MoY3J0YywgbWF4X2Vycm9yLAogCQkJCQkJICAgICB2Ymxhbmtf dGltZSwgZmxhZ3MsCiAJCQkJCQkgICAgIGNydGMsCiAJCQkJCQkgICAgICZ0b19pbnRlbF9jcnRj KGNydGMpLT5jb25maWcuYWRqdXN0ZWRfbW9kZSk7CkBAIC00MzYwLDEwICs0MzYxLDggQEAgdm9p ZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYg KCFJU19HRU4yKGRldl9wcml2KSkKIAkJZGV2LT52YmxhbmtfZGlzYWJsZV9pbW1lZGlhdGUgPSB0 cnVlOwogCi0JaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkp IHsKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkKIAkJ ZGV2LT5kcml2ZXItPmdldF92YmxhbmtfdGltZXN0YW1wID0gaTkxNV9nZXRfdmJsYW5rX3RpbWVz dGFtcDsKLQkJZGV2LT5kcml2ZXItPmdldF9zY2Fub3V0X3Bvc2l0aW9uID0gaTkxNV9nZXRfY3J0 Y19zY2Fub3V0cG9zOwotCX0KIAogCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQlk ZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBjaGVycnl2aWV3X2lycV9oYW5kbGVyOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDUxODgxNWRmNTFiZC4uZTRlMTExOWU2MDMx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMTY2MCw2ICsxMTY2MCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaW50ZWxfY3J0Y19mdW5jcyA9 IHsKIAkuc2V0X2NvbmZpZyA9IGludGVsX2NydGNfc2V0X2NvbmZpZywKIAkuZGVzdHJveSA9IGlu dGVsX2NydGNfZGVzdHJveSwKIAkucGFnZV9mbGlwID0gaW50ZWxfY3J0Y19wYWdlX2ZsaXAsCisJ LmdldF9zY2Fub3V0X3Bvc2l0aW9uID0gaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zLAogfTsKIAog c3RhdGljIGJvb2wgaWJ4X3BjaF9kcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDI1ZmRiYjE2ZDRl MC4uNDIxN2ZhZWI3NWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtODA1LDYgKzgw NSw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9pcnFzX2VuYWJsZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiBkZXZfcHJpdi0+cG0uaXJxc19lbmFibGVk OwogfQogCitpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywgdW5zaWduZWQgaW50IGZsYWdzLAorCQkJICAgICBpbnQgKnZwb3MsIGludCAqaHBvcywga3Rp bWVfdCAqc3RpbWUsCisJCQkgICAgIGt0aW1lX3QgKmV0aW1lKTsKIGludCBpbnRlbF9nZXRfY3J0 Y19zY2FubGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiB2b2lkIGdlbjhfaXJxX3Bvd2Vy X3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jCmluZGV4IDM4NDAyYWRlNjgzNS4u OTA3MWZmOTU4MGQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYw NC9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jCkBA IC0xMDg5LDYgKzEwODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIG52 MDRfY3J0Y19mdW5jcyA9IHsKIAkuc2V0X2NvbmZpZyA9IG5vdXZlYXVfY3J0Y19zZXRfY29uZmln LAogCS5wYWdlX2ZsaXAgPSBub3V2ZWF1X2NydGNfcGFnZV9mbGlwLAogCS5kZXN0cm95ID0gbnZf Y3J0Y19kZXN0cm95LAorCS5nZXRfc2Nhbm91dF9wb3NpdGlvbiA9IG5vdXZlYXVfZGlzcGxheV9z Y2Fub3V0cG9zLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVu Y3MgbnYwNF9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV9kaXNwbGF5LmMKaW5kZXggNWQ5MzkwMmE5MWFiLi5kYTA0MDUwOGZkYjIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCkBAIC05Miw4ICs5Miw5IEBAIGNh bGMoaW50IGJsYW5rcywgaW50IGJsYW5rZSwgaW50IHRvdGFsLCBpbnQgbGluZSkKIH0KIAogaW50 Ci1ub3V2ZWF1X2Rpc3BsYXlfc2Nhbm91dHBvc19oZWFkKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg aW50ICp2cG9zLCBpbnQgKmhwb3MsCi0JCQkJa3RpbWVfdCAqc3RpbWUsIGt0aW1lX3QgKmV0aW1l KQorbm91dmVhdV9kaXNwbGF5X3NjYW5vdXRwb3Moc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNp Z25lZCBpbnQgZmxhZ3MsCisJCQkgICBpbnQgKnZwb3MsIGludCAqaHBvcywga3RpbWVfdCAqc3Rp bWUsCisJCQkgICBrdGltZV90ICpldGltZSkKIHsKIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgbnYwNF9k aXNwX210aGRfdjAgYmFzZTsKQEAgLTEzMSwyMiArMTMyLDYgQEAgbm91dmVhdV9kaXNwbGF5X3Nj YW5vdXRwb3NfaGVhZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCAqdnBvcywgaW50ICpocG9z LAogfQogCiBpbnQKLW5vdXZlYXVfZGlzcGxheV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBoZWFkLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCi0JCQkgICBpbnQgKnZwb3MsIGlu dCAqaHBvcywga3RpbWVfdCAqc3RpbWUsIGt0aW1lX3QgKmV0aW1lKQotewotCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YzsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25m aWcuY3J0Y19saXN0LCBoZWFkKSB7Ci0JCWlmIChub3V2ZWF1X2NydGMoY3J0YyktPmluZGV4ID09 IGhlYWQpIHsKLQkJCXJldHVybiBub3V2ZWF1X2Rpc3BsYXlfc2Nhbm91dHBvc19oZWFkKGNydGMs IHZwb3MsIGhwb3MsCi0JCQkJCQkJICAgICAgIHN0aW1lLCBldGltZSk7Ci0JCX0KLQl9Ci0KLQly ZXR1cm4gMDsKLX0KLQotaW50CiBub3V2ZWF1X2Rpc3BsYXlfdmJsc3RhbXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGhlYWQsIGludCAqbWF4X2Vycm9yLAogCQkJIHN0cnVjdCB0aW1ldmFs ICp0aW1lLCB1bnNpZ25lZCBmbGFncykKIHsKQEAgLTE1NCw4ICsxMzksOCBAQCBub3V2ZWF1X2Rp c3BsYXlfdmJsc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGhlYWQsIGludCAqbWF4 X2Vycm9yLAogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5j cnRjX2xpc3QsIGhlYWQpIHsKIAkJaWYgKG5vdXZlYXVfY3J0YyhjcnRjKS0+aW5kZXggPT0gaGVh ZCkgewotCQkJcmV0dXJuIGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3MoZGV2 LAotCQkJCQloZWFkLCBtYXhfZXJyb3IsIHRpbWUsIGZsYWdzLCBjcnRjLAorCQkJcmV0dXJuIGRy bV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3MoY3J0YywKKwkJCQkJbWF4X2Vycm9y LCB0aW1lLCBmbGFncywgY3J0YywKIAkJCQkJJmNydGMtPmh3bW9kZSk7CiAJCX0KIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaCBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5oCmluZGV4IGJlM2Q1OTQ3YzZiZS4u ZTQyNzAzNGYwMjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X2Rpc3BsYXkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXku aApAQCAtNjcsOCArNjcsOCBAQCBpbnQgIG5vdXZlYXVfZGlzcGxheV9zdXNwZW5kKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGJvb2wgcnVudGltZSk7CiB2b2lkIG5vdXZlYXVfZGlzcGxheV9yZXN1 bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50aW1lKTsKIGludCAgbm91dmVhdV9k aXNwbGF5X3ZibGFua19lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKiwgaW50KTsKIHZvaWQgbm91 dmVhdV9kaXNwbGF5X3ZibGFua19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICosIGludCk7Ci1p bnQgIG5vdXZlYXVfZGlzcGxheV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICosIGludCwg dW5zaWduZWQgaW50LAotCQkJCWludCAqLCBpbnQgKiwga3RpbWVfdCAqLCBrdGltZV90ICopOwor aW50ICBub3V2ZWF1X2Rpc3BsYXlfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2NydGMgKiwgdW5zaWdu ZWQgaW50LCBpbnQgKiwgaW50ICosCisJCQkJa3RpbWVfdCAqLCBrdGltZV90ICopOwogaW50ICBu b3V2ZWF1X2Rpc3BsYXlfdmJsc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKiwgaW50LCBpbnQgKiwK IAkJCSAgICAgIHN0cnVjdCB0aW1ldmFsICosIHVuc2lnbmVkKTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfZHJtLmMKaW5kZXggMjJkNDk0MzhiMTM2Li5iNjljNDdhNjNiZDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYwpAQCAtOTU4LDcgKzk1OCw2IEBAIGRyaXZl cl9zdHViID0gewogCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBkcm1fdmJsYW5rX2NvdW50LAogCS5l bmFibGVfdmJsYW5rID0gbm91dmVhdV9kaXNwbGF5X3ZibGFua19lbmFibGUsCiAJLmRpc2FibGVf dmJsYW5rID0gbm91dmVhdV9kaXNwbGF5X3ZibGFua19kaXNhYmxlLAotCS5nZXRfc2Nhbm91dF9w b3NpdGlvbiA9IG5vdXZlYXVfZGlzcGxheV9zY2Fub3V0cG9zLAogCS5nZXRfdmJsYW5rX3RpbWVz dGFtcCA9IG5vdXZlYXVfZGlzcGxheV92YmxzdGFtcCwKIAogCS5pb2N0bHMgPSBub3V2ZWF1X2lv Y3RscywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMKaW5kZXggNDkwYjkwODY2 YmFmLi4xOGFjYmVlYTE2YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252 NTBfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5j CkBAIC0xMzg2LDYgKzEzODYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNz IG52NTBfY3J0Y19mdW5jID0gewogCS5zZXRfY29uZmlnID0gbm91dmVhdV9jcnRjX3NldF9jb25m aWcsCiAJLmRlc3Ryb3kgPSBudjUwX2NydGNfZGVzdHJveSwKIAkucGFnZV9mbGlwID0gbm91dmVh dV9jcnRjX3BhZ2VfZmxpcCwKKwkuZ2V0X3NjYW5vdXRfcG9zaXRpb24gPSBub3V2ZWF1X2Rpc3Bs YXlfc2Nhbm91dHBvcywKIH07CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2Rpc3BsYXkuYwppbmRleCAxMDIxMTY5MDJhMDcuLjJkMGY5YmUyMzExMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwpAQCAtMzIyLDkgKzMyMiw5IEBAIHZvaWQg cmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50 IGNydGNfaWQpCiAJICogdG8gY29tcGxldGUgaW4gdGhpcyB2Ymxhbms/CiAJICovCiAJaWYgKHVw ZGF0ZV9wZW5kaW5nICYmCi0JICAgIChEUk1fU0NBTk9VVFBPU19WQUxJRCAmIHJhZGVvbl9nZXRf Y3J0Y19zY2Fub3V0cG9zKHJkZXYtPmRkZXYsIGNydGNfaWQsIDAsCisJICAgIChEUk1fU0NBTk9V VFBPU19WQUxJRCAmIHJhZGVvbl9jcnRjX2dldF9zY2Fub3V0cG9zKCZyYWRlb25fY3J0Yy0+YmFz ZSwgMCwKIAkJCQkJCQkgICAgICAgJnZwb3MsICZocG9zLCBOVUxMLCBOVUxMKSkgJiYKLQkgICAg KCh2cG9zID49ICg5OSAqIHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXS0+YmFzZS5od21v ZGUuY3J0Y192ZGlzcGxheSkvMTAwKSB8fAorCSAgICAoKHZwb3MgPj0gKDk5ICogcmFkZW9uX2Ny dGMtPmJhc2UuaHdtb2RlLmNydGNfdmRpc3BsYXkpLzEwMCkgfHwKIAkgICAgICh2cG9zIDwgMCAm JiAhQVNJQ19JU19BVklWTyhyZGV2KSkpKSB7CiAJCS8qIGNydGMgZGlkbid0IGZsaXAgaW4gdGhp cyB0YXJnZXQgdmJsYW5rIGludGVydmFsLAogCQkgKiBidXQgZmxpcCBpcyBwZW5kaW5nIGluIGNy dGMuIEJhc2VkIG9uIHRoZSBjdXJyZW50CkBAIC02NDEsNiArNjQxLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyByYWRlb25fY3J0Y19mdW5jcyA9IHsKIAkuc2V0X2NvbmZp ZyA9IHJhZGVvbl9jcnRjX3NldF9jb25maWcsCiAJLmRlc3Ryb3kgPSByYWRlb25fY3J0Y19kZXN0 cm95LAogCS5wYWdlX2ZsaXAgPSByYWRlb25fY3J0Y19wYWdlX2ZsaXAsCisJLmdldF9zY2Fub3V0 X3Bvc2l0aW9uID0gcmFkZW9uX2NydGNfZ2V0X3NjYW5vdXRwb3MsCiB9OwogCiBzdGF0aWMgdm9p ZCByYWRlb25fY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBpbmRleCkKQEAg LTE3NTgsNyArMTc1OSw2IEBAIGJvb2wgcmFkZW9uX2NydGNfc2NhbGluZ19tb2RlX2ZpeHVwKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKICAqIFJldHJpZXZlIGN1cnJlbnQgdmlkZW8gc2Nhbm91dCBw b3NpdGlvbiBvZiBjcnRjIG9uIGEgZ2l2ZW4gZ3B1LCBhbmQKICAqIGFuIG9wdGlvbmFsIGFjY3Vy YXRlIHRpbWVzdGFtcCBvZiB3aGVuIHF1ZXJ5IGhhcHBlbmVkLgogICoKLSAqIFxwYXJhbSBkZXYg RGV2aWNlIHRvIHF1ZXJ5LgogICogXHBhcmFtIGNydGMgQ3J0YyB0byBxdWVyeS4KICAqIFxwYXJh bSBmbGFncyBGbGFncyBmcm9tIGNhbGxlciAoRFJNX0NBTExFRF9GUk9NX1ZCTElSUSBvciAwKS4K ICAqIFxwYXJhbSAqdnBvcyBMb2NhdGlvbiB3aGVyZSB2ZXJ0aWNhbCBzY2Fub3V0IHBvc2l0aW9u IHNob3VsZCBiZSBzdG9yZWQuCkBAIC0xNzgyLDE0ICsxNzgyLDE1IEBAIGJvb2wgcmFkZW9uX2Ny dGNfc2NhbGluZ19tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKICAqIHVua25vd24g c21hbGwgbnVtYmVyIG9mIHNjYW5saW5lcyB3cnQuIHJlYWwgc2Nhbm91dCBwb3NpdGlvbi4KICAq CiAgKi8KLWludCByYWRlb25fZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY3J0YywgdW5zaWduZWQgaW50IGZsYWdzLAoraW50IHJhZGVvbl9jcnRjX2dldF9z Y2Fub3V0cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IGZsYWdzLAogCQkJ ICAgICAgIGludCAqdnBvcywgaW50ICpocG9zLCBrdGltZV90ICpzdGltZSwga3RpbWVfdCAqZXRp bWUpCiB7CisJc3RydWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0YyA9IHRvX3JhZGVvbl9jcnRj KGNydGMpOwogCXUzMiBzdGF0X2NydGMgPSAwLCB2YmwgPSAwLCBwb3NpdGlvbiA9IDA7CiAJaW50 IHZibF9zdGFydCwgdmJsX2VuZCwgdnRvdGFsLCByZXQgPSAwOwogCWJvb2wgaW5fdmJsID0gdHJ1 ZTsKIAotCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAKIAkv KiBwcmVlbXB0X2Rpc2FibGVfcnQoKSBzaG91bGQgZ28gcmlnaHQgaGVyZSBpbiBQUkVFTVBUX1JU IHBhdGNoc2V0LiAqLwogCkBAIC0xNzk4LDQyICsxNzk5LDQyIEBAIGludCByYWRlb25fZ2V0X2Ny dGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YywgdW5zaWduZWQg aW50IGZsCiAJCSpzdGltZSA9IGt0aW1lX2dldCgpOwogCiAJaWYgKEFTSUNfSVNfRENFNChyZGV2 KSkgewotCQlpZiAoY3J0YyA9PSAwKSB7CisJCWlmIChyYWRlb25fY3J0Yy0+Y3J0Y19pZCA9PSAw KSB7CiAJCQl2YmwgPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfVl9CTEFOS19TVEFSVF9FTkQgKwog CQkJCSAgICAgRVZFUkdSRUVOX0NSVEMwX1JFR0lTVEVSX09GRlNFVCk7CiAJCQlwb3NpdGlvbiA9 IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19TVEFUVVNfUE9TSVRJT04gKwogCQkJCQkgIEVWRVJHUkVF Tl9DUlRDMF9SRUdJU1RFUl9PRkZTRVQpOwogCQkJcmV0IHw9IERSTV9TQ0FOT1VUUE9TX1ZBTElE OwogCQl9Ci0JCWlmIChjcnRjID09IDEpIHsKKwkJaWYgKHJhZGVvbl9jcnRjLT5jcnRjX2lkID09 IDEpIHsKIAkJCXZibCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19WX0JMQU5LX1NUQVJUX0VORCAr CiAJCQkJICAgICBFVkVSR1JFRU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VUKTsKIAkJCXBvc2l0aW9u ID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1NUQVRVU19QT1NJVElPTiArCiAJCQkJCSAgRVZFUkdS RUVOX0NSVEMxX1JFR0lTVEVSX09GRlNFVCk7CiAJCQlyZXQgfD0gRFJNX1NDQU5PVVRQT1NfVkFM SUQ7CiAJCX0KLQkJaWYgKGNydGMgPT0gMikgeworCQlpZiAocmFkZW9uX2NydGMtPmNydGNfaWQg PT0gMikgewogCQkJdmJsID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1ZfQkxBTktfU1RBUlRfRU5E ICsKIAkJCQkgICAgIEVWRVJHUkVFTl9DUlRDMl9SRUdJU1RFUl9PRkZTRVQpOwogCQkJcG9zaXRp b24gPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfU1RBVFVTX1BPU0lUSU9OICsKIAkJCQkJICBFVkVS R1JFRU5fQ1JUQzJfUkVHSVNURVJfT0ZGU0VUKTsKIAkJCXJldCB8PSBEUk1fU0NBTk9VVFBPU19W QUxJRDsKIAkJfQotCQlpZiAoY3J0YyA9PSAzKSB7CisJCWlmIChyYWRlb25fY3J0Yy0+Y3J0Y19p ZCA9PSAzKSB7CiAJCQl2YmwgPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfVl9CTEFOS19TVEFSVF9F TkQgKwogCQkJCSAgICAgRVZFUkdSRUVOX0NSVEMzX1JFR0lTVEVSX09GRlNFVCk7CiAJCQlwb3Np dGlvbiA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19TVEFUVVNfUE9TSVRJT04gKwogCQkJCQkgIEVW RVJHUkVFTl9DUlRDM19SRUdJU1RFUl9PRkZTRVQpOwogCQkJcmV0IHw9IERSTV9TQ0FOT1VUUE9T X1ZBTElEOwogCQl9Ci0JCWlmIChjcnRjID09IDQpIHsKKwkJaWYgKHJhZGVvbl9jcnRjLT5jcnRj X2lkID09IDQpIHsKIAkJCXZibCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19WX0JMQU5LX1NUQVJU X0VORCArCiAJCQkJICAgICBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNURVJfT0ZGU0VUKTsKIAkJCXBv c2l0aW9uID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1NUQVRVU19QT1NJVElPTiArCiAJCQkJCSAg RVZFUkdSRUVOX0NSVEM0X1JFR0lTVEVSX09GRlNFVCk7CiAJCQlyZXQgfD0gRFJNX1NDQU5PVVRQ T1NfVkFMSUQ7CiAJCX0KLQkJaWYgKGNydGMgPT0gNSkgeworCQlpZiAocmFkZW9uX2NydGMtPmNy dGNfaWQgPT0gNSkgewogCQkJdmJsID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1ZfQkxBTktfU1RB UlRfRU5EICsKIAkJCQkgICAgIEVWRVJHUkVFTl9DUlRDNV9SRUdJU1RFUl9PRkZTRVQpOwogCQkJ cG9zaXRpb24gPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfU1RBVFVTX1BPU0lUSU9OICsKQEAgLTE4 NDEsMTkgKzE4NDIsMTkgQEAgaW50IHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBjcnRjLCB1bnNpZ25lZCBpbnQgZmwKIAkJCXJldCB8PSBEUk1f U0NBTk9VVFBPU19WQUxJRDsKIAkJfQogCX0gZWxzZSBpZiAoQVNJQ19JU19BVklWTyhyZGV2KSkg ewotCQlpZiAoY3J0YyA9PSAwKSB7CisJCWlmIChyYWRlb25fY3J0Yy0+Y3J0Y19pZCA9PSAwKSB7 CiAJCQl2YmwgPSBSUkVHMzIoQVZJVk9fRDFDUlRDX1ZfQkxBTktfU1RBUlRfRU5EKTsKIAkJCXBv c2l0aW9uID0gUlJFRzMyKEFWSVZPX0QxQ1JUQ19TVEFUVVNfUE9TSVRJT04pOwogCQkJcmV0IHw9 IERSTV9TQ0FOT1VUUE9TX1ZBTElEOwogCQl9Ci0JCWlmIChjcnRjID09IDEpIHsKKwkJaWYgKHJh ZGVvbl9jcnRjLT5jcnRjX2lkID09IDEpIHsKIAkJCXZibCA9IFJSRUczMihBVklWT19EMkNSVENf Vl9CTEFOS19TVEFSVF9FTkQpOwogCQkJcG9zaXRpb24gPSBSUkVHMzIoQVZJVk9fRDJDUlRDX1NU QVRVU19QT1NJVElPTik7CiAJCQlyZXQgfD0gRFJNX1NDQU5PVVRQT1NfVkFMSUQ7CiAJCX0KIAl9 IGVsc2UgewogCQkvKiBQcmUtQVZJVk86IERpZmZlcmVudCBlbmNvZGluZyBvZiBzY2Fub3V0IHBv cyBhbmQgdmJsYW5rIGludGVydmFsLiAqLwotCQlpZiAoY3J0YyA9PSAwKSB7CisJCWlmIChyYWRl b25fY3J0Yy0+Y3J0Y19pZCA9PSAwKSB7CiAJCQkvKiBBc3N1bWUgdmJsX2VuZCA9PSAwLCBnZXQg dmJsX3N0YXJ0IGZyb20KIAkJCSAqIHVwcGVyIDE2IGJpdHMuCiAJCQkgKi8KQEAgLTE4NjcsNyAr MTg2OCw3IEBAIGludCByYWRlb25fZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBpbnQgY3J0YywgdW5zaWduZWQgaW50IGZsCiAKIAkJCXJldCB8PSBEUk1fU0NBTk9V VFBPU19WQUxJRDsKIAkJfQotCQlpZiAoY3J0YyA9PSAxKSB7CisJCWlmIChyYWRlb25fY3J0Yy0+ Y3J0Y19pZCA9PSAxKSB7CiAJCQl2YmwgPSAoUlJFRzMyKFJBREVPTl9DUlRDMl9WX1RPVEFMX0RJ U1ApICYKIAkJCQlSQURFT05fQ1JUQ19WX0RJU1ApID4+IFJBREVPTl9DUlRDX1ZfRElTUF9TSElG VDsKIAkJCXBvc2l0aW9uID0gKFJSRUczMihSQURFT05fQ1JUQzJfVkxJTkVfQ1JOVF9WTElORSkg Pj4gMTYpICYgUkFERU9OX0NSVENfVl9UT1RBTDsKQEAgLTE4OTgsNyArMTg5OSw3IEBAIGludCBy YWRlb25fZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0 YywgdW5zaWduZWQgaW50IGZsCiAJfQogCWVsc2UgewogCQkvKiBObzogRmFrZSBzb21ldGhpbmcg cmVhc29uYWJsZSB3aGljaCBnaXZlcyBhdCBsZWFzdCBvayByZXN1bHRzLiAqLwotCQl2Ymxfc3Rh cnQgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0Y10tPmJhc2UuaHdtb2RlLmNydGNfdmRpc3Bs YXk7CisJCXZibF9zdGFydCA9IGNydGMtPmh3bW9kZS5jcnRjX3ZkaXNwbGF5OwogCQl2YmxfZW5k ID0gMDsKIAl9CiAKQEAgLTE5MTQsNyArMTkxNSw3IEBAIGludCByYWRlb25fZ2V0X2NydGNfc2Nh bm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YywgdW5zaWduZWQgaW50IGZs CiAKIAkvKiBJbnNpZGUgInVwcGVyIHBhcnQiIG9mIHZibGFuayBhcmVhPyBBcHBseSBjb3JyZWN0 aXZlIG9mZnNldCBpZiBzbzogKi8KIAlpZiAoaW5fdmJsICYmICgqdnBvcyA+PSB2Ymxfc3RhcnQp KSB7Ci0JCXZ0b3RhbCA9IHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjXS0+YmFzZS5od21vZGUu Y3J0Y192dG90YWw7CisJCXZ0b3RhbCA9IGNydGMtPmh3bW9kZS5jcnRjX3Z0b3RhbDsKIAkJKnZw b3MgPSAqdnBvcyAtIHZ0b3RhbDsKIAl9CiAKQEAgLTE5MzYsOCArMTkzNyw4IEBAIGludCByYWRl b25fZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yywg dW5zaWduZWQgaW50IGZsCiAJICogV2Ugb25seSBkbyB0aGlzIGlmIERSTV9DQUxMRURfRlJPTV9W QkxJUlEuCiAJICovCiAJaWYgKChmbGFncyAmIERSTV9DQUxMRURfRlJPTV9WQkxJUlEpICYmICFp bl92YmwpIHsKLQkJdmJsX3N0YXJ0ID0gcmRldi0+bW9kZV9pbmZvLmNydGNzW2NydGNdLT5iYXNl Lmh3bW9kZS5jcnRjX3ZkaXNwbGF5OwotCQl2dG90YWwgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3Nb Y3J0Y10tPmJhc2UuaHdtb2RlLmNydGNfdnRvdGFsOworCQl2Ymxfc3RhcnQgPSBjcnRjLT5od21v ZGUuY3J0Y192ZGlzcGxheTsKKwkJdnRvdGFsID0gY3J0Yy0+aHdtb2RlLmNydGNfdnRvdGFsOwog CiAJCWlmICh2Ymxfc3RhcnQgLSAqdnBvcyA8IHZ0b3RhbCAvIDEwMCkgewogCQkJKnZwb3MgLT0g dnRvdGFsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwppbmRleCA0ZjUwZmIwZTNkOTMu LmQxYjAyNTBkZGU0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMKQEAgLTU2Nyw3 ICs1NjcsNiBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIga21zX2RyaXZlciA9IHsKIAkuZW5h YmxlX3ZibGFuayA9IHJhZGVvbl9lbmFibGVfdmJsYW5rX2ttcywKIAkuZGlzYWJsZV92Ymxhbmsg PSByYWRlb25fZGlzYWJsZV92Ymxhbmtfa21zLAogCS5nZXRfdmJsYW5rX3RpbWVzdGFtcCA9IHJh ZGVvbl9nZXRfdmJsYW5rX3RpbWVzdGFtcF9rbXMsCi0JLmdldF9zY2Fub3V0X3Bvc2l0aW9uID0g cmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3MsCiAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMp CiAJLmRlYnVnZnNfaW5pdCA9IHJhZGVvbl9kZWJ1Z2ZzX2luaXQsCiAJLmRlYnVnZnNfY2xlYW51 cCA9IHJhZGVvbl9kZWJ1Z2ZzX2NsZWFudXAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5j CmluZGV4IDNjZjljMWZhNjQ3NS4uNjUyZjY1YjEwODBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9rbXMuYwpAQCAtODA0LDcgKzgwNCw3IEBAIGludCByYWRlb25fZ2V0X3ZibGFua190aW1l c3RhbXBfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAogCQlyZXR1cm4gLUVJ TlZBTDsKIAogCS8qIEhlbHBlciByb3V0aW5lIGluIERSTSBjb3JlIGRvZXMgYWxsIHRoZSB3b3Jr OiAqLwotCXJldHVybiBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zKGRldiwg Y3J0YywgbWF4X2Vycm9yLAorCXJldHVybiBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fu b3V0cG9zKGRybWNydGMsIG1heF9lcnJvciwKIAkJCQkJCSAgICAgdmJsYW5rX3RpbWUsIGZsYWdz LAogCQkJCQkJICAgICBkcm1jcnRjLCAmZHJtY3J0Yy0+aHdtb2RlKTsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21vZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX21vZGUuaAppbmRleCAzOTBkYjg5N2YzMjIuLjNjOWZhMTM1MzI2MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW9kZS5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21vZGUuaApAQCAtODIwLDcgKzgyMCw3IEBAIGV4dGVy biBpbnQgcmFkZW9uX2NydGNfY3Vyc29yX21vdmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJ CSAgIGludCB4LCBpbnQgeSk7CiBleHRlcm4gdm9pZCByYWRlb25fY3Vyc29yX3Jlc2V0KHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7CiAKLWV4dGVybiBpbnQgcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRw b3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMsCitleHRlcm4gaW50IHJhZGVvbl9j cnRjX2dldF9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgICAgICB1bnNp Z25lZCBpbnQgZmxhZ3MsCiAJCQkJICAgICAgaW50ICp2cG9zLCBpbnQgKmhwb3MsIGt0aW1lX3Qg KnN0aW1lLAogCQkJCSAgICAgIGt0aW1lX3QgKmV0aW1lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9wbS5jCmluZGV4IDMyNTIyY2M5NDBhMS4uYWE5ODQzYjA5YWM4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3BtLmMKQEAgLTE1NTMsOCArMTU1MywxMCBAQCBzdGF0aWMgYm9vbCByYWRlb25f cG1faW5fdmJsKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCSAqIG90aGVyd2lzZSByZXR1 cm4gaW5fdmJsID09IGZhbHNlLgogCSAqLwogCWZvciAoY3J0YyA9IDA7IChjcnRjIDwgcmRldi0+ bnVtX2NydGMpICYmIGluX3ZibDsgY3J0YysrKSB7CisJCXN0cnVjdCByYWRlb25fY3J0YyAqcmFk ZW9uX2NydGMgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0Y107CisKIAkJaWYgKHJkZXYtPnBt LmFjdGl2ZV9jcnRjcyAmICgxIDw8IGNydGMpKSB7Ci0JCQl2Ymxfc3RhdHVzID0gcmFkZW9uX2dl dF9jcnRjX3NjYW5vdXRwb3MocmRldi0+ZGRldiwgY3J0YywgMCwgJnZwb3MsICZocG9zLCBOVUxM LCBOVUxMKTsKKwkJCXZibF9zdGF0dXMgPSByYWRlb25fY3J0Y19nZXRfc2Nhbm91dHBvcygmcmFk ZW9uX2NydGMtPmJhc2UsIDAsICZ2cG9zLCAmaHBvcywgTlVMTCwgTlVMTCk7CiAJCQlpZiAoKHZi bF9zdGF0dXMgJiBEUk1fU0NBTk9VVFBPU19WQUxJRCkgJiYKIAkJCSAgICAhKHZibF9zdGF0dXMg JiBEUk1fU0NBTk9VVFBPU19JTl9WQkxBTkspKQogCQkJCWluX3ZibCA9IGZhbHNlOwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCmluZGV4IDQ4MDli NmY4YmU4Yi4uOTAyMzBlZjFiNzNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKKysr IGIvaW5jbHVkZS9kcm0vZHJtUC5oCkBAIC00MDEsMTEgKzQwMSw2IEBAIHN0cnVjdCBkcm1fbWFz dGVyIHsKICNkZWZpbmUgRFJNX1ZCTEFOS1RJTUVfU0NBTk9VVFBPU19NRVRIT0QgKDEgPDwgMCkK ICNkZWZpbmUgRFJNX1ZCTEFOS1RJTUVfSU5fVkJMQU5LICAgICAgICAgKDEgPDwgMSkKIAotLyog Z2V0X3NjYW5vdXRfcG9zaXRpb24oKSByZXR1cm4gZmxhZ3MgKi8KLSNkZWZpbmUgRFJNX1NDQU5P VVRQT1NfVkFMSUQgICAgICAgICgxIDw8IDApCi0jZGVmaW5lIERSTV9TQ0FOT1VUUE9TX0lOX1ZC TEFOSyAgICAoMSA8PCAxKQotI2RlZmluZSBEUk1fU0NBTk9VVFBPU19BQ0NVUkFURSAgICAgKDEg PDwgMikKLQogLyoqCiAgKiBzdHJ1Y3QgZHJtX2RyaXZlciAtIERSTSBkcml2ZXIgc3RydWN0dXJl CiAgKiBAbG9hZDoKQEAgLTU0Niw0MSArNTQxLDYgQEAgc3RydWN0IGRybV9kcml2ZXIgewogCWlu dCAoKmRldmljZV9pc19hZ3ApIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogCS8qKgotCSAq IENhbGxlZCBieSB2YmxhbmsgdGltZXN0YW1waW5nIGNvZGUuCi0JICoKLQkgKiBSZXR1cm4gdGhl IGN1cnJlbnQgZGlzcGxheSBzY2Fub3V0IHBvc2l0aW9uIGZyb20gYSBjcnRjLCBhbmQgYW4KLQkg KiBvcHRpb25hbCBhY2N1cmF0ZSBrdGltZV9nZXQgdGltZXN0YW1wIG9mIHdoZW4gcG9zaXRpb24g d2FzIG1lYXN1cmVkLgotCSAqCi0JICogXHBhcmFtIGRldiAgRFJNIGRldmljZS4KLQkgKiBccGFy YW0gY3J0YyBJZCBvZiB0aGUgY3J0YyB0byBxdWVyeS4KLQkgKiBccGFyYW0gZmxhZ3MgRmxhZ3Mg ZnJvbSB0aGUgY2FsbGVyIChEUk1fQ0FMTEVEX0ZST01fVkJMSVJRIG9yIDApLgotCSAqIFxwYXJh bSAqdnBvcyBUYXJnZXQgbG9jYXRpb24gZm9yIGN1cnJlbnQgdmVydGljYWwgc2Nhbm91dCBwb3Np dGlvbi4KLQkgKiBccGFyYW0gKmhwb3MgVGFyZ2V0IGxvY2F0aW9uIGZvciBjdXJyZW50IGhvcml6 b250YWwgc2Nhbm91dCBwb3NpdGlvbi4KLQkgKiBccGFyYW0gKnN0aW1lIFRhcmdldCBsb2NhdGlv biBmb3IgdGltZXN0YW1wIHRha2VuIGltbWVkaWF0ZWx5IGJlZm9yZQotCSAqICAgICAgICAgICAg ICAgc2Nhbm91dCBwb3NpdGlvbiBxdWVyeS4gQ2FuIGJlIE5VTEwgdG8gc2tpcCB0aW1lc3RhbXAu Ci0JICogXHBhcmFtICpldGltZSBUYXJnZXQgbG9jYXRpb24gZm9yIHRpbWVzdGFtcCB0YWtlbiBp bW1lZGlhdGVseSBhZnRlcgotCSAqICAgICAgICAgICAgICAgc2Nhbm91dCBwb3NpdGlvbiBxdWVy eS4gQ2FuIGJlIE5VTEwgdG8gc2tpcCB0aW1lc3RhbXAuCi0JICoKLQkgKiBSZXR1cm5zIHZwb3Mg YXMgYSBwb3NpdGl2ZSBudW1iZXIgd2hpbGUgaW4gYWN0aXZlIHNjYW5vdXQgYXJlYS4KLQkgKiBS ZXR1cm5zIHZwb3MgYXMgYSBuZWdhdGl2ZSBudW1iZXIgaW5zaWRlIHZibGFuaywgY291bnRpbmcg dGhlIG51bWJlcgotCSAqIG9mIHNjYW5saW5lcyB0byBnbyB1bnRpbCBlbmQgb2YgdmJsYW5rLCBl LmcuLCAtMSBtZWFucyAib25lIHNjYW5saW5lCi0JICogdW50aWwgc3RhcnQgb2YgYWN0aXZlIHNj YW5vdXQgLyBlbmQgb2YgdmJsYW5rLiIKLQkgKgotCSAqIFxyZXR1cm4gRmxhZ3MsIG9yJ2VkIHRv Z2V0aGVyIGFzIGZvbGxvd3M6Ci0JICoKLQkgKiBEUk1fU0NBTk9VVFBPU19WQUxJRCA9IFF1ZXJ5 IHN1Y2Nlc3NmdWwuCi0JICogRFJNX1NDQU5PVVRQT1NfSU5WQkwgPSBJbnNpZGUgdmJsYW5rLgot CSAqIERSTV9TQ0FOT1VUUE9TX0FDQ1VSQVRFID0gUmV0dXJuZWQgcG9zaXRpb24gaXMgYWNjdXJh dGUuIEEgbGFjayBvZgotCSAqIHRoaXMgZmxhZyBtZWFucyB0aGF0IHJldHVybmVkIHBvc2l0aW9u IG1heSBiZSBvZmZzZXQgYnkgYSBjb25zdGFudAotCSAqIGJ1dCB1bmtub3duIHNtYWxsIG51bWJl ciBvZiBzY2FubGluZXMgd3J0LiByZWFsIHNjYW5vdXQgcG9zaXRpb24uCi0JICoKLQkgKi8KLQlp bnQgKCpnZXRfc2Nhbm91dF9wb3NpdGlvbikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBj cnRjLAotCQkJCSAgICAgdW5zaWduZWQgaW50IGZsYWdzLAotCQkJCSAgICAgaW50ICp2cG9zLCBp bnQgKmhwb3MsIGt0aW1lX3QgKnN0aW1lLAotCQkJCSAgICAga3RpbWVfdCAqZXRpbWUpOwotCi0J LyoqCiAJICogQ2FsbGVkIGJ5IFxjIGRybV9nZXRfbGFzdF92Ymx0aW1lc3RhbXAuIFNob3VsZCBy ZXR1cm4gYSBwcmVjaXNlCiAJICogdGltZXN0YW1wIHdoZW4gdGhlIG1vc3QgcmVjZW50IFZCTEFO SyBpbnRlcnZhbCBlbmRlZCBvciB3aWxsIGVuZC4KIAkgKgpAQCAtMTA4MSwxMyArMTA0MSw2IEBA IGV4dGVybiB2b2lkIGRybV92Ymxhbmtfb2ZmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2ln bmVkIGludCBwaXBlKTsKIGV4dGVybiB2b2lkIGRybV92Ymxhbmtfb24oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwogZXh0ZXJuIHZvaWQgZHJtX3ZibGFua19jbGVh bnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCi1leHRlcm4gaW50IGRybV9jYWxjX3ZibHRp bWVzdGFtcF9mcm9tX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJCSB1 bnNpZ25lZCBpbnQgcGlwZSwgaW50ICptYXhfZXJyb3IsCi0JCQkJCQkgc3RydWN0IHRpbWV2YWwg KnZibGFua190aW1lLAotCQkJCQkJIHVuc2lnbmVkIGZsYWdzLAotCQkJCQkJIGNvbnN0IHN0cnVj dCBkcm1fY3J0YyAqcmVmY3J0YywKLQkJCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSk7Ci0KIC8qKgogICogZHJtX2NydGNfdmJsYW5rX3dhaXRxdWV1ZSAtIGdldCB2Ymxh bmsgd2FpdHF1ZXVlIGZvciB0aGUgQ1JUQwogICogQGNydGM6IHdoaWNoIENSVEMncyB2Ymxhbmsg d2FpdHF1ZXVlIHRvIHJldHJpZXZlCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o IGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCBjMWI2MzlmNTU0MDEuLmU5YzYyNzg5MjFj ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9k cm1fY3J0Yy5oCkBAIC0yNzYsNiArMjc2LDExIEBAIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB7CiAJ c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwogfTsKIAorLyogZ2V0X3NjYW5vdXRfcG9z aXRpb24oKSByZXR1cm4gZmxhZ3MgKi8KKyNkZWZpbmUgRFJNX1NDQU5PVVRQT1NfVkFMSUQgICAg ICAgICgxIDw8IDApCisjZGVmaW5lIERSTV9TQ0FOT1VUUE9TX0lOX1ZCTEFOSyAgICAoMSA8PCAx KQorI2RlZmluZSBEUk1fU0NBTk9VVFBPU19BQ0NVUkFURSAgICAgKDEgPDwgMikKKwogLyoqCiAg KiBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgLSBjb250cm9sIENSVENzIGZvciBhIGdpdmVuIGRldmlj ZQogICogQHNhdmU6IHNhdmUgQ1JUQyBzdGF0ZQpAQCAtMjkyLDYgKzI5Nyw3IEBAIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSB7CiAgKiBAYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZTogZHVwbGljYXRlIHRo ZSBhdG9taWMgc3RhdGUgZm9yIHRoaXMgQ1JUQwogICogQGF0b21pY19kZXN0cm95X3N0YXRlOiBk ZXN0cm95IGFuIGF0b21pYyBzdGF0ZSBmb3IgdGhpcyBDUlRDCiAgKiBAYXRvbWljX3NldF9wcm9w ZXJ0eTogc2V0IGEgcHJvcGVydHkgb24gYW4gYXRvbWljIHN0YXRlIGZvciB0aGlzIENSVEMKKyAq IEBnZXRfc2Nhbm91dF9wb3NpdGlvbjogcmV0dXJuIHRoZSBjdXJyZW50IHNjYW5vdXQgcG9zaXRp b24KICAqCiAgKiBUaGUgZHJtX2NydGNfZnVuY3Mgc3RydWN0dXJlIGlzIHRoZSBjZW50cmFsIENS VEMgbWFuYWdlbWVudCBzdHJ1Y3R1cmUKICAqIGluIHRoZSBEUk0uICBFYWNoIENSVEMgY29udHJv bHMgb25lIG9yIG1vcmUgY29ubmVjdG9ycyAobm90ZSB0aGF0IHRoZSBuYW1lCkBAIC0zNTEsNiAr MzU3LDM4IEBAIHN0cnVjdCBkcm1fY3J0Y19mdW5jcyB7CiAJCQkJICAgc3RydWN0IGRybV9jcnRj X3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJ CQkgICB1aW50NjRfdCB2YWwpOworCisJLyoqCisJICogQ2FsbGVkIGJ5IHZibGFuayB0aW1lc3Rh bXBpbmcgY29kZS4KKwkgKgorCSAqIFJldHVybiB0aGUgY3VycmVudCBkaXNwbGF5IHNjYW5vdXQg cG9zaXRpb24gZnJvbSBhIGNydGMsIGFuZCBhbgorCSAqIG9wdGlvbmFsIGFjY3VyYXRlIGt0aW1l X2dldCB0aW1lc3RhbXAgb2Ygd2hlbiBwb3NpdGlvbiB3YXMgbWVhc3VyZWQuCisJICoKKwkgKiBc cGFyYW0gY3J0YyBDUlRDIHRvIHF1ZXJ5LgorCSAqIFxwYXJhbSBmbGFncyBGbGFncyBmcm9tIHRo ZSBjYWxsZXIgKERSTV9DQUxMRURfRlJPTV9WQkxJUlEgb3IgMCkuCisJICogXHBhcmFtICp2cG9z IFRhcmdldCBsb2NhdGlvbiBmb3IgY3VycmVudCB2ZXJ0aWNhbCBzY2Fub3V0IHBvc2l0aW9uLgor CSAqIFxwYXJhbSAqaHBvcyBUYXJnZXQgbG9jYXRpb24gZm9yIGN1cnJlbnQgaG9yaXpvbnRhbCBz Y2Fub3V0IHBvc2l0aW9uLgorCSAqIFxwYXJhbSAqc3RpbWUgVGFyZ2V0IGxvY2F0aW9uIGZvciB0 aW1lc3RhbXAgdGFrZW4gaW1tZWRpYXRlbHkgYmVmb3JlCisJICogICAgICAgICAgICAgICBzY2Fu b3V0IHBvc2l0aW9uIHF1ZXJ5LiBDYW4gYmUgTlVMTCB0byBza2lwIHRpbWVzdGFtcC4KKwkgKiBc cGFyYW0gKmV0aW1lIFRhcmdldCBsb2NhdGlvbiBmb3IgdGltZXN0YW1wIHRha2VuIGltbWVkaWF0 ZWx5IGFmdGVyCisJICogICAgICAgICAgICAgICBzY2Fub3V0IHBvc2l0aW9uIHF1ZXJ5LiBDYW4g YmUgTlVMTCB0byBza2lwIHRpbWVzdGFtcC4KKwkgKgorCSAqIFJldHVybnMgdnBvcyBhcyBhIHBv c2l0aXZlIG51bWJlciB3aGlsZSBpbiBhY3RpdmUgc2Nhbm91dCBhcmVhLgorCSAqIFJldHVybnMg dnBvcyBhcyBhIG5lZ2F0aXZlIG51bWJlciBpbnNpZGUgdmJsYW5rLCBjb3VudGluZyB0aGUgbnVt YmVyCisJICogb2Ygc2NhbmxpbmVzIHRvIGdvIHVudGlsIGVuZCBvZiB2YmxhbmssIGUuZy4sIC0x IG1lYW5zICJvbmUgc2NhbmxpbmUKKwkgKiB1bnRpbCBzdGFydCBvZiBhY3RpdmUgc2Nhbm91dCAv IGVuZCBvZiB2YmxhbmsuIgorCSAqCisJICogXHJldHVybiBGbGFncywgb3InZWQgdG9nZXRoZXIg YXMgZm9sbG93czoKKwkgKgorCSAqIERSTV9TQ0FOT1VUUE9TX1ZBTElEID0gUXVlcnkgc3VjY2Vz c2Z1bC4KKwkgKiBEUk1fU0NBTk9VVFBPU19JTlZCTCA9IEluc2lkZSB2YmxhbmsuCisJICogRFJN X1NDQU5PVVRQT1NfQUNDVVJBVEUgPSBSZXR1cm5lZCBwb3NpdGlvbiBpcyBhY2N1cmF0ZS4gQSBs YWNrIG9mCisJICogdGhpcyBmbGFnIG1lYW5zIHRoYXQgcmV0dXJuZWQgcG9zaXRpb24gbWF5IGJl IG9mZnNldCBieSBhIGNvbnN0YW50CisJICogYnV0IHVua25vd24gc21hbGwgbnVtYmVyIG9mIHNj YW5saW5lcyB3cnQuIHJlYWwgc2Nhbm91dCBwb3NpdGlvbi4KKwkgKi8KKwlpbnQgKCpnZXRfc2Nh bm91dF9wb3NpdGlvbikoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBpbnQgZmxhZ3Ms CisJCQkJICAgIGludCAqdnBvcywgaW50ICpocG9zLCBrdGltZV90ICpzdGltZSwKKwkJCQkgICAg a3RpbWVfdCAqZXRpbWUpOwogfTsKIAogLyoqCkBAIC0xMTU5LDYgKzExOTcsMTMgQEAgZXh0ZXJu IHZvaWQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiBl eHRlcm4gdm9pZCBkcm1fY3J0Y192Ymxhbmtfb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiBl eHRlcm4gdm9pZCBkcm1fY3J0Y192Ymxhbmtfb24oc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAor ZXh0ZXJuIGludCBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKKwkJCQkJCSBpbnQgKm1heF9lcnJvciwKKwkJCQkJCSBzdHJ1Y3QgdGlt ZXZhbCAqdmJsYW5rX3RpbWUsCisJCQkJCQkgdW5zaWduZWQgZmxhZ3MsCisJCQkJCQkgY29uc3Qg c3RydWN0IGRybV9jcnRjICpyZWZjcnRjLAorCQkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlKTsKKwogZXh0ZXJuIHZvaWQgZHJtX2NhbGNfdGltZXN0YW1waW5nX2NvbnN0 YW50cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSk7CiAKLS0gCjIuMS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=