From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: =?UTF-8?q?=5BPATCH=5D=20drm=3A=20base=20prime/dma-buf=20support?= Date: Mon, 26 Mar 2012 16:02:55 +0100 Message-ID: <1332774175-12716-1-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTP id CC77CA09F2 for ; Mon, 26 Mar 2012 08:06:02 -0700 (PDT) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q2QF62jR025744 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 26 Mar 2012 11:06:02 -0400 Received: from optimus.redhat.com (vpn1-6-184.ams2.redhat.com [10.36.6.184]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q2QF60Kq028547 for ; Mon, 26 Mar 2012 11:06:01 -0400 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgYWRkcyB0aGUgYmFz aWMgZHJtIGRtYS1idWYgaW50ZXJmYWNlIGxheWVyLCBjYWxsZWQgUFJJTUUsCgpUaGUgbWFpbiBB UElzIGV4cG9zZWQgdG8gdXNlcnNwYWNlIGFsbG93IHRyYW5zbGF0aW5nIGEgMzItYml0IG9iamVj dCBoYW5kbGUKdG8gYSBmaWxlIGRlc2NyaXB0b3IsIGFuZCBhIGZpbGUgZGVzY3JpcHRvciB0byBh IDMyLWJpdCBvYmplY3QgaGFuZGxlLgoKVGhlIGZsYWdzIHZhbHVlIGlzIGN1cnJlbnRseSBsaW1p dGVkIHRvIE9fQ0xPRVhFQy4KCkFja25vd2xlZGdlbWVudHM6CkRhbmllbCBWZXR0ZXI6IGxvdHMg b2YgcmV2aWV3ClJvYiBDbGFyazogY2xlYW5lZCB1cCBsb3RzIG9mIHRoZSBpbnRlcm5hbHMgYW5k IGRpZCBsaWZldGltZSByZXZpZXcuCgpUaGlzIGlzIHdoYXQgSSBpbnRlbmQgdG8gc2VuZCB0byBM aW51cyB0byBmb3JtIHRoZSBiYXNpcyBmb3IgcHJpbWUgd29yawppbiB0aGUgZHJpdmVycy4KClNp Z25lZC1vZmYtYnk6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL0tjb25maWcgICAgIHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUg ICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jICAgfCAgICA0ICsKIGRyaXZl cnMvZ3B1L2RybS9kcm1fZm9wcy5jICB8ICAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2RybV9nZW0u YyAgIHwgICAgOSArKwogZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jIHwgIDI4MSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm0uaCAg ICAgICAgICAgfCAgIDE0ICsrLQogaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICAgIHwgICA2MSAr KysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDM3NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25m aWcKaW5kZXggY2MxMTQ4OC4uZTM1NGJjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tj b25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAgLTksNiArOSw3IEBAIG1lbnVj b25maWcgRFJNCiAJZGVwZW5kcyBvbiAoQUdQIHx8IEFHUD1uKSAmJiAhRU1VTEFURURfQ01QWENI RyAmJiBNTVUKIAlzZWxlY3QgSTJDCiAJc2VsZWN0IEkyQ19BTEdPQklUCisJc2VsZWN0IERNQV9T SEFSRURfQlVGRkVSCiAJaGVscAogCSAgS2VybmVsLWxldmVsIHN1cHBvcnQgZm9yIHRoZSBEaXJl Y3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpCiAJICBpbnRyb2R1Y2VkIGluIFhGcmVl ODYgNC4wLiBJZiB5b3Ugc2F5IFkgaGVyZSwgeW91IG5lZWQgdG8gc2VsZWN0CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5k ZXggYTg1ODUzMi4uYzIwZGE1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxl CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAtMTIsNyArMTIsNyBAQCBkcm0teSAg ICAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZmZXIubyBkcm1fYnVmcy5vIGRybV9jYWNoZS5vIFwK IAkJZHJtX3BsYXRmb3JtLm8gZHJtX3N5c2ZzLm8gZHJtX2hhc2h0YWIubyBkcm1fbW0ubyBcCiAJ CWRybV9jcnRjLm8gZHJtX21vZGVzLm8gZHJtX2VkaWQubyBcCiAJCWRybV9pbmZvLm8gZHJtX2Rl YnVnZnMubyBkcm1fZW5jb2Rlcl9zbGF2ZS5vIFwKLQkJZHJtX3RyYWNlX3BvaW50cy5vIGRybV9n bG9iYWwubworCQlkcm1fdHJhY2VfcG9pbnRzLm8gZHJtX2dsb2JhbC5vIGRybV9wcmltZS5vCiAK IGRybS0kKENPTkZJR19DT01QQVQpICs9IGRybV9pb2MzMi5vCiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCmluZGV4IDBi NjVmYmMuLjYxMTZlM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwpAQCAtMTM2LDYgKzEzNiwxMCBAQCBzdGF0aWMg c3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9HRU1fT1BFTiwgZHJtX2dlbV9vcGVuX2lvY3RsLCBEUk1fQVVUSHxEUk1fVU5MT0NL RUQpLAogCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRSRVNPVVJDRVMsIGRybV9t b2RlX2dldHJlc291cmNlcywgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKKworCURS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRCwgZHJtX3ByaW1lX2hhbmRs ZV90b19mZF9pb2N0bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEKSwKKwlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUsIGRybV9wcmltZV9mZF90b19oYW5kbGVfaW9jdGws IERSTV9BVVRIfERSTV9VTkxPQ0tFRCksCisKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RF X0dFVFBMQU5FUkVTT1VSQ0VTLCBkcm1fbW9kZV9nZXRwbGFuZV9yZXMsIERSTV9NQVNURVJ8RFJN X0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9N T0RFX0dFVENSVEMsIGRybV9tb2RlX2dldGNydGMsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxP Q0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRDUlRDLCBkcm1fbW9kZV9z ZXRjcnRjLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Zm9wcy5jCmluZGV4IDczNDhhM2QuLmNkZmJmMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZm9wcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCkBAIC0yNzEsNiAr MjcxLDkgQEAgc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbHAsCiAJaWYgKGRldi0+ZHJpdmVyLT5kcml2ZXJfZmVhdHVyZXMgJiBE UklWRVJfR0VNKQogCQlkcm1fZ2VtX29wZW4oZGV2LCBwcml2KTsKIAorCWlmIChkcm1fY29yZV9j aGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1BSSU1FKSkKKwkJZHJtX3ByaW1lX2luaXRfZmlsZV9w cml2YXRlKCZwcml2LT5wcmltZSk7CisKIAlpZiAoZGV2LT5kcml2ZXItPm9wZW4pIHsKIAkJcmV0 ID0gZGV2LT5kcml2ZXItPm9wZW4oZGV2LCBwcml2KTsKIAkJaWYgKHJldCA8IDApCkBAIC01NzEs NiArNTc0LDEwIEBAIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlscCkKIAogCWlmIChkZXYtPmRyaXZlci0+cG9zdGNsb3NlKQogCQlkZXYtPmRyaXZl ci0+cG9zdGNsb3NlKGRldiwgZmlsZV9wcml2KTsKKworCWlmIChkcm1fY29yZV9jaGVja19mZWF0 dXJlKGRldiwgRFJJVkVSX1BSSU1FKSkKKwkJZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9wcml2YXRl KCZmaWxlX3ByaXYtPnByaW1lKTsKKwogCWtmcmVlKGZpbGVfcHJpdik7CiAKIAkvKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2Vt LmMKaW5kZXggMGVmMzU4ZS4uZjMzNzQ5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCkBAIC0zNSw2ICszNSw3IEBA CiAjaW5jbHVkZSA8bGludXgvbW1hbi5oPgogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNp bmNsdWRlIDxsaW51eC9zaG1lbV9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KICNp bmNsdWRlICJkcm1QLmgiCiAKIC8qKiBAZmlsZSBkcm1fZ2VtLmMKQEAgLTIzMiw2ICsyMzMsMTAg QEAgZHJtX2dlbV9oYW5kbGVfZGVsZXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlscCwgdTMyIGhhbmRs ZSkKIAlpZHJfcmVtb3ZlKCZmaWxwLT5vYmplY3RfaWRyLCBoYW5kbGUpOwogCXNwaW5fdW5sb2Nr KCZmaWxwLT50YWJsZV9sb2NrKTsKIAorCWlmIChvYmotPmltcG9ydF9hdHRhY2gpCisJCWRybV9w cmltZV9yZW1vdmVfZmRfaGFuZGxlX21hcHBpbmcoJmZpbHAtPnByaW1lLAorCQkJCW9iai0+aW1w b3J0X2F0dGFjaC0+ZG1hYnVmKTsKKwogCWlmIChkZXYtPmRyaXZlci0+Z2VtX2Nsb3NlX29iamVj dCkKIAkJZGV2LT5kcml2ZXItPmdlbV9jbG9zZV9vYmplY3Qob2JqLCBmaWxwKTsKIAlkcm1fZ2Vt X29iamVjdF9oYW5kbGVfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKQEAgLTUyNyw2ICs1MzIs MTAgQEAgZHJtX2dlbV9vYmplY3RfcmVsZWFzZV9oYW5kbGUoaW50IGlkLCB2b2lkICpwdHIsIHZv aWQgKmRhdGEpCiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBwdHI7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG9iai0+ZGV2OwogCisJaWYgKG9iai0+aW1wb3J0X2F0dGFjaCkKKwkJ ZHJtX3ByaW1lX3JlbW92ZV9mZF9oYW5kbGVfbWFwcGluZygmZmlsZV9wcml2LT5wcmltZSwKKwkJ CQlvYmotPmltcG9ydF9hdHRhY2gtPmRtYWJ1Zik7CisKIAlpZiAoZGV2LT5kcml2ZXItPmdlbV9j bG9zZV9vYmplY3QpCiAJCWRldi0+ZHJpdmVyLT5nZW1fY2xvc2Vfb2JqZWN0KG9iaiwgZmlsZV9w cml2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9wcmltZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjFjN2YwNTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMK QEAgLTAsMCArMSwyODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMiBSZWQgSGF0CisgKgor ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK KyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2Fy ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6 CisgKiAgICAgIERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CisgKiAgICAgIFJvYiBD bGFyaworICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CisjaW5jbHVkZSA8bGlu dXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgImRybVAuaCIKKworLyoKKyAqIERNQS1CVUYvR0VNIE9i amVjdCByZWZlcmVuY2VzIGFuZCBsaWZldGltZSBvdmVydmlldzoKKyAqCisgKiBPbiB0aGUgZXhw b3J0IHRoZSBkbWFfYnVmIGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBleHBvcnRpbmcgR0VNCisg KiBvYmplY3QuIEl0IHRha2VzIHRoaXMgcmVmZXJlbmNlIGluIGhhbmRsZV90b19mZF9pb2N0bCwg d2hlbiBpdAorICogZmlyc3QgY2FsbHMgLnByaW1lX2V4cG9ydCBhbmQgc3RvcmVzIHRoZSBleHBv cnRpbmcgR0VNIG9iamVjdCBpbgorICogdGhlIGRtYV9idWYgcHJpdi4gVGhpcyByZWZlcmVuY2Ug aXMgcmVsZWFzZWQgd2hlbiB0aGUgZG1hX2J1ZgorICogb2JqZWN0IGdvZXMgYXdheSBpbiB0aGUg ZHJpdmVyIC5yZWxlYXNlIGZ1bmN0aW9uLgorICoKKyAqIE9uIHRoZSBpbXBvcnQgdGhlIGltcG9y dGluZyBHRU0gb2JqZWN0IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZQorICogZG1hX2J1ZiAod2hp Y2ggaW4gdHVybiBob2xkcyBhIHJlZiB0byB0aGUgZXhwb3J0aW5nIEdFTSBvYmplY3QpLgorICog SXQgdGFrZXMgdGhhdCByZWZlcmVuY2UgaW4gdGhlIGZkX3RvX2hhbmRsZSBpb2N0bC4KKyAqIEl0 IGNhbGxzIGRtYV9idWZfZ2V0LCBjcmVhdGVzIGFuIGF0dGFjaG1lbnQgdG8gaXQgYW5kIHN0b3Jl cyB0aGUKKyAqIGF0dGFjaG1lbnQgaW4gdGhlIEdFTSBvYmplY3QuIFdoZW4gdGhpcyBhdHRhY2ht ZW50IGlzIGRlc3Ryb3llZAorICogd2hlbiB0aGUgaW1wb3J0ZWQgb2JqZWN0IGlzIGRlc3Ryb3ll ZCwgd2UgcmVtb3ZlIHRoZSBhdHRhY2htZW50CisgKiBhbmQgZHJvcCB0aGUgcmVmZXJlbmNlIHRv IHRoZSBkbWFfYnVmLgorICoKKyAqIFRodXMgdGhlIGNoYWluIG9mIHJlZmVyZW5jZXMgYWx3YXlz IGZsb3dzIGluIG9uZSBkaXJlY3Rpb24KKyAqIChhdm9pZGluZyBsb29wcyk6IGltcG9ydGluZ19n ZW0gLT4gZG1hYnVmIC0+IGV4cG9ydGluZ19nZW0KKyAqLworCitzdHJ1Y3QgZHJtX3ByaW1lX21l bWJlciB7CisJc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKKwlzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1 ZjsKKwl1aW50MzJfdCBoYW5kbGU7Cit9OworCitpbnQgZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9f ZmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs IHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgZmxhZ3MsCisJCWludCAqcHJpbWVfZmQpCit7CisJ c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisKKwlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29r dXAoZGV2LCBmaWxlX3ByaXYsIGhhbmRsZSk7CisJaWYgKCFvYmopCisJCXJldHVybiAtRU5PRU5U OworCisJLyogZG9uJ3QgYWxsb3cgaW1wb3J0ZWQgYnVmZmVycyB0byBiZSByZS1leHBvcnRlZCAq LworCWlmIChvYmotPmltcG9ydF9hdHRhY2gpIHsKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2VfdW5sb2NrZWQob2JqKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKG9iai0+ZXhw b3J0X2RtYV9idWYpIHsKKwkJZ2V0X2ZpbGUob2JqLT5leHBvcnRfZG1hX2J1Zi0+ZmlsZSk7CisJ CSpwcmltZV9mZCA9IGRtYV9idWZfZmQob2JqLT5leHBvcnRfZG1hX2J1ZiwgZmxhZ3MpOworCQlk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOworCX0gZWxzZSB7CisJCW9i ai0+ZXhwb3J0X2RtYV9idWYgPQorCQkJCWRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfZXhwb3J0KGRl diwgb2JqLCBmbGFncyk7CisJCWlmIChJU19FUlJfT1JfTlVMTChvYmotPmV4cG9ydF9kbWFfYnVm KSkgeworCQkJLyogbm9ybWFsbHkgdGhlIGNyZWF0ZWQgZG1hLWJ1ZiB0YWtlcyBvd25lcnNoaXAg b2YgdGhlIHJlZiwKKwkJCSAqIGJ1dCBpZiB0aGF0IGZhaWxzIHRoZW4gZHJvcCB0aGUgcmVmCisJ CQkgKi8KKwkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKG9iaik7CisJCQly ZXR1cm4gUFRSX0VSUihvYmotPmV4cG9ydF9kbWFfYnVmKTsKKwkJfQorCQkqcHJpbWVfZmQgPSBk bWFfYnVmX2ZkKG9iai0+ZXhwb3J0X2RtYV9idWYsIGZsYWdzKTsKKwl9CisJcmV0dXJuIDA7Cit9 CitFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKTsKKworaW50IGRybV9n ZW1fcHJpbWVfZmRfdG9faGFuZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCXN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2LCBpbnQgcHJpbWVfZmQsIHVpbnQzMl90ICpoYW5kbGUpCit7CisJ c3RydWN0IGRtYV9idWYgKmRtYV9idWY7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisJ aW50IHJldDsKKworCWRtYV9idWYgPSBkbWFfYnVmX2dldChwcmltZV9mZCk7CisJaWYgKElTX0VS UihkbWFfYnVmKSkKKwkJcmV0dXJuIFBUUl9FUlIoZG1hX2J1Zik7CisKKwlyZXQgPSBkcm1fcHJp bWVfbG9va3VwX2ZkX2hhbmRsZV9tYXBwaW5nKCZmaWxlX3ByaXYtPnByaW1lLAorCQkJZG1hX2J1 ZiwgaGFuZGxlKTsKKwlpZiAoIXJldCkgeworCQlkbWFfYnVmX3B1dChkbWFfYnVmKTsKKwkJcmV0 dXJuIDA7CisJfQorCisJLyogbmV2ZXIgc2VlbiB0aGlzIG9uZSwgbmVlZCB0byBpbXBvcnQgKi8K KwlvYmogPSBkZXYtPmRyaXZlci0+Z2VtX3ByaW1lX2ltcG9ydChkZXYsIGRtYV9idWYpOworCWlm IChJU19FUlJfT1JfTlVMTChvYmopKSB7CisJCXJldCA9IFBUUl9FUlIob2JqKTsKKwkJZ290byBm YWlsX3B1dDsKKwl9CisKKwlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCBv YmosIGhhbmRsZSk7CisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsK KwlpZiAocmV0KQorCQlnb3RvIGZhaWxfcHV0OworCisJcmV0ID0gZHJtX3ByaW1lX2luc2VydF9m ZF9oYW5kbGVfbWFwcGluZygmZmlsZV9wcml2LT5wcmltZSwKKwkJCWRtYV9idWYsICpoYW5kbGUp OworCWlmIChyZXQpCisJCWdvdG8gZmFpbDsKKworCXJldHVybiAwOworCitmYWlsOgorCS8qIGht bSwgaWYgZHJpdmVyIGF0dGFjaGVkLCB3ZSBhcmUgcmVseWluZyBvbiB0aGUgZnJlZS1vYmplY3Qg cGF0aAorCSAqIHRvIGRldGFjaC4uIHdoaWNoIHNlZW1zIG9rLi4KKwkgKi8KKwlkcm1fZ2VtX29i amVjdF9oYW5kbGVfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKK2ZhaWxfcHV0OgorCWRtYV9i dWZfcHV0KGRtYV9idWYpOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZW1f cHJpbWVfZmRfdG9faGFuZGxlKTsKKworaW50IGRybV9wcmltZV9oYW5kbGVfdG9fZmRfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYpCit7CisJc3RydWN0IGRybV9wcmltZV9oYW5kbGUgKmFyZ3MgPSBkYXRhOwor CXVpbnQzMl90IGZsYWdzOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX1BSSU1FKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWRldi0+ZHJpdmVyLT5wcmlt ZV9oYW5kbGVfdG9fZmQpCisJCXJldHVybiAtRU5PU1lTOworCisJLyogd2Ugb25seSB3YW50IHRv IHBhc3MgRFJNX0NMT0VYRUMgd2hpY2ggaXMgPT0gT19DTE9FWEVDICovCisJZmxhZ3MgPSBhcmdz LT5mbGFncyAmIERSTV9DTE9FWEVDOworCisJcmV0dXJuIGRldi0+ZHJpdmVyLT5wcmltZV9oYW5k bGVfdG9fZmQoZGV2LCBmaWxlX3ByaXYsCisJCQlhcmdzLT5oYW5kbGUsIGZsYWdzLCAmYXJncy0+ ZmQpOworfQorCitpbnQgZHJtX3ByaW1lX2ZkX3RvX2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikK K3sKKwlzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSAqYXJncyA9IGRhdGE7CisKKwlpZiAoIWRybV9j b3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUpKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCWlmICghZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZSkKKwkJcmV0dXJuIC1FTk9T WVM7CisKKwlyZXR1cm4gZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZShkZXYsIGZpbGVf cHJpdiwKKwkJCWFyZ3MtPmZkLCAmYXJncy0+aGFuZGxlKTsKK30KKworLyoKKyAqIGRybV9wcmlt ZV9wYWdlc190b19zZworICoKKyAqIHRoaXMgaGVscGVyIGNyZWF0ZXMgYW4gc2cgdGFibGUgb2Jq ZWN0IGZyb20gYSBzZXQgb2YgcGFnZXMKKyAqIHRoZSBkcml2ZXIgaXMgcmVzcG9uc2libGUgZm9y IG1hcHBpbmcgdGhlIHBhZ2VzIGludG8gdGhlCisgKiBpbXBvcnRlcnMgYWRkcmVzcyBzcGFjZQor ICovCitzdHJ1Y3Qgc2dfdGFibGUgKmRybV9wcmltZV9wYWdlc190b19zZyhzdHJ1Y3QgcGFnZSAq KnBhZ2VzLCBpbnQgbnJfcGFnZXMpCit7CisJc3RydWN0IHNnX3RhYmxlICpzZyA9IE5VTEw7CisJ c3RydWN0IHNjYXR0ZXJsaXN0ICppdGVyOworCWludCBpOworCWludCByZXQ7CisKKwlzZyA9IGt6 YWxsb2Moc2l6ZW9mKHN0cnVjdCBzZ190YWJsZSksIEdGUF9LRVJORUwpOworCWlmICghc2cpCisJ CWdvdG8gb3V0OworCisJcmV0ID0gc2dfYWxsb2NfdGFibGUoc2csIG5yX3BhZ2VzLCBHRlBfS0VS TkVMKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWZvcl9lYWNoX3NnKHNnLT5zZ2wsIGl0 ZXIsIG5yX3BhZ2VzLCBpKQorCQlzZ19zZXRfcGFnZShpdGVyLCBwYWdlc1tpXSwgUEFHRV9TSVpF LCAwKTsKKworCXJldHVybiBzZzsKK291dDoKKwlrZnJlZShzZyk7CisJcmV0dXJuIE5VTEw7Cit9 CitFWFBPUlRfU1lNQk9MKGRybV9wcmltZV9wYWdlc190b19zZyk7CisKKy8qIGhlbHBlciBmdW5j dGlvbiB0byBjbGVhbnVwIGEgR0VNL3ByaW1lIG9iamVjdCAqLwordm9pZCBkcm1fcHJpbWVfZ2Vt X2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ190YWJsZSAqc2cp Cit7CisJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoOworCXN0cnVjdCBkbWFfYnVm ICpkbWFfYnVmOworCWF0dGFjaCA9IG9iai0+aW1wb3J0X2F0dGFjaDsKKwlpZiAoc2cpCisJCWRt YV9idWZfdW5tYXBfYXR0YWNobWVudChhdHRhY2gsIHNnLCBETUFfQklESVJFQ1RJT05BTCk7CisJ ZG1hX2J1ZiA9IGF0dGFjaC0+ZG1hYnVmOworCWRtYV9idWZfZGV0YWNoKGF0dGFjaC0+ZG1hYnVm LCBhdHRhY2gpOworCS8qIHJlbW92ZSB0aGUgcmVmZXJlbmNlICovCisJZG1hX2J1Zl9wdXQoZG1h X2J1Zik7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wcmltZV9nZW1fZGVzdHJveSk7CisKK3ZvaWQg ZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRl ICpwcmltZV9mcHJpdikKK3sKKwlJTklUX0xJU1RfSEVBRCgmcHJpbWVfZnByaXYtPmhlYWQpOwor fQorRVhQT1JUX1NZTUJPTChkcm1fcHJpbWVfaW5pdF9maWxlX3ByaXZhdGUpOworCit2b2lkIGRy bV9wcmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZShzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0 ZSAqcHJpbWVfZnByaXYpCit7CisJc3RydWN0IGRybV9wcmltZV9tZW1iZXIgKm1lbWJlciwgKnNh ZmU7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1lbWJlciwgc2FmZSwgJnByaW1lX2Zwcml2 LT5oZWFkLCBlbnRyeSkgeworCQlsaXN0X2RlbCgmbWVtYmVyLT5lbnRyeSk7CisJCWtmcmVlKG1l bWJlcik7CisJfQorfQorRVhQT1JUX1NZTUJPTChkcm1fcHJpbWVfZGVzdHJveV9maWxlX3ByaXZh dGUpOworCitpbnQgZHJtX3ByaW1lX2luc2VydF9mZF9oYW5kbGVfbWFwcGluZyhzdHJ1Y3QgZHJt X3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYsIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVm LCB1aW50MzJfdCBoYW5kbGUpCit7CisJc3RydWN0IGRybV9wcmltZV9tZW1iZXIgKm1lbWJlcjsK KworCW1lbWJlciA9IGttYWxsb2Moc2l6ZW9mKCptZW1iZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IW1lbWJlcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1iZXItPmRtYV9idWYgPSBkbWFfYnVm OworCW1lbWJlci0+aGFuZGxlID0gaGFuZGxlOworCWxpc3RfYWRkKCZtZW1iZXItPmVudHJ5LCAm cHJpbWVfZnByaXYtPmhlYWQpOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fcHJp bWVfaW5zZXJ0X2ZkX2hhbmRsZV9tYXBwaW5nKTsKKworaW50IGRybV9wcmltZV9sb29rdXBfZmRf aGFuZGxlX21hcHBpbmcoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2Zwcml2 LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwgdWludDMyX3QgKmhhbmRsZSkKK3sKKwlzdHJ1Y3Qg ZHJtX3ByaW1lX21lbWJlciAqbWVtYmVyOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShtZW1iZXIs ICZwcmltZV9mcHJpdi0+aGVhZCwgZW50cnkpIHsKKwkJaWYgKG1lbWJlci0+ZG1hX2J1ZiA9PSBk bWFfYnVmKSB7CisJCQkqaGFuZGxlID0gbWVtYmVyLT5oYW5kbGU7CisJCQlyZXR1cm4gMDsKKwkJ fQorCX0KKwlyZXR1cm4gLUVOT0VOVDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3ByaW1lX2xvb2t1 cF9mZF9oYW5kbGVfbWFwcGluZyk7CisKK3ZvaWQgZHJtX3ByaW1lX3JlbW92ZV9mZF9oYW5kbGVf bWFwcGluZyhzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYsIHN0cnVj dCBkbWFfYnVmICpkbWFfYnVmKQoreworCXN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyICptZW1iZXIs ICpzYWZlOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG1lbWJlciwgc2FmZSwgJnByaW1l X2Zwcml2LT5oZWFkLCBlbnRyeSkgeworCQlpZiAobWVtYmVyLT5kbWFfYnVmID09IGRtYV9idWYp IHsKKwkJCWxpc3RfZGVsKCZtZW1iZXItPmVudHJ5KTsKKwkJCWtmcmVlKG1lbWJlcik7CisJCX0K Kwl9Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wcmltZV9yZW1vdmVfZmRfaGFuZGxlX21hcHBpbmcp OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtLmggYi9pbmNsdWRlL2RybS9kcm0uaAppbmRl eCAzNGE3Yjg5Li42NGZmMDJkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm0uaAorKysgYi9p bmNsdWRlL2RybS9kcm0uaApAQCAtNjE3LDYgKzYxNywxNyBAQCBzdHJ1Y3QgZHJtX2dldF9jYXAg ewogCV9fdTY0IHZhbHVlOwogfTsKIAorI2RlZmluZSBEUk1fQ0xPRVhFQyBPX0NMT0VYRUMKK3N0 cnVjdCBkcm1fcHJpbWVfaGFuZGxlIHsKKwlfX3UzMiBoYW5kbGU7CisKKwkvKiogRmxhZ3MuLiBv bmx5IGFwcGxpY2FibGUgZm9yIGhhbmRsZS0+ZmQgKi8KKwlfX3UzMiBmbGFnczsKKworCS8qKiBS ZXR1cm5lZCBkbWFidWYgZmlsZSBkZXNjcmlwdG9yICovCisJX19zMzIgZmQ7Cit9OworCiAjaW5j bHVkZSAiZHJtX21vZGUuaCIKIAogI2RlZmluZSBEUk1fSU9DVExfQkFTRQkJCSdkJwpAQCAtNjcz LDcgKzY4NCw4IEBAIHN0cnVjdCBkcm1fZ2V0X2NhcCB7CiAjZGVmaW5lIERSTV9JT0NUTF9VTkxP Q0sJCURSTV9JT1coIDB4MmIsIHN0cnVjdCBkcm1fbG9jaykKICNkZWZpbmUgRFJNX0lPQ1RMX0ZJ TklTSAkJRFJNX0lPVyggMHgyYywgc3RydWN0IGRybV9sb2NrKQogCi0jZGVmaW5lIERSTV9JT0NU TF9HRU1fUFJJTUVfT1BFTiAgICAgICAgRFJNX0lPV1IoMHgyZSwgc3RydWN0IGRybV9nZW1fb3Bl bikKKyNkZWZpbmUgRFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRCAgICBEUk1fSU9XUigweDJk LCBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX1BSSU1FX0ZEX1RP X0hBTkRMRSAgICBEUk1fSU9XUigweDJlLCBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSkKIAogI2Rl ZmluZSBEUk1fSU9DVExfQUdQX0FDUVVJUkUJCURSTV9JTyggIDB4MzApCiAjZGVmaW5lIERSTV9J T0NUTF9BR1BfUkVMRUFTRQkJRFJNX0lPKCAgMHgzMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAppbmRleCA1NzRiZDFjLi5mMWU5Yzg5IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtUC5oCkBAIC05 MSw2ICs5MSw3IEBAIHN0cnVjdCBkcm1fZGV2aWNlOwogI2RlZmluZSBEUk1fVVRfQ09SRSAJCTB4 MDEKICNkZWZpbmUgRFJNX1VUX0RSSVZFUgkJMHgwMgogI2RlZmluZSBEUk1fVVRfS01TCQkweDA0 CisjZGVmaW5lIERSTV9VVF9QUklNRQkJMHgwOAogLyoKICAqIFRocmVlIGRlYnVnIGxldmVscyBh cmUgZGVmaW5lZC4KICAqIGRybV9jb3JlLCBkcm1fZHJpdmVyLCBkcm1fa21zCkBAIC0xNTAsNiAr MTUxLDcgQEAgaW50IGRybV9lcnIoY29uc3QgY2hhciAqZnVuYywgY29uc3QgY2hhciAqZm9ybWF0 LCAuLi4pOwogI2RlZmluZSBEUklWRVJfSVJRX1ZCTDIgICAgMHg4MDAKICNkZWZpbmUgRFJJVkVS X0dFTSAgICAgICAgIDB4MTAwMAogI2RlZmluZSBEUklWRVJfTU9ERVNFVCAgICAgMHgyMDAwCisj ZGVmaW5lIERSSVZFUl9QUklNRSAgICAgICAweDQwMDAKIAogI2RlZmluZSBEUklWRVJfQlVTX1BD SSAweDEKICNkZWZpbmUgRFJJVkVSX0JVU19QTEFURk9STSAweDIKQEAgLTIxNSw2ICsyMTcsMTEg QEAgaW50IGRybV9lcnIoY29uc3QgY2hhciAqZnVuYywgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4p OwogCQlkcm1fdXRfZGVidWdfcHJpbnRrKERSTV9VVF9LTVMsIERSTV9OQU1FLCAJCVwKIAkJCQkJ IF9fZnVuY19fLCBmbXQsICMjYXJncyk7CVwKIAl9IHdoaWxlICgwKQorI2RlZmluZSBEUk1fREVC VUdfUFJJTUUoZm10LCBhcmdzLi4uKQkJCQkJXAorCWRvIHsJCQkJCQkJCVwKKwkJZHJtX3V0X2Rl YnVnX3ByaW50ayhEUk1fVVRfUFJJTUUsIERSTV9OQU1FLAkJXAorCQkJCQlfX2Z1bmNfXywgZm10 LCAjI2FyZ3MpOwkJXAorCX0gd2hpbGUgKDApCiAjZGVmaW5lIERSTV9MT0coZm10LCBhcmdzLi4u KQkJCQkJCVwKIAlkbyB7CQkJCQkJCQlcCiAJCWRybV91dF9kZWJ1Z19wcmludGsoRFJNX1VUX0NP UkUsIE5VTEwsCQkJXApAQCAtMjM4LDYgKzI0NSw3IEBAIGludCBkcm1fZXJyKGNvbnN0IGNoYXIg KmZ1bmMsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKICNlbHNlCiAjZGVmaW5lIERSTV9ERUJV R19EUklWRVIoZm10LCBhcmdzLi4uKSBkbyB7IH0gd2hpbGUgKDApCiAjZGVmaW5lIERSTV9ERUJV R19LTVMoZm10LCBhcmdzLi4uKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIERSTV9ERUJVR19Q UklNRShmbXQsIGFyZ3MuLi4pCWRvIHsgfSB3aGlsZSAoMCkKICNkZWZpbmUgRFJNX0RFQlVHKGZt dCwgYXJnLi4uKQkJIGRvIHsgfSB3aGlsZSAoMCkKICNkZWZpbmUgRFJNX0xPRyhmbXQsIGFyZy4u LikJCWRvIHsgfSB3aGlsZSAoMCkKICNkZWZpbmUgRFJNX0xPR19LTVMoZm10LCBhcmdzLi4uKSBk byB7IH0gd2hpbGUgKDApCkBAIC00MTAsNiArNDE4LDExIEBAIHN0cnVjdCBkcm1fcGVuZGluZ19l dmVudCB7CiAJdm9pZCAoKmRlc3Ryb3kpKHN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCAqZXZlbnQp OwogfTsKIAorLyogaW5pdGlhbCBpbXBsZW1lbnRhdG9uIHVzaW5nIGEgbGlua2VkIGxpc3QgLSB0 b2RvIGhhc2h0YWIgKi8KK3N0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlIHsKKwlzdHJ1Y3Qg bGlzdF9oZWFkIGhlYWQ7Cit9OworCiAvKiogRmlsZSBwcml2YXRlIGRhdGEgKi8KIHN0cnVjdCBk cm1fZmlsZSB7CiAJaW50IGF1dGhlbnRpY2F0ZWQ7CkBAIC00MzcsNiArNDUwLDggQEAgc3RydWN0 IGRybV9maWxlIHsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBldmVudF93YWl0OwogCXN0cnVjdCBsaXN0 X2hlYWQgZXZlbnRfbGlzdDsKIAlpbnQgZXZlbnRfc3BhY2U7CisKKwlzdHJ1Y3QgZHJtX3ByaW1l X2ZpbGVfcHJpdmF0ZSBwcmltZTsKIH07CiAKIC8qKiBXYWl0IHF1ZXVlICovCkBAIC02NTIsNiAr NjY3LDEyIEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCB7CiAJdWludDMyX3QgcGVuZGluZ193cml0 ZV9kb21haW47CiAKIAl2b2lkICpkcml2ZXJfcHJpdmF0ZTsKKworCS8qIGRtYSBidWYgZXhwb3J0 ZWQgZnJvbSB0aGlzIEdFTSBvYmplY3QgKi8KKwlzdHJ1Y3QgZG1hX2J1ZiAqZXhwb3J0X2RtYV9i dWY7CisKKwkvKiBkbWEgYnVmIGF0dGFjaG1lbnQgYmFja2luZyB0aGlzIG9iamVjdCAqLworCXN0 cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmltcG9ydF9hdHRhY2g7CiB9OwogCiAjaW5jbHVkZSAi ZHJtX2NydGMuaCIKQEAgLTg5MCw2ICs5MTEsMjAgQEAgc3RydWN0IGRybV9kcml2ZXIgewogCWlu dCAoKmdlbV9vcGVuX29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqLCBzdHJ1Y3QgZHJt X2ZpbGUgKik7CiAJdm9pZCAoKmdlbV9jbG9zZV9vYmplY3QpIChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKiwgc3RydWN0IGRybV9maWxlICopOwogCisJLyogcHJpbWU6ICovCisJLyogZXhwb3J0IGhh bmRsZSAtPiBmZCAoc2VlIGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKCkgaGVscGVyKSAqLwor CWludCAoKnByaW1lX2hhbmRsZV90b19mZCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkJdWludDMyX3QgaGFuZGxlLCB1aW50MzJfdCBmbGFn cywgaW50ICpwcmltZV9mZCk7CisJLyogaW1wb3J0IGZkIC0+IGhhbmRsZSAoc2VlIGRybV9nZW1f cHJpbWVfZmRfdG9faGFuZGxlKCkgaGVscGVyKSAqLworCWludCAoKnByaW1lX2ZkX3RvX2hhbmRs ZSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJ CQkJaW50IHByaW1lX2ZkLCB1aW50MzJfdCAqaGFuZGxlKTsKKwkvKiBleHBvcnQgR0VNIC0+IGRt YWJ1ZiAqLworCXN0cnVjdCBkbWFfYnVmICogKCpnZW1fcHJpbWVfZXhwb3J0KShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAorCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgZmxhZ3Mp OworCS8qIGltcG9ydCBkbWFidWYgLT4gR0VNICovCisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICog KCpnZW1fcHJpbWVfaW1wb3J0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCXN0cnVjdCBk bWFfYnVmICpkbWFfYnVmKTsKKwogCS8qIHZnYSBhcmIgaXJxIGhhbmRsZXIgKi8KIAl2b2lkICgq dmdhYXJiX2lycSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBzdGF0ZSk7CiAKQEAgLTE1 MDksNiArMTU0NCwzMiBAQCBleHRlcm4gaW50IGRybV92YmxhbmtfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKmRhdGEpOwogZXh0ZXJuIGludCBkcm1fY2xpZW50c19pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCogZGF0YSk7CiBleHRlcm4gaW50IGRybV9nZW1fbmFtZV9pbmZvKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSk7CiAKKworZXh0ZXJuIGludCBkcm1fZ2VtX3By aW1lX2hhbmRsZV90b19mZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQlzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwgdWludDMyX3QgaGFuZGxlLCB1aW50MzJfdCBmbGFncywKKwkJaW50ICpw cmltZV9mZCk7CitleHRlcm4gaW50IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCisJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBpbnQgcHJpbWVf ZmQsIHVpbnQzMl90ICpoYW5kbGUpOworCitleHRlcm4gaW50IGRybV9wcmltZV9oYW5kbGVfdG9f ZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkJc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fcHJpbWVfZmRfdG9faGFuZGxl X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJCXN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsKKworZXh0ZXJuIHN0cnVjdCBzZ190YWJsZSAqZHJtX3ByaW1l X3BhZ2VzX3RvX3NnKHN0cnVjdCBwYWdlICoqcGFnZXMsIGludCBucl9wYWdlcyk7CitleHRlcm4g dm9pZCBkcm1fcHJpbWVfZ2VtX2Rlc3Ryb3koc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0 cnVjdCBzZ190YWJsZSAqc2cpOworCisKK3ZvaWQgZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRl KHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdik7Cit2b2lkIGRybV9w cmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZShzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAq cHJpbWVfZnByaXYpOworaW50IGRybV9wcmltZV9pbnNlcnRfZmRfaGFuZGxlX21hcHBpbmcoc3Ry dWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2Zwcml2LCBzdHJ1Y3QgZG1hX2J1ZiAq ZG1hX2J1ZiwgdWludDMyX3QgaGFuZGxlKTsKK2ludCBkcm1fcHJpbWVfbG9va3VwX2ZkX2hhbmRs ZV9tYXBwaW5nKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpwcmltZV9mcHJpdiwgc3Ry dWN0IGRtYV9idWYgKmRtYV9idWYsIHVpbnQzMl90ICpoYW5kbGUpOwordm9pZCBkcm1fcHJpbWVf cmVtb3ZlX2ZkX2hhbmRsZV9tYXBwaW5nKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2YXRlICpw cmltZV9mcHJpdiwgc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOworCitpbnQgZHJtX3ByaW1lX2Fk ZF9kbWFfYnVmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKTsKK2ludCBkcm1fcHJpbWVfbG9va3VwX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgZG1hX2J1ZiAqYnVmLAorCQkJIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9iaik7CisK ICNpZiBEUk1fREVCVUdfQ09ERQogZXh0ZXJuIGludCBkcm1fdm1hX2luZm8oc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICpkYXRhKTsKICNlbmRpZgotLSAKMS43LjcuNgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK