From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v3 2/2] drm/tinydrm: Switch from CMA to shmem buffers Date: Tue, 11 Sep 2018 14:44:00 +0200 Message-ID: <20180911124400.40588-3-noralf@tronnes.org> References: <20180911124400.40588-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id B9C4F6E078 for ; Tue, 11 Sep 2018 12:44:14 +0000 (UTC) In-Reply-To: <20180911124400.40588-1-noralf@tronnes.org> 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: sam@ravnborg.org, david@lechnology.com List-Id: dri-devel@lists.freedesktop.org VGhpcyBtb3ZlIG1ha2VzIHRpbnlkcm0gdXNlZnVsIGZvciBtb3JlIGRyaXZlcnMuIHRpbnlkcm0g ZG9lc24ndCBuZWVkCmNvbnRpbnVvdXMgbWVtb3J5LCBidXQgYXQgdGhlIHRpbWUgaXQgd2FzIGNv bnZlbmllbnQgdG8gdXNlIHRoZSBDTUEKbGlicmFyeS4gVGhlIHNwaSBjb3JlIGNhbiBkbyBkbWEg b24gaXNfdm1hbGxvYygpIGFkZHJlc3NlcyBtYWtpbmcgdGhpcwpwb3NzaWJsZS4KCkNjOiBEYXZp ZCBMZWNobmVyIDxkYXZpZEBsZWNobm9sb2d5LmNvbT4KU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRy w7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v S2NvbmZpZyAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9j b3JlL3Rpbnlkcm0tY29yZS5jICAgIHwgOTEgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1oZWxwZXJzLmMgfCAgNSArKwogZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jICAgICAgICAgICAgICB8IDE0ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYyAgICAgICAgICAgICAgfCAgNiArLQogZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vbWkwMjgzcXQuYyAgICAgICAgICAgICB8ICA2ICstCiBkcml2 ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jICAgICAgICAgICAgIHwgMzggKysrKy0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3JlcGFwZXIuYyAgICAgICAgICAgICAgfCAyNCAr KystLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYyAgICAgICAgICAgICAgIHwg MTUgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYyAgICAgICAgICAgICAg fCAgNiArLQogaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLmggICAgICAgICAgICAgICAgICB8 IDM2ICsrKy0tLS0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDE1NCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9LY29uZmln IGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vS2NvbmZpZwppbmRleCAxNmY0YjVjOTFmMWIuLmFh MGNhYmJhNWFjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vS2NvbmZpZwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9LY29uZmlnCkBAIC0yLDcgKzIsNyBAQCBtZW51 Y29uZmlnIERSTV9USU5ZRFJNCiAJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHNpbXBsZSBkaXNwbGF5 cyIKIAlkZXBlbmRzIG9uIERSTQogCXNlbGVjdCBEUk1fS01TX0hFTFBFUgotCXNlbGVjdCBEUk1f S01TX0NNQV9IRUxQRVIKKwlzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVIKIAloZWxwCiAJICBD aG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSB0aW55ZHJtIHN1cHBvcnRlZCBkaXNwbGF5 LgogCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHRpbnlkcm0u CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0tY29yZS5j IGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWNvcmUuYwppbmRleCAyNTUz NDFlZTRlYjkuLmVmZDgzMzY3YWFlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vY29yZS90aW55ZHJtLWNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3Jl L3Rpbnlkcm0tY29yZS5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRj X2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJt L2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fc2ht ZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS5oPgogI2luY2x1ZGUg PGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KQEAgLTIzLDcgKzI0 LDcgQEAKICAqCiAgKiBJdCBpcyBiYXNlZCBvbiAmZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgY291 cGxlZCB3aXRoIGEgJmRybV9jb25uZWN0b3Igd2hpY2gKICAqIGhhcyBvbmx5IG9uZSBmaXhlZCAm ZHJtX2Rpc3BsYXlfbW9kZS4gVGhlIGZyYW1lYnVmZmVycyBhcmUgYmFja2VkIGJ5IHRoZQotICog Y21hIGhlbHBlciBhbmQgaGF2ZSBzdXBwb3J0IGZvciBmcmFtZWJ1ZmZlciBmbHVzaGluZyAoZGly dHkpLgorICogc2htZW0gYnVmZmVycyBhbmQgaGF2ZSBzdXBwb3J0IGZvciBmcmFtZWJ1ZmZlciBm bHVzaGluZyAoZGlydHkpLgogICogZmJkZXYgc3VwcG9ydCBpcyBhbHNvIGluY2x1ZGVkLgogICoK ICAqLwpAQCAtMzcsODQgKzM4LDM4IEBACiAgKi8KIAogLyoqCi0gKiB0aW55ZHJtX2dlbV9jbWFf cHJpbWVfaW1wb3J0X3NnX3RhYmxlIC0gUHJvZHVjZSBhIENNQSBHRU0gb2JqZWN0IGZyb20KLSAq ICAgICBhbm90aGVyIGRyaXZlcidzIHNjYXR0ZXIvZ2F0aGVyIHRhYmxlIG9mIHBpbm5lZCBwYWdl cwotICogQGRybTogRFJNIGRldmljZSB0byBpbXBvcnQgaW50bwotICogQGF0dGFjaDogRE1BLUJV RiBhdHRhY2htZW50Ci0gKiBAc2d0OiBTY2F0dGVyL2dhdGhlciB0YWJsZSBvZiBwaW5uZWQgcGFn ZXMKKyAqIHRpbnlkcm1fZmJfZGVzdHJveSAtIERlc3Ryb3kgZnJhbWVidWZmZXIKKyAqIEBmYjog RnJhbWVidWZmZXIKICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGltcG9ydHMgYSBzY2F0dGVyL2dhdGhl ciB0YWJsZSBleHBvcnRlZCB2aWEgRE1BLUJVRiBieQotICogYW5vdGhlciBkcml2ZXIgdXNpbmcg ZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlKCkuIEl0IHNldHMgdGhlCi0gKiBrZXJu ZWwgdmlydHVhbCBhZGRyZXNzIG9uIHRoZSBDTUEgb2JqZWN0LiBEcml2ZXJzIHNob3VsZCB1c2Ug dGhpcyBhcyB0aGVpcgotICogJmRybV9kcml2ZXItPmdlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUg Y2FsbGJhY2sgaWYgdGhleSBuZWVkIHRoZSB2aXJ0dWFsCi0gKiBhZGRyZXNzLiB0aW55ZHJtX2dl bV9jbWFfZnJlZV9vYmplY3QoKSBzaG91bGQgYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoCi0g KiB0aGlzIGZ1bmN0aW9uLgotICoKLSAqIFJldHVybnM6Ci0gKiBBIHBvaW50ZXIgdG8gYSBuZXds eSBjcmVhdGVkIEdFTSBvYmplY3Qgb3IgYW4gRVJSX1BUUi1lbmNvZGVkIG5lZ2F0aXZlCi0gKiBl cnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKiBUaGlzIGZ1bmN0aW9uIHVubWFwcyB0aGUgdmlydHVh bCBhZGRyZXNzIG9uIHRoZSBiYWNraW5nIGJ1ZmZlciBhbmQgZGVzdHJveXMgdGhlIGZyYW1lYnVm ZmVyLgorICogRHJpdmVycyBzaG91bGQgdXNlIHRoaXMgYXMgdGhlaXIgJmRybV9mcmFtZWJ1ZmZl cl9mdW5jcy0+ZGVzdHJveSBjYWxsYmFjay4KICAqLwotc3RydWN0IGRybV9nZW1fb2JqZWN0ICoK LXRpbnlkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2Ug KmRybSwKLQkJCQkgICAgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCi0JCQkJ ICAgICAgc3RydWN0IHNnX3RhYmxlICpzZ3QpCit2b2lkIHRpbnlkcm1fZmJfZGVzdHJveShzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIHsKLQlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpj bWFfb2JqOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwotCXZvaWQgKnZhZGRyOwotCi0J dmFkZHIgPSBkbWFfYnVmX3ZtYXAoYXR0YWNoLT5kbWFidWYpOwotCWlmICghdmFkZHIpIHsKLQkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gdm1hcCBQUklNRSBidWZmZXJcbiIpOwotCQlyZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKLQl9Ci0KLQlvYmogPSBkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2df dGFibGUoZHJtLCBhdHRhY2gsIHNndCk7Ci0JaWYgKElTX0VSUihvYmopKSB7Ci0JCWRtYV9idWZf dnVubWFwKGF0dGFjaC0+ZG1hYnVmLCB2YWRkcik7Ci0JCXJldHVybiBvYmo7Ci0JfQotCi0JY21h X29iaiA9IHRvX2RybV9nZW1fY21hX29iaihvYmopOwotCWNtYV9vYmotPnZhZGRyID0gdmFkZHI7 Ci0KLQlyZXR1cm4gb2JqOworCWRybV9nZW1fc2htZW1fdnVubWFwKHRvX2RybV9nZW1fc2htZW1f b2JqKGZiLT5vYmpbMF0pKTsKKwlkcm1fZ2VtX2ZiX2Rlc3Ryb3koZmIpOwogfQotRVhQT1JUX1NZ TUJPTCh0aW55ZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlKTsKLQotLyoqCi0gKiB0 aW55ZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QgLSBGcmVlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdp dGggYSBDTUEgR0VNCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QKLSAq IEBnZW1fb2JqOiBHRU0gb2JqZWN0IHRvIGZyZWUKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGZyZWVz IHRoZSBiYWNraW5nIG1lbW9yeSBvZiB0aGUgQ01BIEdFTSBvYmplY3QsIGNsZWFucyB1cCB0aGUK LSAqIEdFTSBvYmplY3Qgc3RhdGUgYW5kIGZyZWVzIHRoZSBtZW1vcnkgdXNlZCB0byBzdG9yZSB0 aGUgb2JqZWN0IGl0c2VsZiB1c2luZwotICogZHJtX2dlbV9jbWFfZnJlZV9vYmplY3QoKS4gSXQg YWxzbyBoYW5kbGVzIFBSSU1FIGJ1ZmZlcnMgd2hpY2ggaGFzIHRoZSBrZXJuZWwKLSAqIHZpcnR1 YWwgYWRkcmVzcyBzZXQgYnkgdGlueWRybV9nZW1fY21hX3ByaW1lX2ltcG9ydF9zZ190YWJsZSgp LiBEcml2ZXJzCi0gKiBjYW4gdXNlIHRoaXMgYXMgdGhlaXIgJmRybV9kcml2ZXItPmdlbV9mcmVl X29iamVjdF91bmxvY2tlZCBjYWxsYmFjay4KLSAqLwotdm9pZCB0aW55ZHJtX2dlbV9jbWFfZnJl ZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQotewotCWlmIChnZW1fb2Jq LT5pbXBvcnRfYXR0YWNoKSB7Ci0JCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmo7 Ci0KLQkJY21hX29iaiA9IHRvX2RybV9nZW1fY21hX29iaihnZW1fb2JqKTsKLQkJZG1hX2J1Zl92 dW5tYXAoZ2VtX29iai0+aW1wb3J0X2F0dGFjaC0+ZG1hYnVmLCBjbWFfb2JqLT52YWRkcik7Ci0J CWNtYV9vYmotPnZhZGRyID0gTlVMTDsKLQl9Ci0KLQlkcm1fZ2VtX2NtYV9mcmVlX29iamVjdChn ZW1fb2JqKTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKHRpbnlkcm1fZ2VtX2NtYV9mcmVlX29iamVj dCk7CitFWFBPUlRfU1lNQk9MKHRpbnlkcm1fZmJfZGVzdHJveSk7CiAKIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICoKIHRpbnlkcm1fZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk cm0sIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCQkgIGNvbnN0IHN0cnVjdCBkcm1fbW9k ZV9mYl9jbWQyICptb2RlX2NtZCkKIHsKIAlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKnRkZXYgPSBk cm0tPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworCWludCByZXQ7 CiAKLQlyZXR1cm4gZHJtX2dlbV9mYl9jcmVhdGVfd2l0aF9mdW5jcyhkcm0sIGZpbGVfcHJpdiwg bW9kZV9jbWQsCi0JCQkJCSAgICB0ZGV2LT5mYl9mdW5jcyk7CisJZmIgPSBkcm1fZ2VtX2ZiX2Ny ZWF0ZV93aXRoX2Z1bmNzKGRybSwgZmlsZV9wcml2LCBtb2RlX2NtZCwgdGRldi0+ZmJfZnVuY3Mp OworCWlmIChJU19FUlIoZmIpKQorCQlyZXR1cm4gZmI7CisKKwlyZXQgPSBkcm1fZ2VtX3NobWVt X3ZtYXAodG9fZHJtX2dlbV9zaG1lbV9vYmooZmItPm9ialswXSkpOworCWlmIChyZXQpIHsKKwkJ ZHJtX2dlbV9mYl9kZXN0cm95KGZiKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisKKwly ZXR1cm4gZmI7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNz IHRpbnlkcm1fbW9kZV9jb25maWdfZnVuY3MgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdGlueWRybS9jb3JlL3Rpbnlkcm0taGVscGVycy5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYwppbmRleCBkY2QzOTAxNjNhNGEuLmY5ZDM1YWNmZjIz ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBl cnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0taGVscGVycy5j CkBAIC05LDEyICs5LDE3IEBACiAKICNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KICNpbmNs dWRlIDxsaW51eC9kbWEtYnVmLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVk ZSA8bGludXgvcG0uaD4KICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CiAjaW5jbHVkZSA8bGlu dXgvc3dhYi5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX2Rydi5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL3Rp bnlkcm0vdGlueWRybS5oPgogI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5o PgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIAogc3RhdGljIHVuc2lnbmVkIGludCBzcGlf bWF4OwogbW9kdWxlX3BhcmFtKHNwaV9tYXgsIHVpbnQsIDA0MDApOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v aWxpOTIyNS5jCmluZGV4IDQ1NWZlZmUwMTJmNS4uYzI0ZDZlNGM4MzRiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vaWxpOTIyNS5jCkBAIC0yMCw4ICsyMCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaS9z cGkuaD4KICNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KIAorI2luY2x1ZGUgPGRybS9k cm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5o PgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3NobWVtX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS90 aW55ZHJtL21pcGktZGJpLmg+CiAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJz Lmg+CiAKQEAgLTc3LDcgKzgwLDggQEAgc3RhdGljIGludCBpbGk5MjI1X2ZiX2RpcnR5KHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJICAgIHVuc2lnbmVkIGludCBjb2xvciwgc3RydWN0 IGRybV9jbGlwX3JlY3QgKmNsaXBzLAogCQkJICAgIHVuc2lnbmVkIGludCBudW1fY2xpcHMpCiB7 Ci0Jc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiA9IGRybV9mYl9jbWFfZ2V0X2dl bV9vYmooZmIsIDApOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtID0gZHJtX2dlbV9mYl9n ZXRfb2JqKGZiLCAwKTsKKwlzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtID0gdG9f ZHJtX2dlbV9zaG1lbV9vYmooZ2VtKTsKIAlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKnRkZXYgPSBm Yi0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkgPSBtaXBpX2RiaV9m cm9tX3Rpbnlkcm0odGRldik7CiAJYm9vbCBzd2FwID0gbWlwaS0+c3dhcF9ieXRlczsKQEAgLTEw NCw3ICsxMDgsNyBAQCBzdGF0aWMgaW50IGlsaTkyMjVfZmJfZGlydHkoc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIsCiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0gZWxzZSB7Ci0JCXRy ID0gY21hX29iai0+dmFkZHI7CisJCXRyID0gc2htZW0tPnZhZGRyOwogCX0KIAogCXN3aXRjaCAo bWlwaS0+cm90YXRpb24pIHsKQEAgLTE1Nyw3ICsxNjEsNyBAQCBzdGF0aWMgaW50IGlsaTkyMjVf ZmJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGlsaTkyMjVfZmJfZnVuY3MgPSB7Ci0JLmRlc3Ry b3kJPSBkcm1fZ2VtX2ZiX2Rlc3Ryb3ksCisJLmRlc3Ryb3kJPSB0aW55ZHJtX2ZiX2Rlc3Ryb3ks CiAJLmNyZWF0ZV9oYW5kbGUJPSBkcm1fZ2VtX2ZiX2NyZWF0ZV9oYW5kbGUsCiAJLmRpcnR5CQk9 IHRpbnlkcm1fZmJfZGlydHksCiB9OwpAQCAtMzYxLDEzICszNjUsMTMgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGlsaTkyMjVfbW9kZSA9IHsKIAlUSU5ZRFJNX01PREUo MTc2LCAyMjAsIDM1LCA0NCksCiB9OwogCi1ERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhpbGk5MjI1 X2ZvcHMpOworREVGSU5FX0RSTV9HRU1fU0hNRU1fRk9QUyhpbGk5MjI1X2ZvcHMpOwogCiBzdGF0 aWMgc3RydWN0IGRybV9kcml2ZXIgaWxpOTIyNV9kcml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJl cwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8CiAJCQkJICBE UklWRVJfQVRPTUlDLAogCS5mb3BzCQkJPSAmaWxpOTIyNV9mb3BzLAotCVRJTllEUk1fR0VNX0RS SVZFUl9PUFMsCisJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAogCS5uYW1lCQkJPSAiaWxpOTIy NSIsCiAJLmRlc2MJCQk9ICJJbGl0ZWsgSUxJOTIyNSIsCiAJLmRhdGUJCQk9ICIyMDE3MTEwNiIs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MzQxLmMgYi9kcml2ZXJz L2dwdS9kcm0vdGlueWRybS9pbGk5MzQxLmMKaW5kZXggNjcwMTAzNzc0OWE3Li43YTgwZjhlNmQ2 ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkzNDEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MzQxLmMKQEAgLTE1LDggKzE1LDEwIEBACiAjaW5j bHVkZSA8bGludXgvcHJvcGVydHkuaD4KICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CiAKKyNp bmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJt L2RybV9nZW1fc2htZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBl ci5oPgogI2luY2x1ZGUgPGRybS90aW55ZHJtL21pcGktZGJpLmg+CiAjaW5jbHVkZSA8ZHJtL3Rp bnlkcm0vdGlueWRybS1oZWxwZXJzLmg+CkBAIC0xMzksMTIgKzE0MSwxMiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgeXgyNDBxdjI5X21vZGUgPSB7CiAJVElOWURSTV9N T0RFKDI0MCwgMzIwLCAzNywgNDkpLAogfTsKIAotREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoaWxp OTM0MV9mb3BzKTsKK0RFRklORV9EUk1fR0VNX1NITUVNX0ZPUFMoaWxpOTM0MV9mb3BzKTsKIAog c3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGlsaTkzNDFfZHJpdmVyID0gewogCS5kcml2ZXJfZmVh dHVyZXMJPSBEUklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfUFJJTUUgfCBEUklW RVJfQVRPTUlDLAogCS5mb3BzCQkJPSAmaWxpOTM0MV9mb3BzLAotCVRJTllEUk1fR0VNX0RSSVZF Ul9PUFMsCisJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAogCS5kZWJ1Z2ZzX2luaXQJCT0gbWlw aV9kYmlfZGVidWdmc19pbml0LAogCS5uYW1lCQkJPSAiaWxpOTM0MSIsCiAJLmRlc2MJCQk9ICJJ bGl0ZWsgSUxJOTM0MSIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAy ODNxdC5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWkwMjgzcXQuYwppbmRleCBkN2JiNGM1 ZTY2NTcuLmI1ODM3YTZiMzYzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v bWkwMjgzcXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jCkBAIC0x Nyw5ICsxNywxMSBAQAogI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogI2lu Y2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CiAjaW5j bHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGVzZXRfaGVs cGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5j bHVkZSA8ZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0v bWlwaS1kYmkuaD4KICNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaD4KICNp bmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KQEAgLTE0NywxMyArMTQ5LDEzIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtaTAyODNxdF9tb2RlID0gewogCVRJTllE Uk1fTU9ERSgzMjAsIDI0MCwgNTgsIDQzKSwKIH07CiAKLURFRklORV9EUk1fR0VNX0NNQV9GT1BT KG1pMDI4M3F0X2ZvcHMpOworREVGSU5FX0RSTV9HRU1fU0hNRU1fRk9QUyhtaTAyODNxdF9mb3Bz KTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIG1pMDI4M3F0X2RyaXZlciA9IHsKIAkuZHJp dmVyX2ZlYXR1cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX1BSSU1F IHwKIAkJCQkgIERSSVZFUl9BVE9NSUMsCiAJLmZvcHMJCQk9ICZtaTAyODNxdF9mb3BzLAotCVRJ TllEUk1fR0VNX0RSSVZFUl9PUFMsCisJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAogCS5kZWJ1 Z2ZzX2luaXQJCT0gbWlwaV9kYmlfZGVidWdmc19pbml0LAogCS5uYW1lCQkJPSAibWkwMjgzcXQi LAogCS5kZXNjCQkJPSAiTXVsdGktSW5ubyBNSTAyODNRVCIsCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlw aS1kYmkuYwppbmRleCBjYjM0NDFlNTFkNWYuLmUwZjU5MTc3YzJlZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlu eWRybS9taXBpLWRiaS5jCkBAIC05LDEwICs5LDE1IEBACiAgKiAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgogICovCiAKKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2lu Y2x1ZGUgPGRybS9kcm1fZHJ2Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNs dWRlIDxkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJt X2dlbV9zaG1lbV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vdGlueWRybS9taXBpLWRiaS5oPgog I2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgogI2luY2x1ZGUgPGxpbnV4 L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2Rt YS1idWYuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+CkBAIC0xNjcsMTAgKzE3MiwxMSBAQCBFWFBPUlRfU1lNQk9MKG1pcGlfZGJp X2NvbW1hbmRfYnVmKTsKIGludCBtaXBpX2RiaV9idWZfY29weSh2b2lkICpkc3QsIHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAogCQkgICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcCwg Ym9vbCBzd2FwKQogewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1f ZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICpp bXBvcnRfYXR0YWNoID0gY21hX29iai0+YmFzZS5pbXBvcnRfYXR0YWNoOworCXN0cnVjdCBkcm1f Z2VtX29iamVjdCAqZ2VtID0gZHJtX2dlbV9mYl9nZXRfb2JqKGZiLCAwKTsKKwlzdHJ1Y3QgZHJt X2dlbV9zaG1lbV9vYmplY3QgKnNobWVtID0gdG9fZHJtX2dlbV9zaG1lbV9vYmooZ2VtKTsKKwlz dHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoID0gZ2VtLT5pbXBvcnRfYXR0 YWNoOwogCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwotCXZvaWQgKnNy YyA9IGNtYV9vYmotPnZhZGRyOworCXZvaWQgKnNyYyA9IHNobWVtLT52YWRkcjsKIAlpbnQgcmV0 ID0gMDsKIAogCWlmIChpbXBvcnRfYXR0YWNoKSB7CkBAIC0yMTAsNyArMjE2LDggQEAgc3RhdGlj IGludCBtaXBpX2RiaV9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCSAg ICAgc3RydWN0IGRybV9jbGlwX3JlY3QgKmNsaXBzLAogCQkJICAgICB1bnNpZ25lZCBpbnQgbnVt X2NsaXBzKQogewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1fZmJf Y21hX2dldF9nZW1fb2JqKGZiLCAwKTsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSA9IGRy bV9nZW1fZmJfZ2V0X29iaihmYiwgMCk7CisJc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpz aG1lbSA9IHRvX2RybV9nZW1fc2htZW1fb2JqKGdlbSk7CiAJc3RydWN0IHRpbnlkcm1fZGV2aWNl ICp0ZGV2ID0gZmItPmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IG1pcGlfZGJpICptaXBpID0g bWlwaV9kYmlfZnJvbV90aW55ZHJtKHRkZXYpOwogCWJvb2wgc3dhcCA9IG1pcGktPnN3YXBfYnl0 ZXM7CkBAIC0yMzUsNyArMjQyLDcgQEAgc3RhdGljIGludCBtaXBpX2RiaV9mYl9kaXJ0eShzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfSBl bHNlIHsKLQkJdHIgPSBjbWFfb2JqLT52YWRkcjsKKwkJdHIgPSBzaG1lbS0+dmFkZHI7CiAJfQog CiAJbWlwaV9kYmlfY29tbWFuZChtaXBpLCBNSVBJX0RDU19TRVRfQ09MVU1OX0FERFJFU1MsCkBA IC0yNTIsNyArMjU5LDcgQEAgc3RhdGljIGludCBtaXBpX2RiaV9mYl9kaXJ0eShzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZm ZXJfZnVuY3MgbWlwaV9kYmlfZmJfZnVuY3MgPSB7Ci0JLmRlc3Ryb3kJPSBkcm1fZ2VtX2ZiX2Rl c3Ryb3ksCisJLmRlc3Ryb3kJPSB0aW55ZHJtX2ZiX2Rlc3Ryb3ksCiAJLmNyZWF0ZV9oYW5kbGUJ PSBkcm1fZ2VtX2ZiX2NyZWF0ZV9oYW5kbGUsCiAJLmRpcnR5CQk9IHRpbnlkcm1fZmJfZGlydHks CiB9OwpAQCAtODgyLDMxICs4ODksMTIgQEAgaW50IG1pcGlfZGJpX3NwaV9pbml0KHN0cnVjdCBz cGlfZGV2aWNlICpzcGksIHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKIHsKIAlzaXplX3QgdHhfc2l6 ZSA9IHRpbnlkcm1fc3BpX21heF90cmFuc2Zlcl9zaXplKHNwaSwgMCk7CiAJc3RydWN0IGRldmlj ZSAqZGV2ID0gJnNwaS0+ZGV2OwotCWludCByZXQ7CiAKIAlpZiAodHhfc2l6ZSA8IDE2KSB7CiAJ CURSTV9FUlJPUigiU1BJIHRyYW5zbWl0IGJ1ZmZlciB0b28gc21hbGw6ICV6dVxuIiwgdHhfc2l6 ZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCS8qCi0JICogRXZlbiB0aG91Z2ggaXQncyBu b3QgdGhlIFNQSSBkZXZpY2UgdGhhdCBkb2VzIERNQSAodGhlIG1hc3RlciBkb2VzKSwKLQkgKiB0 aGUgZG1hIG1hc2sgaXMgbmVjZXNzYXJ5IGZvciB0aGUgZG1hX2FsbG9jX3djKCkgaW4KLQkgKiBk cm1fZ2VtX2NtYV9jcmVhdGUoKS4gVGhlIGRtYV9hZGRyIHJldHVybmVkIHdpbGwgYmUgYSBwaHlz aWNhbAotCSAqIGFkZGRyZXNzIHdoaWNoIG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBidXMg YWRkcmVzcywgYnV0IHRoaXMgaXMKLQkgKiBub3QgYSBwcm9ibGVtIHNpbmNlIHRoZSBhZGRyZXNz IHdpbGwgbm90IGJlIHVzZWQuCi0JICogVGhlIHZpcnR1YWwgYWRkcmVzcyBpcyB1c2VkIGluIHRo ZSB0cmFuc2ZlciBhbmQgdGhlIFNQSSBjb3JlCi0JICogcmUtbWFwcyBpdCBvbiB0aGUgU1BJIG1h c3RlciBkZXZpY2UgdXNpbmcgdGhlIERNQSBzdHJlYW1pbmcgQVBJCi0JICogKHNwaV9tYXBfYnVm KCkpLgotCSAqLwotCWlmICghZGV2LT5jb2hlcmVudF9kbWFfbWFzaykgewotCQlyZXQgPSBkbWFf Y29lcmNlX21hc2tfYW5kX2NvaGVyZW50KGRldiwgRE1BX0JJVF9NQVNLKDMyKSk7Ci0JCWlmIChy ZXQpIHsKLQkJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBzZXQgZG1hIG1hc2sgJWRcbiIsIHJl dCk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQotCiAJbWlwaS0+c3BpID0gc3BpOwogCW1pcGkt PnJlYWRfY29tbWFuZHMgPSBtaXBpX2RiaV9kY3NfcmVhZF9jb21tYW5kczsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vcmVwYXBlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vcmVwYXBlci5jCmluZGV4IDUwYTFkNDIxNmNlNy4uODJkOGM2YmYwYzkxIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Rpbnlkcm0vcmVwYXBlci5jCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVkZSA8bGludXgv c3BpL3NwaS5oPgogI2luY2x1ZGUgPGxpbnV4L3RoZXJtYWwuaD4KIAorI2luY2x1ZGUgPGRybS9k cm1fZHJ2Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3Rpbnlk cm0vdGlueWRybS5oPgogI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgog CkBAIC01MjYsOCArNTI4LDkgQEAgc3RhdGljIGludCByZXBhcGVyX2ZiX2RpcnR5KHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAogCQkJICAgIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywK IAkJCSAgICB1bnNpZ25lZCBpbnQgbnVtX2NsaXBzKQogewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QgKmNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQlzdHJ1Y3Qg ZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0YWNoID0gY21hX29iai0+YmFzZS5pbXBvcnRf YXR0YWNoOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtID0gZHJtX2dlbV9mYl9nZXRfb2Jq KGZiLCAwKTsKKwlzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtID0gdG9fZHJtX2dl bV9zaG1lbV9vYmooZ2VtKTsKKwlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICppbXBvcnRfYXR0 YWNoID0gZ2VtLT5pbXBvcnRfYXR0YWNoOwogCXN0cnVjdCB0aW55ZHJtX2RldmljZSAqdGRldiA9 IGZiLT5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCByZXBhcGVyX2VwZCAqZXBkID0gZXBkX2Zy b21fdGlueWRybSh0ZGV2KTsKIAlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBjbGlwOwpAQCAtNTU5LDcg KzU2Miw3IEBAIHN0YXRpYyBpbnQgcmVwYXBlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKIAkJCWdvdG8gb3V0X2ZyZWU7CiAJfQogCi0JdGlueWRybV94cmdiODg4OF90b19n cmF5OChidWYsIGNtYV9vYmotPnZhZGRyLCBmYiwgJmNsaXApOworCXRpbnlkcm1feHJnYjg4ODhf dG9fZ3JheTgoYnVmLCBzaG1lbS0+dmFkZHIsIGZiLCAmY2xpcCk7CiAKIAlpZiAoaW1wb3J0X2F0 dGFjaCkgewogCQlyZXQgPSBkbWFfYnVmX2VuZF9jcHVfYWNjZXNzKGltcG9ydF9hdHRhY2gtPmRt YWJ1ZiwKQEAgLTYyNCw3ICs2MjcsNyBAQCBzdGF0aWMgaW50IHJlcGFwZXJfZmJfZGlydHkoc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyX2Z1bmNzIHJlcGFwZXJfZmJfZnVuY3MgPSB7Ci0JLmRlc3Ryb3kJPSBkcm1fZ2Vt X2ZiX2Rlc3Ryb3ksCisJLmRlc3Ryb3kJPSB0aW55ZHJtX2ZiX2Rlc3Ryb3ksCiAJLmNyZWF0ZV9o YW5kbGUJPSBkcm1fZ2VtX2ZiX2NyZWF0ZV9oYW5kbGUsCiAJLmRpcnR5CQk9IHRpbnlkcm1fZmJf ZGlydHksCiB9OwpAQCAtODc2LDEzICs4NzksMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlIHJlcGFwZXJfZTIyNzFjczAyMV9tb2RlID0gewogc3RhdGljIGNvbnN0IHU4 IHJlcGFwZXJfZTIyNzFjczAyMV9jc1tdID0geyAweDAwLCAweDAwLCAweDAwLCAweDdmLAogCQkJ CQkgICAgMHhmZiwgMHhmZSwgMHgwMCwgMHgwMCB9OwogCi1ERUZJTkVfRFJNX0dFTV9DTUFfRk9Q UyhyZXBhcGVyX2ZvcHMpOworREVGSU5FX0RSTV9HRU1fU0hNRU1fRk9QUyhyZXBhcGVyX2ZvcHMp OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgcmVwYXBlcl9kcml2ZXIgPSB7CiAJLmRyaXZl cl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9QUklNRSB8 CiAJCQkJICBEUklWRVJfQVRPTUlDLAogCS5mb3BzCQkJPSAmcmVwYXBlcl9mb3BzLAotCVRJTllE Uk1fR0VNX0RSSVZFUl9PUFMsCisJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAogCS5uYW1lCQkJ PSAicmVwYXBlciIsCiAJLmRlc2MJCQk9ICJQZXJ2YXNpdmUgRGlzcGxheXMgUmVQYXBlciBlLWlu ayBwYW5lbHMiLAogCS5kYXRlCQkJPSAiMjAxNzA0MDUiLApAQCAtOTI5LDE1ICs5MzIsNiBAQCBz dGF0aWMgaW50IHJlcGFwZXJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkJbW9kZWwg PSBzcGlfaWQtPmRyaXZlcl9kYXRhOwogCX0KIAotCS8qIFRoZSBTUEkgZGV2aWNlIGlzIHVzZWQg dG8gYWxsb2NhdGUgZG1hIG1lbW9yeSAqLwotCWlmICghZGV2LT5jb2hlcmVudF9kbWFfbWFzaykg ewotCQlyZXQgPSBkbWFfY29lcmNlX21hc2tfYW5kX2NvaGVyZW50KGRldiwgRE1BX0JJVF9NQVNL KDMyKSk7Ci0JCWlmIChyZXQpIHsKLQkJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBzZXQgZG1h IG1hc2sgJWRcbiIsIHJldCk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQotCiAJZXBkID0gZGV2 bV9remFsbG9jKGRldiwgc2l6ZW9mKCplcGQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWVwZCkKIAkJ cmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1 ODYuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzU4Ni5jCmluZGV4IDJmY2JjMzA2N2Q3 MS4uMzQwYzliZTI2MTNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1 ODYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYwpAQCAtMTcsOCArMTcs MTAgQEAKICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CiAjaW5jbHVkZSA8dmlkZW8vbWlwaV9k aXNwbGF5Lmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1f ZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+ CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3Rp bnlkcm0vbWlwaS1kYmkuaD4KICNpbmNsdWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMu aD4KIApAQCAtODgsOSArOTAsMTAgQEAgc3RhdGljIHZvaWQgc3Q3NTg2X3hyZ2I4ODg4X3RvX2dy YXkzMzIodTggKmRzdCwgdm9pZCAqdmFkZHIsCiBzdGF0aWMgaW50IHN0NzU4Nl9idWZfY29weSh2 b2lkICpkc3QsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJICAgc3RydWN0IGRybV9j bGlwX3JlY3QgKmNsaXApCiB7Ci0Jc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiA9 IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOwotCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1l bnQgKmltcG9ydF9hdHRhY2ggPSBjbWFfb2JqLT5iYXNlLmltcG9ydF9hdHRhY2g7Ci0Jdm9pZCAq c3JjID0gY21hX29iai0+dmFkZHI7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0gPSBkcm1f Z2VtX2ZiX2dldF9vYmooZmIsIDApOworCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmltcG9y dF9hdHRhY2ggPSBnZW0tPmltcG9ydF9hdHRhY2g7CisJc3RydWN0IGRybV9nZW1fc2htZW1fb2Jq ZWN0ICpzaG1lbSA9IHRvX2RybV9nZW1fc2htZW1fb2JqKGdlbSk7CisJdm9pZCAqc3JjID0gc2ht ZW0tPnZhZGRyOwogCWludCByZXQgPSAwOwogCiAJaWYgKGltcG9ydF9hdHRhY2gpIHsKQEAgLTE1 Niw3ICsxNTksNyBAQCBzdGF0aWMgaW50IHN0NzU4Nl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVu Y3Mgc3Q3NTg2X2ZiX2Z1bmNzID0gewotCS5kZXN0cm95CT0gZHJtX2dlbV9mYl9kZXN0cm95LAor CS5kZXN0cm95CT0gdGlueWRybV9mYl9kZXN0cm95LAogCS5jcmVhdGVfaGFuZGxlCT0gZHJtX2dl bV9mYl9jcmVhdGVfaGFuZGxlLAogCS5kaXJ0eQkJPSB0aW55ZHJtX2ZiX2RpcnR5LAogfTsKQEAg LTI5NywxMyArMzAwLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBz dDc1ODZfbW9kZSA9IHsKIAlUSU5ZRFJNX01PREUoMTc4LCAxMjgsIDM3LCAyNyksCiB9OwogCi1E RUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhzdDc1ODZfZm9wcyk7CitERUZJTkVfRFJNX0dFTV9TSE1F TV9GT1BTKHN0NzU4Nl9mb3BzKTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHN0NzU4Nl9k cml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNF VCB8IERSSVZFUl9QUklNRSB8CiAJCQkJICBEUklWRVJfQVRPTUlDLAogCS5mb3BzCQkJPSAmc3Q3 NTg2X2ZvcHMsCi0JVElOWURSTV9HRU1fRFJJVkVSX09QUywKKwlEUk1fR0VNX1NITUVNX0RSSVZF Ul9PUFMsCiAJLmRlYnVnZnNfaW5pdAkJPSBtaXBpX2RiaV9kZWJ1Z2ZzX2luaXQsCiAJLm5hbWUJ CQk9ICJzdDc1ODYiLAogCS5kZXNjCQkJPSAiU2l0cm9uaXggU1Q3NTg2IiwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55 ZHJtL3N0NzczNXIuYwppbmRleCAzMDgxYmM1N2MxMTYuLjExMDgwODhhMWEwMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NzM1ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS90aW55ZHJtL3N0NzczNXIuYwpAQCAtMTQsOCArMTQsMTAgQEAKICNpbmNsdWRlIDxsaW51eC9z cGkvc3BpLmg+CiAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+CiAKKyNpbmNsdWRlIDxk cm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+CiAjaW5jbHVkZSA8 ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1f c2htZW1faGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KICNpbmNs dWRlIDxkcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaD4KIApAQCAtMTEzLDEzICsxMTUsMTMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGpkX3QxODAwM190MDFfbW9k ZSA9IHsKIAlUSU5ZRFJNX01PREUoMTI4LCAxNjAsIDI4LCAzNSksCiB9OwogCi1ERUZJTkVfRFJN X0dFTV9DTUFfRk9QUyhzdDc3MzVyX2ZvcHMpOworREVGSU5FX0RSTV9HRU1fU0hNRU1fRk9QUyhz dDc3MzVyX2ZvcHMpOwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgc3Q3NzM1cl9kcml2ZXIg PSB7CiAJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCB8IERS SVZFUl9QUklNRSB8CiAJCQkJICBEUklWRVJfQVRPTUlDLAogCS5mb3BzCQkJPSAmc3Q3NzM1cl9m b3BzLAotCVRJTllEUk1fR0VNX0RSSVZFUl9PUFMsCisJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BT LAogCS5kZWJ1Z2ZzX2luaXQJCT0gbWlwaV9kYmlfZGVidWdmc19pbml0LAogCS5uYW1lCQkJPSAi c3Q3NzM1ciIsCiAJLmRlc2MJCQk9ICJTaXRyb25peCBTVDc3MzVSIiwKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS5oIGIvaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJt LmgKaW5kZXggZmU5ODI3ZDBjYThhLi5lMmNiMjU0MTI1YzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL3Rpbnlkcm0vdGlueWRybS5oCisrKyBiL2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS5o CkBAIC0xMCwxMCArMTAsMTUgQEAKICNpZm5kZWYgX19MSU5VWF9USU5ZRFJNX0gKICNkZWZpbmUg X19MSU5VWF9USU5ZRFJNX0gKIAotI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4K LSNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRl eC5oPgogI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KIAorc3RydWN0IGRy bV9kcml2ZXI7CitzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyOworc3RydWN0IGRybV9maWxlOworc3Ry dWN0IGRybV9jbGlwX3JlY3Q7CitzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzOworCiAvKioK ICAqIHN0cnVjdCB0aW55ZHJtX2RldmljZSAtIHRpbnlkcm0gZGV2aWNlCiAgKi8KQEAgLTUzLDI3 ICs1OCw2IEBAIHBpcGVfdG9fdGlueWRybShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUg KnBpcGUpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihwaXBlLCBzdHJ1Y3QgdGlueWRybV9kZXZpY2Us IHBpcGUpOwogfQogCi0vKioKLSAqIFRJTllEUk1fR0VNX0RSSVZFUl9PUFMgLSBkZWZhdWx0IHRp bnlkcm0gZ2VtIG9wZXJhdGlvbnMKLSAqCi0gKiBUaGlzIG1hY3JvIHByb3ZpZGVzIGEgc2hvcnRj dXQgZm9yIHNldHRpbmcgdGhlIHRpbnlkcm0gR0VNIG9wZXJhdGlvbnMgaW4KLSAqIHRoZSAmZHJt X2RyaXZlciBzdHJ1Y3R1cmUuCi0gKi8KLSNkZWZpbmUgVElOWURSTV9HRU1fRFJJVkVSX09QUyBc Ci0JLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IHRpbnlkcm1fZ2VtX2NtYV9mcmVlX29iamVj dCwgXAotCS5nZW1fcHJpbnRfaW5mbwkJPSBkcm1fZ2VtX2NtYV9wcmludF9pbmZvLCBcCi0JLmdl bV92bV9vcHMJCT0gJmRybV9nZW1fY21hX3ZtX29wcywgXAotCS5wcmltZV9oYW5kbGVfdG9fZmQJ PSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwgXAotCS5wcmltZV9mZF90b19oYW5kbGUJPSBk cm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwgXAotCS5nZW1fcHJpbWVfaW1wb3J0CT0gZHJtX2dl bV9wcmltZV9pbXBvcnQsIFwKLQkuZ2VtX3ByaW1lX2V4cG9ydAk9IGRybV9nZW1fcHJpbWVfZXhw b3J0LCBcCi0JLmdlbV9wcmltZV9nZXRfc2dfdGFibGUJPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRf c2dfdGFibGUsIFwKLQkuZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZSA9IHRpbnlkcm1fZ2VtX2Nt YV9wcmltZV9pbXBvcnRfc2dfdGFibGUsIFwKLQkuZ2VtX3ByaW1lX3ZtYXAJCT0gZHJtX2dlbV9j bWFfcHJpbWVfdm1hcCwgXAotCS5nZW1fcHJpbWVfdnVubWFwCT0gZHJtX2dlbV9jbWFfcHJpbWVf dnVubWFwLCBcCi0JLmdlbV9wcmltZV9tbWFwCQk9IGRybV9nZW1fY21hX3ByaW1lX21tYXAsIFwK LQkuZHVtYl9jcmVhdGUJCT0gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGUKLQogLyoqCiAgKiBUSU5Z RFJNX01PREUgLSB0aW55ZHJtIGRpc3BsYXkgbW9kZQogICogQGhkOiBIb3Jpem9udGFsIHJlc29s dXRpb24sIHdpZHRoCkBAIC05NywxMSArODEsNyBAQCBwaXBlX3RvX3Rpbnlkcm0oc3RydWN0IGRy bV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQogCS50eXBlID0gRFJNX01PREVfVFlQRV9EUklW RVIsIFwKIAkuY2xvY2sgPSAxIC8qIHBhc3MgdmFsaWRhdGlvbiAqLwogCi12b2lkIHRpbnlkcm1f Z2VtX2NtYV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmopOwotc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICoKLXRpbnlkcm1fZ2VtX2NtYV9wcmltZV9pbXBvcnRfc2dfdGFi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKLQkJCQkgICAgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRh Y2htZW50ICphdHRhY2gsCi0JCQkJICAgICAgc3RydWN0IHNnX3RhYmxlICpzZ3QpOwordm9pZCB0 aW55ZHJtX2ZiX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogaW50IGRldm1f dGlueWRybV9pbml0KHN0cnVjdCBkZXZpY2UgKnBhcmVudCwgc3RydWN0IHRpbnlkcm1fZGV2aWNl ICp0ZGV2LAogCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzICpmYl9m dW5jcywKIAkJICAgICAgc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7Ci0tIAoyLjE1LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=