From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 19/36] drm/tegra: Remove remnants of the output midlayer Date: Tue, 20 Jan 2015 11:48:38 +0100 Message-ID: <1421750935-4023-20-git-send-email-thierry.reding@gmail.com> References: <1421750935-4023-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: In-Reply-To: <1421750935-4023-1-git-send-email-thierry.reding@gmail.com> 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: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSB0ZWdyYV9vdXRw dXQgbWlkbGF5ZXIgaXMgbm93IGNvbXBsZXRlbHkgZ29uZSBhbmQgb3V0cHV0IGRyaXZlcnMgdXNl Cml0IHB1cmVseSBhcyBhIGhlbHBlciBsaWJyYXJ5LgoKU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBS ZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMu YyAgICAgfCAgNTIgLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9k cm0uaCAgICB8ICAzOSAtLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kc2ku YyAgICB8ICAxMiArKystLQogZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2hkbWkuYyAgIHwgICA5ICsr LS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9vdXRwdXQuYyB8IDEwNyArKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3RlZ3JhL3JnYi5jICAg IHwgIDEzICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvc29yLmMgICAgfCAgMTIgKystLS0K IDcgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMjEyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL3Rl Z3JhL2RjLmMKaW5kZXggYzUxZmM0ZGI3M2RiLi40NjI5NDVhYmRlZDIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5j CkBAIC0xMDc3LDUyICsxMDc3LDYgQEAgc3RhdGljIGludCB0ZWdyYV9kY19zZXRfdGltaW5ncyhz dHJ1Y3QgdGVncmFfZGMgKmRjLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHRlZ3JhX2Ny dGNfc2V0dXBfY2xrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSkKLXsKLQl1bnNpZ25lZCBsb25nIHBjbGsgPSBtb2RlLT5jbG9jayAqIDEw MDA7Ci0Jc3RydWN0IHRlZ3JhX2RjICpkYyA9IHRvX3RlZ3JhX2RjKGNydGMpOwotCXN0cnVjdCB0 ZWdyYV9vdXRwdXQgKm91dHB1dCA9IE5VTEw7Ci0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy OwotCXVuc2lnbmVkIGludCBkaXY7Ci0JdTMyIHZhbHVlOwotCWxvbmcgZXJyOwotCi0JbGlzdF9m b3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmY3J0Yy0+ZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xp c3QsIGhlYWQpCi0JCWlmIChlbmNvZGVyLT5jcnRjID09IGNydGMpIHsKLQkJCW91dHB1dCA9IGVu Y29kZXJfdG9fb3V0cHV0KGVuY29kZXIpOwotCQkJYnJlYWs7Ci0JCX0KLQotCWlmICghb3V0cHV0 KQotCQlyZXR1cm4gLUVOT0RFVjsKLQotCS8qCi0JICogVGhlIC0+c2V0dXBfY2xvY2soKSBjYWxs YmFjayBpcyBvcHRpb25hbCwgYnV0IGlmIGVuY29kZXJzIGRvbid0Ci0JICogaW1wbGVtZW50IGl0 IHRoZXkgbW9zdCBsaWtlbHkgbmVlZCB0byBkbyB0aGUgZXF1aXZhbGVudCB3aXRoaW4gdGhlCi0J ICogLT5tb2RlX2ZpeHVwKCkgY2FsbGJhY2suCi0JICovCi0JaWYgKCFvdXRwdXQtPm9wcyB8fCAh b3V0cHV0LT5vcHMtPnNldHVwX2Nsb2NrKQotCQlyZXR1cm4gMDsKLQotCS8qCi0JICogVGhpcyBh c3N1bWVzIHRoYXQgdGhlIHBhcmVudCBjbG9jayBpcyBwbGxfZF9vdXQwIG9yIHBsbF9kMl9vdXQK LQkgKiByZXNwZWN0aXZlbHksIGVhY2ggb2Ygd2hpY2ggZGl2aWRlcyB0aGUgYmFzZSBwbGxfZCBi eSAyLgotCSAqLwotCWVyciA9IG91dHB1dC0+b3BzLT5zZXR1cF9jbG9jayhvdXRwdXQsIGRjLT5j bGssIHBjbGssICZkaXYpOwotCWlmIChlcnIgPCAwKSB7Ci0JCWRldl9lcnIoZGMtPmRldiwgImZh aWxlZCB0byBzZXR1cCBjbG9jazogJWxkXG4iLCBlcnIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQot CURSTV9ERUJVR19LTVMoInJhdGU6ICVsdSwgZGl2OiAldVxuIiwgY2xrX2dldF9yYXRlKGRjLT5j bGspLCBkaXYpOwotCi0JdmFsdWUgPSBTSElGVF9DTEtfRElWSURFUihkaXYpIHwgUElYRUxfQ0xL X0RJVklERVJfUENEMTsKLQl0ZWdyYV9kY193cml0ZWwoZGMsIHZhbHVlLCBEQ19ESVNQX0RJU1Bf Q0xPQ0tfQ09OVFJPTCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogaW50IHRlZ3JhX2RjX3NldHVwX2Ns b2NrKHN0cnVjdCB0ZWdyYV9kYyAqZGMsIHN0cnVjdCBjbGsgKnBhcmVudCwKIAkJCSB1bnNpZ25l ZCBsb25nIHBjbGssIHVuc2lnbmVkIGludCBkaXYpCiB7CkBAIC0xMTU0LDEyICsxMTA4LDYgQEAg c3RhdGljIGludCB0ZWdyYV9jcnRjX21vZGVfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1 MzIgdmFsdWU7CiAJaW50IGVycjsKIAotCWVyciA9IHRlZ3JhX2NydGNfc2V0dXBfY2xrKGNydGMs IG1vZGUpOwotCWlmIChlcnIpIHsKLQkJZGV2X2VycihkYy0+ZGV2LCAiZmFpbGVkIHRvIHNldHVw IGNsb2NrIGZvciBDUlRDOiAlZFxuIiwgZXJyKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0KIAkvKiBw cm9ncmFtIGRpc3BsYXkgbW9kZSAqLwogCXRlZ3JhX2RjX3NldF90aW1pbmdzKGRjLCBtb2RlKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5oIGIvZHJpdmVycy9ncHUv ZHJtL3RlZ3JhL2RybS5oCmluZGV4IGM3NGQ1ZGI0NzUzNy4uNjk5MjExYTg5YTJlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rl Z3JhL2RybS5oCkBAIC0xODEsMjMgKzE4MSwxMCBAQCB2b2lkIHRlZ3JhX2RjX2NvbW1pdChzdHJ1 Y3QgdGVncmFfZGMgKmRjKTsKIGludCB0ZWdyYV9kY19zZXR1cF9jbG9jayhzdHJ1Y3QgdGVncmFf ZGMgKmRjLCBzdHJ1Y3QgY2xrICpwYXJlbnQsCiAJCQkgdW5zaWduZWQgbG9uZyBwY2xrLCB1bnNp Z25lZCBpbnQgZGl2KTsKIAotc3RydWN0IHRlZ3JhX291dHB1dF9vcHMgewotCWludCAoKmVuYWJs ZSkoc3RydWN0IHRlZ3JhX291dHB1dCAqb3V0cHV0KTsKLQlpbnQgKCpkaXNhYmxlKShzdHJ1Y3Qg dGVncmFfb3V0cHV0ICpvdXRwdXQpOwotCWludCAoKnNldHVwX2Nsb2NrKShzdHJ1Y3QgdGVncmFf b3V0cHV0ICpvdXRwdXQsIHN0cnVjdCBjbGsgKmNsaywKLQkJCSAgIHVuc2lnbmVkIGxvbmcgcGNs aywgdW5zaWduZWQgaW50ICpkaXYpOwotCWludCAoKmNoZWNrX21vZGUpKHN0cnVjdCB0ZWdyYV9v dXRwdXQgKm91dHB1dCwKLQkJCSAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0JCQkg IGVudW0gZHJtX21vZGVfc3RhdHVzICpzdGF0dXMpOwotCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0 dXMgKCpkZXRlY3QpKHN0cnVjdCB0ZWdyYV9vdXRwdXQgKm91dHB1dCk7Ci19OwotCiBzdHJ1Y3Qg dGVncmFfb3V0cHV0IHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGU7CiAJc3RydWN0IGRl dmljZSAqZGV2OwogCi0JY29uc3Qgc3RydWN0IHRlZ3JhX291dHB1dF9vcHMgKm9wczsKLQogCXN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsOwogCXN0cnVjdCBpMmNfYWRhcHRlciAqZGRjOwogCWNvbnN0 IHN0cnVjdCBlZGlkICplZGlkOwpAQCAtMjE4LDMyICsyMDUsNiBAQCBzdGF0aWMgaW5saW5lIHN0 cnVjdCB0ZWdyYV9vdXRwdXQgKmNvbm5lY3Rvcl90b19vdXRwdXQoc3RydWN0IGRybV9jb25uZWN0 b3IgKmMpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihjLCBzdHJ1Y3QgdGVncmFfb3V0cHV0LCBjb25u ZWN0b3IpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB0ZWdyYV9vdXRwdXRfZW5hYmxlKHN0cnVj dCB0ZWdyYV9vdXRwdXQgKm91dHB1dCkKLXsKLQlpZiAob3V0cHV0ICYmIG91dHB1dC0+b3BzICYm IG91dHB1dC0+b3BzLT5lbmFibGUpCi0JCXJldHVybiBvdXRwdXQtPm9wcy0+ZW5hYmxlKG91dHB1 dCk7Ci0KLQlyZXR1cm4gb3V0cHV0ID8gLUVOT1NZUyA6IC1FSU5WQUw7Ci19Ci0KLXN0YXRpYyBp bmxpbmUgaW50IHRlZ3JhX291dHB1dF9kaXNhYmxlKHN0cnVjdCB0ZWdyYV9vdXRwdXQgKm91dHB1 dCkKLXsKLQlpZiAob3V0cHV0ICYmIG91dHB1dC0+b3BzICYmIG91dHB1dC0+b3BzLT5kaXNhYmxl KQotCQlyZXR1cm4gb3V0cHV0LT5vcHMtPmRpc2FibGUob3V0cHV0KTsKLQotCXJldHVybiBvdXRw dXQgPyAtRU5PU1lTIDogLUVJTlZBTDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgdGVncmFfb3V0 cHV0X2NoZWNrX21vZGUoc3RydWN0IHRlZ3JhX291dHB1dCAqb3V0cHV0LAotCQkJCQkgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQkJCQkgIGVudW0gZHJtX21vZGVfc3RhdHVzICpz dGF0dXMpCi17Ci0JaWYgKG91dHB1dCAmJiBvdXRwdXQtPm9wcyAmJiBvdXRwdXQtPm9wcy0+Y2hl Y2tfbW9kZSkKLQkJcmV0dXJuIG91dHB1dC0+b3BzLT5jaGVja19tb2RlKG91dHB1dCwgbW9kZSwg c3RhdHVzKTsKLQotCXJldHVybiBvdXRwdXQgPyAtRU5PU1lTIDogLUVJTlZBTDsKLX0KLQogLyog ZnJvbSByZ2IuYyAqLwogaW50IHRlZ3JhX2RjX3JnYl9wcm9iZShzdHJ1Y3QgdGVncmFfZGMgKmRj KTsKIGludCB0ZWdyYV9kY19yZ2JfcmVtb3ZlKHN0cnVjdCB0ZWdyYV9kYyAqZGMpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3Jh L2RzaS5jCmluZGV4IDRjZGZkNDcxYWVmNy4uODU2OGUxYjQ0Mzk3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdGVncmEvZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RzaS5j CkBAIC05OTAsMTAgKzk5MCw2IEBAIHN0YXRpYyBpbnQgdGVncmFfZHNpX2luaXQoc3RydWN0IGhv c3QxeF9jbGllbnQgKmNsaWVudCkKIAkJCQkJICZ0ZWdyYV9kc2lfY29ubmVjdG9yX2hlbHBlcl9m dW5jcyk7CiAJCWRzaS0+b3V0cHV0LmNvbm5lY3Rvci5kcG1zID0gRFJNX01PREVfRFBNU19PRkY7 CiAKLQkJaWYgKGRzaS0+b3V0cHV0LnBhbmVsKQotCQkJZHJtX3BhbmVsX2F0dGFjaChkc2ktPm91 dHB1dC5wYW5lbCwKLQkJCQkJICZkc2ktPm91dHB1dC5jb25uZWN0b3IpOwotCiAJCWRybV9lbmNv ZGVyX2luaXQoZHJtLCAmZHNpLT5vdXRwdXQuZW5jb2RlciwKIAkJCQkgJnRlZ3JhX2RzaV9lbmNv ZGVyX2Z1bmNzLAogCQkJCSBEUk1fTU9ERV9FTkNPREVSX0RTSSk7CkBAIC0xMDA0LDYgKzEwMDAs MTQgQEAgc3RhdGljIGludCB0ZWdyYV9kc2lfaW5pdChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xp ZW50KQogCQkJCQkJICAmZHNpLT5vdXRwdXQuZW5jb2Rlcik7CiAJCWRybV9jb25uZWN0b3JfcmVn aXN0ZXIoJmRzaS0+b3V0cHV0LmNvbm5lY3Rvcik7CiAKKwkJZXJyID0gdGVncmFfb3V0cHV0X2lu aXQoZHJtLCAmZHNpLT5vdXRwdXQpOworCQlpZiAoZXJyIDwgMCkgeworCQkJZGV2X2VycihjbGll bnQtPmRldiwKKwkJCQkiZmFpbGVkIHRvIGluaXRpYWxpemUgb3V0cHV0OiAlZFxuIiwKKwkJCQll cnIpOworCQkJZ290byByZXNldDsKKwkJfQorCiAJCWRzaS0+b3V0cHV0LmVuY29kZXIucG9zc2li bGVfY3J0Y3MgPSAweDM7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEv aGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2hkbWkuYwppbmRleCBiNGZlOTA5NDlmMjcu LjAzY2ViNTBiMWRjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2hkbWkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaGRtaS5jCkBAIC0xMzQ3LDEwICsxMzQ3LDEzIEBA IHN0YXRpYyBpbnQgdGVncmFfaGRtaV9pbml0KHN0cnVjdCBob3N0MXhfY2xpZW50ICpjbGllbnQp CiAJCQkJCSAgJmhkbWktPm91dHB1dC5lbmNvZGVyKTsKIAlkcm1fY29ubmVjdG9yX3JlZ2lzdGVy KCZoZG1pLT5vdXRwdXQuY29ubmVjdG9yKTsKIAotCWhkbWktPm91dHB1dC5lbmNvZGVyLnBvc3Np YmxlX2NydGNzID0gMHgzOworCWVyciA9IHRlZ3JhX291dHB1dF9pbml0KGRybSwgJmhkbWktPm91 dHB1dCk7CisJaWYgKGVyciA8IDApIHsKKwkJZGV2X2VycihjbGllbnQtPmRldiwgImZhaWxlZCB0 byBpbml0aWFsaXplIG91dHB1dDogJWRcbiIsIGVycik7CisJCXJldHVybiBlcnI7CisJfQogCi0J aWYgKGdwaW9faXNfdmFsaWQoaGRtaS0+b3V0cHV0LmhwZF9ncGlvKSkKLQkJZW5hYmxlX2lycSho ZG1pLT5vdXRwdXQuaHBkX2lycSk7CisJaGRtaS0+b3V0cHV0LmVuY29kZXIucG9zc2libGVfY3J0 Y3MgPSAweDM7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfREVCVUdfRlMpKSB7CiAJCWVyciA9 IHRlZ3JhX2hkbWlfZGVidWdmc19pbml0KGhkbWksIGRybS0+cHJpbWFyeSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEv b3V0cHV0LmMKaW5kZXggMDQyYjQyMTQxNmE4Li5jNmQ3MGQ3NzQ0OTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90ZWdyYS9vdXRwdXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEv b3V0cHV0LmMKQEAgLTQzLDIwICs0Myw2IEBAIGludCB0ZWdyYV9vdXRwdXRfY29ubmVjdG9yX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiBlcnI7CiB9 CiAKLXN0YXRpYyBpbnQgdGVncmFfY29ubmVjdG9yX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKLQkJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSkKLXsKLQlzdHJ1Y3QgdGVncmFfb3V0cHV0ICpvdXRwdXQgPSBjb25uZWN0b3JfdG9fb3V0cHV0 KGNvbm5lY3Rvcik7Ci0JZW51bSBkcm1fbW9kZV9zdGF0dXMgc3RhdHVzID0gTU9ERV9PSzsKLQlp bnQgZXJyOwotCi0JZXJyID0gdGVncmFfb3V0cHV0X2NoZWNrX21vZGUob3V0cHV0LCBtb2RlLCAm c3RhdHVzKTsKLQlpZiAoZXJyIDwgMCkKLQkJcmV0dXJuIE1PREVfRVJST1I7Ci0KLQlyZXR1cm4g c3RhdHVzOwotfQotCiBzdHJ1Y3QgZHJtX2VuY29kZXIgKgogdGVncmFfb3V0cHV0X2Nvbm5lY3Rv cl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKQEAgLTY1 LDIxICs1MSwxMiBAQCB0ZWdyYV9vdXRwdXRfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcihzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiAmb3V0cHV0LT5lbmNvZGVyOwogfQog Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGNvbm5lY3Rv cl9oZWxwZXJfZnVuY3MgPSB7Ci0JLmdldF9tb2RlcyA9IHRlZ3JhX291dHB1dF9jb25uZWN0b3Jf Z2V0X21vZGVzLAotCS5tb2RlX3ZhbGlkID0gdGVncmFfY29ubmVjdG9yX21vZGVfdmFsaWQsCi0J LmJlc3RfZW5jb2RlciA9IHRlZ3JhX291dHB1dF9jb25uZWN0b3JfYmVzdF9lbmNvZGVyLAotfTsK LQogZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwogdGVncmFfb3V0cHV0X2Nvbm5lY3Rvcl9kZXRl Y3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKIHsKIAlzdHJ1 Y3QgdGVncmFfb3V0cHV0ICpvdXRwdXQgPSBjb25uZWN0b3JfdG9fb3V0cHV0KGNvbm5lY3Rvcik7 CiAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX3Vu a25vd247CiAKLQlpZiAob3V0cHV0LT5vcHMtPmRldGVjdCkKLQkJcmV0dXJuIG91dHB1dC0+b3Bz LT5kZXRlY3Qob3V0cHV0KTsKLQogCWlmIChncGlvX2lzX3ZhbGlkKG91dHB1dC0+aHBkX2dwaW8p KSB7CiAJCWlmIChncGlvX2dldF92YWx1ZShvdXRwdXQtPmhwZF9ncGlvKSA9PSAwKQogCQkJc3Rh dHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7CkBAIC05MCw5ICs2Nyw2IEBAIHRl Z3JhX291dHB1dF9jb25uZWN0b3JfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsIGJvb2wgZm9yY2UpCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3Rl ZDsKIAkJZWxzZQogCQkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Ci0KLQkJ aWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0xWRFMp Ci0JCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKIAl9CiAKIAlyZXR1cm4g c3RhdHVzOwpAQCAtMTA0LDY5ICs3OCwxMSBAQCB2b2lkIHRlZ3JhX291dHB1dF9jb25uZWN0b3Jf ZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCWRybV9jb25uZWN0b3Jf Y2xlYW51cChjb25uZWN0b3IpOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3JfZnVuY3MgY29ubmVjdG9yX2Z1bmNzID0gewotCS5kcG1zID0gZHJtX2hlbHBlcl9jb25uZWN0 b3JfZHBtcywKLQkuZGV0ZWN0ID0gdGVncmFfb3V0cHV0X2Nvbm5lY3Rvcl9kZXRlY3QsCi0JLmZp bGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCi0JLmRl c3Ryb3kgPSB0ZWdyYV9vdXRwdXRfY29ubmVjdG9yX2Rlc3Ryb3ksCi19OwotCiB2b2lkIHRlZ3Jh X291dHB1dF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewog CWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2VuY29kZXJfZnVuY3MgZW5jb2Rlcl9mdW5jcyA9IHsKLQkuZGVzdHJveSA9IHRlZ3JhX291 dHB1dF9lbmNvZGVyX2Rlc3Ryb3ksCi19OwotCi1zdGF0aWMgdm9pZCB0ZWdyYV9lbmNvZGVyX2Rw bXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKLXsKLQlzdHJ1Y3QgdGVn cmFfb3V0cHV0ICpvdXRwdXQgPSBlbmNvZGVyX3RvX291dHB1dChlbmNvZGVyKTsKLQlzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCA9IG91dHB1dC0+cGFuZWw7Ci0KLQlpZiAobW9kZSAhPSBEUk1fTU9E RV9EUE1TX09OKSB7Ci0JCWRybV9wYW5lbF9kaXNhYmxlKHBhbmVsKTsKLQkJdGVncmFfb3V0cHV0 X2Rpc2FibGUob3V0cHV0KTsKLQkJZHJtX3BhbmVsX3VucHJlcGFyZShwYW5lbCk7Ci0JfSBlbHNl IHsKLQkJZHJtX3BhbmVsX3ByZXBhcmUocGFuZWwpOwotCQl0ZWdyYV9vdXRwdXRfZW5hYmxlKG91 dHB1dCk7Ci0JCWRybV9wYW5lbF9lbmFibGUocGFuZWwpOwotCX0KLX0KLQotc3RhdGljIGJvb2wg dGVncmFfZW5jb2Rlcl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKLQkJ CQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQkJCSAgICAgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkKQotewotCXJldHVybiB0cnVlOwotfQotCi1z dGF0aWMgdm9pZCB0ZWdyYV9lbmNvZGVyX3ByZXBhcmUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQotewotCXRlZ3JhX2VuY29kZXJfZHBtcyhlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRik7 Ci19Ci0KLXN0YXRpYyB2b2lkIHRlZ3JhX2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKLXsKLQl0ZWdyYV9lbmNvZGVyX2RwbXMoZW5jb2RlciwgRFJNX01PREVfRFBN U19PTik7Ci19Ci0KLXN0YXRpYyB2b2lkIHRlZ3JhX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAotCQkJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl LAotCQkJCSAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZCkKLXsKLX0KLQotc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgZW5jb2Rlcl9oZWxwZXJf ZnVuY3MgPSB7Ci0JLmRwbXMgPSB0ZWdyYV9lbmNvZGVyX2RwbXMsCi0JLm1vZGVfZml4dXAgPSB0 ZWdyYV9lbmNvZGVyX21vZGVfZml4dXAsCi0JLnByZXBhcmUgPSB0ZWdyYV9lbmNvZGVyX3ByZXBh cmUsCi0JLmNvbW1pdCA9IHRlZ3JhX2VuY29kZXJfY29tbWl0LAotCS5tb2RlX3NldCA9IHRlZ3Jh X2VuY29kZXJfbW9kZV9zZXQsCi19OwotCiBzdGF0aWMgaXJxcmV0dXJuX3QgaHBkX2lycShpbnQg aXJxLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCB0ZWdyYV9vdXRwdXQgKm91dHB1dCA9IGRhdGE7 CkBAIC0yNzMsMjQgKzE4OSwxMyBAQCBpbnQgdGVncmFfb3V0cHV0X3JlbW92ZShzdHJ1Y3QgdGVn cmFfb3V0cHV0ICpvdXRwdXQpCiAKIGludCB0ZWdyYV9vdXRwdXRfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLCBzdHJ1Y3QgdGVncmFfb3V0cHV0ICpvdXRwdXQpCiB7Ci0JaW50IGNvbm5lY3Rv ciA9IERSTV9NT0RFX0NPTk5FQ1RPUl9Vbmtub3duOwotCWludCBlbmNvZGVyID0gRFJNX01PREVf RU5DT0RFUl9OT05FOwotCi0JZHJtX2Nvbm5lY3Rvcl9pbml0KGRybSwgJm91dHB1dC0+Y29ubmVj dG9yLCAmY29ubmVjdG9yX2Z1bmNzLAotCQkJICAgY29ubmVjdG9yKTsKLQlkcm1fY29ubmVjdG9y X2hlbHBlcl9hZGQoJm91dHB1dC0+Y29ubmVjdG9yLCAmY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7 Ci0Jb3V0cHV0LT5jb25uZWN0b3IuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwotCi0JaWYgKG91 dHB1dC0+cGFuZWwpCi0JCWRybV9wYW5lbF9hdHRhY2gob3V0cHV0LT5wYW5lbCwgJm91dHB1dC0+ Y29ubmVjdG9yKTsKLQotCWRybV9lbmNvZGVyX2luaXQoZHJtLCAmb3V0cHV0LT5lbmNvZGVyLCAm ZW5jb2Rlcl9mdW5jcywgZW5jb2Rlcik7Ci0JZHJtX2VuY29kZXJfaGVscGVyX2FkZCgmb3V0cHV0 LT5lbmNvZGVyLCAmZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOwotCi0JZHJtX21vZGVfY29ubmVjdG9y X2F0dGFjaF9lbmNvZGVyKCZvdXRwdXQtPmNvbm5lY3RvciwgJm91dHB1dC0+ZW5jb2Rlcik7Ci0J ZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcigmb3V0cHV0LT5jb25uZWN0b3IpOworCWludCBlcnI7CiAK LQlvdXRwdXQtPmVuY29kZXIucG9zc2libGVfY3J0Y3MgPSAweDM7CisJaWYgKG91dHB1dC0+cGFu ZWwpIHsKKwkJZXJyID0gZHJtX3BhbmVsX2F0dGFjaChvdXRwdXQtPnBhbmVsLCAmb3V0cHV0LT5j b25uZWN0b3IpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQogCiAJLyoKIAkg KiBUaGUgY29ubmVjdG9yIGlzIG5vdyByZWdpc3RlcmVkIGFuZCByZWFkeSB0byByZWNlaXZlIGhv dHBsdWcgZXZlbnRzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcmdiLmMgYi9k cml2ZXJzL2dwdS9kcm0vdGVncmEvcmdiLmMKaW5kZXggMzBkN2FlMDJhY2U4Li5hYjYwOTM4ODli ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9yZ2IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vdGVncmEvcmdiLmMKQEAgLTMxNSwxMyArMzE1LDYgQEAgaW50IHRlZ3JhX2RjX3Jn Yl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCB0ZWdyYV9kYyAqZGMpCiAJCQkJ ICZ0ZWdyYV9yZ2JfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7CiAJb3V0cHV0LT5jb25uZWN0b3Iu ZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwogCi0JaWYgKG91dHB1dC0+cGFuZWwpIHsKLQkJZXJy ID0gZHJtX3BhbmVsX2F0dGFjaChvdXRwdXQtPnBhbmVsLCAmb3V0cHV0LT5jb25uZWN0b3IpOwot CQlpZiAoZXJyIDwgMCkKLQkJCWRldl9lcnIob3V0cHV0LT5kZXYsICJmYWlsZWQgdG8gYXR0YWNo IHBhbmVsOiAlZFxuIiwKLQkJCQllcnIpOwotCX0KLQogCWRybV9lbmNvZGVyX2luaXQoZHJtLCAm b3V0cHV0LT5lbmNvZGVyLCAmdGVncmFfcmdiX2VuY29kZXJfZnVuY3MsCiAJCQkgRFJNX01PREVf RU5DT0RFUl9MVkRTKTsKIAlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKCZvdXRwdXQtPmVuY29kZXIs CkBAIC0zMzEsNiArMzI0LDEyIEBAIGludCB0ZWdyYV9kY19yZ2JfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLCBzdHJ1Y3QgdGVncmFfZGMgKmRjKQogCQkJCQkgICZvdXRwdXQtPmVuY29kZXIp OwogCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIoJm91dHB1dC0+Y29ubmVjdG9yKTsKIAorCWVyciA9 IHRlZ3JhX291dHB1dF9pbml0KGRybSwgb3V0cHV0KTsKKwlpZiAoZXJyIDwgMCkgeworCQlkZXZf ZXJyKG91dHB1dC0+ZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgb3V0cHV0OiAlZFxuIiwgZXJy KTsKKwkJcmV0dXJuIGVycjsKKwl9CisKIAkvKgogCSAqIE90aGVyIG91dHB1dHMgY2FuIGJlIGF0 dGFjaGVkIHRvIGVpdGhlciBkaXNwbGF5IGNvbnRyb2xsZXIuIFRoZSBSR0IKIAkgKiBvdXRwdXRz IGFyZSBhbiBleGNlcHRpb24gYW5kIHdvcmsgb25seSB3aXRoIHRoZWlyIHBhcmVudCBkaXNwbGF5 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvc29yLmMgYi9kcml2ZXJzL2dwdS9k cm0vdGVncmEvc29yLmMKaW5kZXggYTFjMTZjNWMwY2Y2Li5lZTE4YWRmN2Y2NTMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9zb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVn cmEvc29yLmMKQEAgLTEzNDMsOSArMTM0Myw2IEBAIHN0YXRpYyBpbnQgdGVncmFfc29yX2luaXQo c3RydWN0IGhvc3QxeF9jbGllbnQgKmNsaWVudCkKIAkJCQkgJnRlZ3JhX3Nvcl9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzKTsKIAlzb3ItPm91dHB1dC5jb25uZWN0b3IuZHBtcyA9IERSTV9NT0RFX0RQ TVNfT0ZGOwogCi0JaWYgKHNvci0+b3V0cHV0LnBhbmVsKQotCQlkcm1fcGFuZWxfYXR0YWNoKHNv ci0+b3V0cHV0LnBhbmVsLCAmc29yLT5vdXRwdXQuY29ubmVjdG9yKTsKLQogCWRybV9lbmNvZGVy X2luaXQoZHJtLCAmc29yLT5vdXRwdXQuZW5jb2RlciwgJnRlZ3JhX3Nvcl9lbmNvZGVyX2Z1bmNz LAogCQkJIERSTV9NT0RFX0VOQ09ERVJfVE1EUyk7CiAJZHJtX2VuY29kZXJfaGVscGVyX2FkZCgm c29yLT5vdXRwdXQuZW5jb2RlciwKQEAgLTEzNTUsMTAgKzEzNTIsMTMgQEAgc3RhdGljIGludCB0 ZWdyYV9zb3JfaW5pdChzdHJ1Y3QgaG9zdDF4X2NsaWVudCAqY2xpZW50KQogCQkJCQkgICZzb3It Pm91dHB1dC5lbmNvZGVyKTsKIAlkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKCZzb3ItPm91dHB1dC5j b25uZWN0b3IpOwogCi0Jc29yLT5vdXRwdXQuZW5jb2Rlci5wb3NzaWJsZV9jcnRjcyA9IDB4MzsK KwllcnIgPSB0ZWdyYV9vdXRwdXRfaW5pdChkcm0sICZzb3ItPm91dHB1dCk7CisJaWYgKGVyciA8 IDApIHsKKwkJZGV2X2VycihjbGllbnQtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIG91dHB1 dDogJWRcbiIsIGVycik7CisJCXJldHVybiBlcnI7CisJfQogCi0JaWYgKGdwaW9faXNfdmFsaWQo c29yLT5vdXRwdXQuaHBkX2dwaW8pKQotCQllbmFibGVfaXJxKHNvci0+b3V0cHV0LmhwZF9pcnEp OworCXNvci0+b3V0cHV0LmVuY29kZXIucG9zc2libGVfY3J0Y3MgPSAweDM7CiAKIAlpZiAoSVNf RU5BQkxFRChDT05GSUdfREVCVUdfRlMpKSB7CiAJCWVyciA9IHRlZ3JhX3Nvcl9kZWJ1Z2ZzX2lu aXQoc29yLCBkcm0tPnByaW1hcnkpOwotLSAKMi4xLjMKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==