From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH v3 2/3] drm: simplify authentication management Date: Mon, 4 May 2015 21:01:30 +0200 Message-ID: <1430766090-1286-1-git-send-email-dh.herrmann@gmail.com> References: <1430763573-8545-1-git-send-email-dh.herrmann@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTP id DCACF6E2E8 for ; Mon, 4 May 2015 12:01:40 -0700 (PDT) Received: by widdi4 with SMTP id di4so120529911wid.0 for ; Mon, 04 May 2015 12:01:39 -0700 (PDT) In-Reply-To: <1430763573-8545-1-git-send-email-dh.herrmann@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: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VGhlIG1hZ2ljIGF1dGggdG9rZW5zIHdlIGhhdmUgYXJlIGEgc2ltcGxlIG1hcCBmcm9tIGN5Y2xp YyBJRHMgdG8gZHJtX2ZpbGUKb2JqZWN0cy4gUmVtb3ZlIGFsbCB0aGUgb2xkIGJ1bGsgb2YgY29k ZSBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgc2ltcGxlLApkaXJlY3QgSURSLgoKVGhlIHByZXZpb3Vz IGJlaGF2aW9yIGlzIGtlcHQuIEVzcGVjaWFsbHkgY2FsbGluZyBhdXRobWFnaWMgbXVsdGlwbGUg dGltZXMKb24gdGhlIHNhbWUgbWFnaWMgcmVzdWx0cyBpbiBFSU5WQUwgZXhjZXB0IG9uIHRoZSBm aXJzdCBjYWxsLiBUaGUgb25seQpkaWZmZXJlbmNlIGluIGJlaGF2aW9yIGlzIHRoYXQgd2UgbmV2 ZXIgYWxsb2NhdGUgSURzIG11bHRpcGxlIHRpbWVzIGFzCmxvbmcgYXMgYSBjbGllbnQgaGFzIGl0 cyBGRCBvcGVuLgoKRGlmZi1zdGF0OgogICA1IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMo KyksIDE1NyBkZWxldGlvbnMoLSkKClNpZ25lZC1vZmYtYnk6IERhdmlkIEhlcnJtYW5uIDxkaC5o ZXJybWFubkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KLS0tCnYzOgogLSBkcm9wIHJlZHVuZGFudCAibWFnaWMgPiBJTlRfTUFY IiBjaGVjawoKdjI6CiAtIEZpeCByZXR1cm4gY29kZSBvZiBHZXRNYWdpYygpCiAtIFVzZSBub24t Y3ljbGljIElEUiBhbGxvY2F0b3IKIC0gZml4IG9mZi1ieS1vbmUgaW4gIm1hZ2ljID4gSU5UX01B WCIgc2FuaXR5IGNoZWNrCgogZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMgICAgIHwgMTc1ICsr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2Rydi5jICAgICAgfCAgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyAgICAg fCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCB8ICAgMSAtCiBpbmNsdWRl L2RybS9kcm1QLmggICAgICAgICAgICAgfCAgIDQgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNDIgaW5z ZXJ0aW9ucygrKSwgMTU3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXV0aC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMKaW5kZXggOGEzNzUyNC4u NTBkMGJhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdXRoLmMKQEAgLTEsMTEgKzEsMyBAQAotLyoqCi0gKiBcZmlsZSBk cm1fYXV0aC5jCi0gKiBJT0NUTHMgZm9yIGF1dGhlbnRpY2F0aW9uCi0gKgotICogXGF1dGhvciBS aWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KLSAqIFxhdXRob3IgR2Fy ZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgotICovCi0KIC8qCiAgKiBDcmVhdGVkOiBU dWUgRmViICAyIDA4OjM3OjU0IDE5OTkgYnkgZmFpdGhAdmFsaW51eC5jb20KICAqCkBAIC0xMyw2 ICs1LDkgQEAKICAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55 dmFsZSwgQ2FsaWZvcm5pYS4KICAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgorICogQXV0aG9y IFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgorICogQXV0aG9yIEdh cmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KKyAqCiAgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQog ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKICAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KQEAgLTM2LDE1MSArMzEs NDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgog Ci1zdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5IHsKLQlzdHJ1Y3QgZHJtX2hhc2hfaXRlbSBoYXNoX2l0 ZW07Ci0Jc3RydWN0IGRybV9maWxlICpwcml2OwotfTsKLQotLyoqCi0gKiBGaW5kIHRoZSBmaWxl IHdpdGggdGhlIGdpdmVuIG1hZ2ljIG51bWJlci4KLSAqCi0gKiBccGFyYW0gZGV2IERSTSBkZXZp Y2UuCi0gKiBccGFyYW0gbWFnaWMgbWFnaWMgbnVtYmVyLgotICoKLSAqIFNlYXJjaGVzIGluIGRy bV9kZXZpY2U6Om1hZ2ljbGlzdCB3aXRoaW4gYWxsIGZpbGVzIHdpdGggdGhlIHNhbWUgaGFzaCBr ZXkKLSAqIHRoZSBvbmUgd2l0aCBtYXRjaGluZyBtYWdpYyBudW1iZXIsIHdoaWxlIGhvbGRpbmcg dGhlIGRybV9kZXZpY2U6OnN0cnVjdF9tdXRleAotICogbG9jay4KLSAqLwotc3RhdGljIHN0cnVj dCBkcm1fZmlsZSAqZHJtX2ZpbmRfZmlsZShzdHJ1Y3QgZHJtX21hc3RlciAqbWFzdGVyLCBkcm1f bWFnaWNfdCBtYWdpYykKLXsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKnJldHZhbCA9IE5VTEw7Ci0Jc3Ry dWN0IGRybV9tYWdpY19lbnRyeSAqcHQ7Ci0Jc3RydWN0IGRybV9oYXNoX2l0ZW0gKmhhc2g7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1hc3Rlci0+bWlub3ItPmRldjsKLQotCW11dGV4X2xv Y2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAoIWRybV9odF9maW5kX2l0ZW0oJm1hc3Rlci0+ bWFnaWNsaXN0LCAodW5zaWduZWQgbG9uZyltYWdpYywgJmhhc2gpKSB7Ci0JCXB0ID0gZHJtX2hh c2hfZW50cnkoaGFzaCwgc3RydWN0IGRybV9tYWdpY19lbnRyeSwgaGFzaF9pdGVtKTsKLQkJcmV0 dmFsID0gcHQtPnByaXY7Ci0JfQotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwot CXJldHVybiByZXR2YWw7Ci19Ci0KLS8qKgotICogQWRkcyBhIG1hZ2ljIG51bWJlci4KLSAqCi0g KiBccGFyYW0gZGV2IERSTSBkZXZpY2UuCi0gKiBccGFyYW0gcHJpdiBmaWxlIHByaXZhdGUgZGF0 YS4KLSAqIFxwYXJhbSBtYWdpYyBtYWdpYyBudW1iZXIuCi0gKgotICogQ3JlYXRlcyBhIGRybV9t YWdpY19lbnRyeSBzdHJ1Y3R1cmUgYW5kIGFwcGVuZHMgdG8gdGhlIGxpbmtlZCBsaXN0Ci0gKiBh c3NvY2lhdGVkIHRoZSBtYWdpYyBudW1iZXIgaGFzaCBrZXkgaW4gZHJtX2RldmljZTo6bWFnaWNs aXN0LCB3aGlsZSBob2xkaW5nCi0gKiB0aGUgZHJtX2RldmljZTo6c3RydWN0X211dGV4IGxvY2su Ci0gKi8KLXN0YXRpYyBpbnQgZHJtX2FkZF9tYWdpYyhzdHJ1Y3QgZHJtX21hc3RlciAqbWFzdGVy LCBzdHJ1Y3QgZHJtX2ZpbGUgKnByaXYsCi0JCQkgZHJtX21hZ2ljX3QgbWFnaWMpCi17Ci0Jc3Ry dWN0IGRybV9tYWdpY19lbnRyeSAqZW50cnk7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1h c3Rlci0+bWlub3ItPmRldjsKLQlEUk1fREVCVUcoIiVkXG4iLCBtYWdpYyk7Ci0KLQllbnRyeSA9 IGt6YWxsb2Moc2l6ZW9mKCplbnRyeSksIEdGUF9LRVJORUwpOwotCWlmICghZW50cnkpCi0JCXJl dHVybiAtRU5PTUVNOwotCWVudHJ5LT5wcml2ID0gcHJpdjsKLQllbnRyeS0+aGFzaF9pdGVtLmtl eSA9ICh1bnNpZ25lZCBsb25nKW1hZ2ljOwotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKLQlkcm1faHRfaW5zZXJ0X2l0ZW0oJm1hc3Rlci0+bWFnaWNsaXN0LCAmZW50cnktPmhhc2hf aXRlbSk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0KLQlyZXR1cm4gMDsK LX0KLQotLyoqCi0gKiBSZW1vdmUgYSBtYWdpYyBudW1iZXIuCi0gKgotICogXHBhcmFtIGRldiBE Uk0gZGV2aWNlLgotICogXHBhcmFtIG1hZ2ljIG1hZ2ljIG51bWJlci4KLSAqCi0gKiBTZWFyY2hl cyBhbmQgdW5saW5rcyB0aGUgZW50cnkgaW4gZHJtX2RldmljZTo6bWFnaWNsaXN0IHdpdGggdGhl IG1hZ2ljCi0gKiBudW1iZXIgaGFzaCBrZXksIHdoaWxlIGhvbGRpbmcgdGhlIGRybV9kZXZpY2U6 OnN0cnVjdF9tdXRleCBsb2NrLgotICovCi1pbnQgZHJtX3JlbW92ZV9tYWdpYyhzdHJ1Y3QgZHJt X21hc3RlciAqbWFzdGVyLCBkcm1fbWFnaWNfdCBtYWdpYykKLXsKLQlzdHJ1Y3QgZHJtX21hZ2lj X2VudHJ5ICpwdDsKLQlzdHJ1Y3QgZHJtX2hhc2hfaXRlbSAqaGFzaDsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gbWFzdGVyLT5taW5vci0+ZGV2OwotCi0JRFJNX0RFQlVHKCIlZFxuIiwgbWFn aWMpOwotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmIChkcm1faHRfZmlu ZF9pdGVtKCZtYXN0ZXItPm1hZ2ljbGlzdCwgKHVuc2lnbmVkIGxvbmcpbWFnaWMsICZoYXNoKSkg ewotCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJcmV0dXJuIC1FSU5WQUw7 Ci0JfQotCXB0ID0gZHJtX2hhc2hfZW50cnkoaGFzaCwgc3RydWN0IGRybV9tYWdpY19lbnRyeSwg aGFzaF9pdGVtKTsKLQlkcm1faHRfcmVtb3ZlX2l0ZW0oJm1hc3Rlci0+bWFnaWNsaXN0LCBoYXNo KTsKLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQotCWtmcmVlKHB0KTsKLQot CXJldHVybiAwOwotfQotCiAvKioKLSAqIEdldCBhIHVuaXF1ZSBtYWdpYyBudW1iZXIgKGlvY3Rs KS4KKyAqIGRybV9nZXRtYWdpYyAtIEdldCB1bmlxdWUgbWFnaWMgb2YgYSBjbGllbnQKKyAqIEBk ZXY6IERSTSBkZXZpY2UgdG8gb3BlcmF0ZSBvbgorICogQGRhdGE6IGlvY3RsIGRhdGEgY29udGFp bmluZyB0aGUgZHJtX2F1dGggb2JqZWN0CisgKiBAZmlsZV9wcml2OiBEUk0gZmlsZSB0aGF0IHBl cmZvcm1zIHRoZSBvcGVyYXRpb24KICAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgot ICogXHBhcmFtIGZpbGVfcHJpdiBEUk0gZmlsZSBwcml2YXRlLgotICogXHBhcmFtIGNtZCBjb21t YW5kLgotICogXHBhcmFtIGFyZyBwb2ludGVyIHRvIGEgcmVzdWx0aW5nIGRybV9hdXRoIHN0cnVj dHVyZS4KLSAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIG51bWJlciBv biBmYWlsdXJlLgorICogVGhpcyBsb29rcyB1cCB0aGUgdW5pcXVlIG1hZ2ljIG9mIHRoZSBwYXNz ZWQgY2xpZW50IGFuZCByZXR1cm5zIGl0LiBJZiB0aGUKKyAqIGNsaWVudCBkaWQgbm90IGhhdmUg YSBtYWdpYyBhc3NpZ25lZCwgeWV0LCBhIG5ldyBvbmUgaXMgcmVnaXN0ZXJlZC4gVGhlIG1hZ2lj CisgKiBpcyBzdG9yZWQgaW4gdGhlIHBhc3NlZCBkcm1fYXV0aCBvYmplY3QuCiAgKgotICogSWYg dGhlcmUgaXMgYSBtYWdpYyBudW1iZXIgaW4gZHJtX2ZpbGU6Om1hZ2ljIHRoZW4gdXNlIGl0LCBv dGhlcndpc2UKLSAqIHNlYXJjaGVzIGFuIHVuaXF1ZSBub24temVybyBtYWdpYyBudW1iZXIgYW5k IGFkZCBpdCBhc3NvY2lhdGluZyBpdCB3aXRoIFxwCi0gKiBmaWxlX3ByaXYuCi0gKiBUaGlzIGlv Y3RsIG5lZWRzIHByb3RlY3Rpb24gYnkgdGhlIGRybV9nbG9iYWxfbXV0ZXgsIHdoaWNoIHByb3Rl Y3RzCi0gKiBzdHJ1Y3QgZHJtX2ZpbGU6Om1hZ2ljIGFuZCBzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5 Ojpwcml2LgorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9u IGZhaWx1cmUuCiAgKi8KIGludCBkcm1fZ2V0bWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7Ci0Jc3RhdGljIGRybV9t YWdpY190IHNlcXVlbmNlID0gMDsKLQlzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwogCXN0 cnVjdCBkcm1fYXV0aCAqYXV0aCA9IGRhdGE7CisJaW50IHJldCA9IDA7CiAKLQkvKiBGaW5kIHVu aXF1ZSBtYWdpYyAqLwotCWlmIChmaWxlX3ByaXYtPm1hZ2ljKSB7Ci0JCWF1dGgtPm1hZ2ljID0g ZmlsZV9wcml2LT5tYWdpYzsKLQl9IGVsc2UgewotCQlkbyB7Ci0JCQlzcGluX2xvY2soJmxvY2sp OwotCQkJaWYgKCFzZXF1ZW5jZSkKLQkJCQkrK3NlcXVlbmNlOwkvKiByZXNlcnZlIDAgKi8KLQkJ CWF1dGgtPm1hZ2ljID0gc2VxdWVuY2UrKzsKLQkJCXNwaW5fdW5sb2NrKCZsb2NrKTsKLQkJfSB3 aGlsZSAoZHJtX2ZpbmRfZmlsZShmaWxlX3ByaXYtPm1hc3RlciwgYXV0aC0+bWFnaWMpKTsKLQkJ ZmlsZV9wcml2LT5tYWdpYyA9IGF1dGgtPm1hZ2ljOwotCQlkcm1fYWRkX21hZ2ljKGZpbGVfcHJp di0+bWFzdGVyLCBmaWxlX3ByaXYsIGF1dGgtPm1hZ2ljKTsKKwltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisJaWYgKCFmaWxlX3ByaXYtPm1hZ2ljKSB7CisJCXJldCA9IGlkcl9hbGxv YygmZmlsZV9wcml2LT5tYXN0ZXItPm1hZ2ljX21hcCwgZmlsZV9wcml2LAorCQkJCTEsIDAsIEdG UF9LRVJORUwpOworCQlpZiAocmV0ID49IDApCisJCQlmaWxlX3ByaXYtPm1hZ2ljID0gcmV0Owog CX0KKwlhdXRoLT5tYWdpYyA9IGZpbGVfcHJpdi0+bWFnaWM7CisJbXV0ZXhfdW5sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7CiAKIAlEUk1fREVCVUcoIiV1XG4iLCBhdXRoLT5tYWdpYyk7CiAKLQly ZXR1cm4gMDsKKwlyZXR1cm4gcmV0IDwgMCA/IHJldCA6IDA7CiB9CiAKIC8qKgotICogQXV0aGVu dGljYXRlIHdpdGggYSBtYWdpYy4KKyAqIGRybV9hdXRobWFnaWMgLSBBdXRoZW50aWNhdGUgY2xp ZW50IHdpdGggYSBtYWdpYworICogQGRldjogRFJNIGRldmljZSB0byBvcGVyYXRlIG9uCisgKiBA ZGF0YTogaW9jdGwgZGF0YSBjb250YWluaW5nIHRoZSBkcm1fYXV0aCBvYmplY3QKKyAqIEBmaWxl X3ByaXY6IERSTSBmaWxlIHRoYXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbgogICoKLSAqIFxwYXJh bSBpbm9kZSBkZXZpY2UgaW5vZGUuCi0gKiBccGFyYW0gZmlsZV9wcml2IERSTSBmaWxlIHByaXZh dGUuCi0gKiBccGFyYW0gY21kIGNvbW1hbmQuCi0gKiBccGFyYW0gYXJnIHBvaW50ZXIgdG8gYSBk cm1fYXV0aCBzdHJ1Y3R1cmUuCi0gKiBccmV0dXJuIHplcm8gaWYgYXV0aGVudGljYXRpb24gc3Vj Y2Vzc2VkLCBvciBhIG5lZ2F0aXZlIG51bWJlciBvdGhlcndpc2UuCisgKiBUaGlzIGxvb2tzIHVw IGEgRFJNIGNsaWVudCBieSB0aGUgcGFzc2VkIG1hZ2ljIGFuZCBhdXRoZW50aWNhdGVzIGl0Lgog ICoKLSAqIENoZWNrcyBpZiBccCBmaWxlX3ByaXYgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWdp YyBudW1iZXIgcGFzc2VkIGluIFxhcmcuCi0gKiBUaGlzIGlvY3RsIG5lZWRzIHByb3RlY3Rpb24g YnkgdGhlIGRybV9nbG9iYWxfbXV0ZXgsIHdoaWNoIHByb3RlY3RzCi0gKiBzdHJ1Y3QgZHJtX2Zp bGU6Om1hZ2ljIGFuZCBzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5Ojpwcml2LgorICogUmV0dXJuczog MCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiAgKi8KIGludCBk cm1fYXV0aG1hZ2ljKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCkBAIC0xODksMTAgKzgwLDE0IEBAIGludCBkcm1fYXV0 aG1hZ2ljKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJc3RydWN0IGRybV9m aWxlICpmaWxlOwogCiAJRFJNX0RFQlVHKCIldVxuIiwgYXV0aC0+bWFnaWMpOwotCWlmICgoZmls ZSA9IGRybV9maW5kX2ZpbGUoZmlsZV9wcml2LT5tYXN0ZXIsIGF1dGgtPm1hZ2ljKSkpIHsKKwor CW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlmaWxlID0gaWRyX2ZpbmQoJmZpbGVf cHJpdi0+bWFzdGVyLT5tYWdpY19tYXAsIGF1dGgtPm1hZ2ljKTsKKwlpZiAoZmlsZSkgewogCQlm aWxlLT5hdXRoZW50aWNhdGVkID0gMTsKLQkJZHJtX3JlbW92ZV9tYWdpYyhmaWxlX3ByaXYtPm1h c3RlciwgYXV0aC0+bWFnaWMpOwotCQlyZXR1cm4gMDsKKwkJaWRyX3JlcGxhY2UoJmZpbGVfcHJp di0+bWFzdGVyLT5tYWdpY19tYXAsIE5VTEwsIGF1dGgtPm1hZ2ljKTsKIAl9Ci0JcmV0dXJuIC1F SU5WQUw7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gZmls ZSA/IDAgOiAtRUlOVkFMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKaW5kZXggMjZlZDlmZS4uODhiNTk0YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Rydi5jCkBAIC05Miw4ICs5Miw2IEBAIHZvaWQgZHJtX3V0X2RlYnVnX3ByaW50ayhjb25z dCBjaGFyICpmdW5jdGlvbl9uYW1lLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIH0KIEVYUE9S VF9TWU1CT0woZHJtX3V0X2RlYnVnX3ByaW50ayk7CiAKLSNkZWZpbmUgRFJNX01BR0lDX0hBU0hf T1JERVIgIDQgIC8qKjwgU2l6ZSBvZiBrZXkgaGFzaCB0YWJsZS4gTXVzdCBiZSBwb3dlciBvZiAy LiAqLwotCiBzdHJ1Y3QgZHJtX21hc3RlciAqZHJtX21hc3Rlcl9jcmVhdGUoc3RydWN0IGRybV9t aW5vciAqbWlub3IpCiB7CiAJc3RydWN0IGRybV9tYXN0ZXIgKm1hc3RlcjsKQEAgLTEwNSwxMCAr MTAzLDcgQEAgc3RydWN0IGRybV9tYXN0ZXIgKmRybV9tYXN0ZXJfY3JlYXRlKHN0cnVjdCBkcm1f bWlub3IgKm1pbm9yKQogCWtyZWZfaW5pdCgmbWFzdGVyLT5yZWZjb3VudCk7CiAJc3Bpbl9sb2Nr X2luaXQoJm1hc3Rlci0+bG9jay5zcGlubG9jayk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbWFz dGVyLT5sb2NrLmxvY2tfcXVldWUpOwotCWlmIChkcm1faHRfY3JlYXRlKCZtYXN0ZXItPm1hZ2lj bGlzdCwgRFJNX01BR0lDX0hBU0hfT1JERVIpKSB7Ci0JCWtmcmVlKG1hc3Rlcik7Ci0JCXJldHVy biBOVUxMOwotCX0KKwlpZHJfaW5pdCgmbWFzdGVyLT5tYWdpY19tYXApOwogCW1hc3Rlci0+bWlu b3IgPSBtaW5vcjsKIAogCXJldHVybiBtYXN0ZXI7CkBAIC0xNDMsMTAgKzEzOCw5IEBAIHN0YXRp YyB2b2lkIGRybV9tYXN0ZXJfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKIAkJbWFzdGVyLT51 bmlxdWUgPSBOVUxMOwogCQltYXN0ZXItPnVuaXF1ZV9sZW4gPSAwOwogCX0KLQotCWRybV9odF9y ZW1vdmUoJm1hc3Rlci0+bWFnaWNsaXN0KTsKLQogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOworCisJaWRyX2Rlc3Ryb3koJm1hc3Rlci0+bWFnaWNfbWFwKTsKIAlrZnJlZShtYXN0 ZXIpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZm9wcy5jCmluZGV4IDA3NmRkNjAuLjBmNmE1YzggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9w cy5jCkBAIC0zODAsNiArMzgwLDggQEAgaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OwogCWxpc3RfZGVsKCZmaWxlX3ByaXYtPmxoZWFkKTsKKwlpZiAoZmlsZV9wcml2LT5tYWdpYykK KwkJaWRyX3JlbW92ZSgmZmlsZV9wcml2LT5tYXN0ZXItPm1hZ2ljX21hcCwgZmlsZV9wcml2LT5t YWdpYyk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAlpZiAoZGV2LT5k cml2ZXItPnByZWNsb3NlKQpAQCAtMzk0LDExICszOTYsNiBAQCBpbnQgZHJtX3JlbGVhc2Uoc3Ry dWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiAJCSAgKGxvbmcpb2xkX2VuY29k ZV9kZXYoZmlsZV9wcml2LT5taW5vci0+a2Rldi0+ZGV2dCksCiAJCSAgZGV2LT5vcGVuX2NvdW50 KTsKIAotCS8qIFJlbGVhc2UgYW55IGF1dGggdG9rZW5zIHRoYXQgbWlnaHQgcG9pbnQgdG8gdGhp cyBmaWxlX3ByaXYsCi0JICAgKGRvIHRoYXQgdW5kZXIgdGhlIGRybV9nbG9iYWxfbXV0ZXgpICov Ci0JaWYgKGZpbGVfcHJpdi0+bWFnaWMpCi0JCSh2b2lkKSBkcm1fcmVtb3ZlX21hZ2ljKGZpbGVf cHJpdi0+bWFzdGVyLCBmaWxlX3ByaXYtPm1hZ2ljKTsKLQogCS8qIGlmIHRoZSBtYXN0ZXIgaGFz IGdvbmUgYXdheSB3ZSBjYW4ndCBkbyBhbnl0aGluZyB3aXRoIHRoZSBsb2NrICovCiAJaWYgKGZp bGVfcHJpdi0+bWlub3ItPm1hc3RlcikKIAkJZHJtX21hc3Rlcl9yZWxlYXNlKGRldiwgZmlscCk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggMTJhNjFkNy4uMDU5YWYwMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW50ZXJuYWwuaApAQCAtNjksNyArNjksNiBAQCBpbnQgZHJtX2dldG1hZ2ljKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7 CiBpbnQgZHJtX2F1dGhtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAog CQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWludCBkcm1fcmVtb3ZlX21hZ2ljKHN0 cnVjdCBkcm1fbWFzdGVyICptYXN0ZXIsIGRybV9tYWdpY190IG1hZ2ljKTsKIAogLyogZHJtX3N5 c2ZzLmMgKi8KIGV4dGVybiBzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzczsKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAppbmRleCA4MGJlMDdhLi4yZjlk NjA1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJt UC5oCkBAIC0zNTUsNyArMzU1LDcgQEAgc3RydWN0IGRybV9sb2NrX2RhdGEgewogICogQG1pbm9y OiBMaW5rIGJhY2sgdG8gbWlub3IgY2hhciBkZXZpY2Ugd2UgYXJlIG1hc3RlciBmb3IuIEltbXV0 YWJsZS4KICAqIEB1bmlxdWU6IFVuaXF1ZSBpZGVudGlmaWVyOiBlLmcuIGJ1c2lkLiBQcm90ZWN0 ZWQgYnkgZHJtX2dsb2JhbF9tdXRleC4KICAqIEB1bmlxdWVfbGVuOiBMZW5ndGggb2YgdW5pcXVl IGZpZWxkLiBQcm90ZWN0ZWQgYnkgZHJtX2dsb2JhbF9tdXRleC4KLSAqIEBtYWdpY2xpc3Q6IEhh c2ggb2YgdXNlZCBhdXRoZW50aWNhdGlvbiB0b2tlbnMuIFByb3RlY3RlZCBieSBzdHJ1Y3RfbXV0 ZXguCisgKiBAbWFnaWNfbWFwOiBNYXAgb2YgdXNlZCBhdXRoZW50aWNhdGlvbiB0b2tlbnMuIFBy b3RlY3RlZCBieSBzdHJ1Y3RfbXV0ZXguCiAgKiBAbG9jazogRFJJIGxvY2sgaW5mb3JtYXRpb24u CiAgKiBAZHJpdmVyX3ByaXY6IFBvaW50ZXIgdG8gZHJpdmVyLXByaXZhdGUgaW5mb3JtYXRpb24u CiAgKi8KQEAgLTM2NCw3ICszNjQsNyBAQCBzdHJ1Y3QgZHJtX21hc3RlciB7CiAJc3RydWN0IGRy bV9taW5vciAqbWlub3I7CiAJY2hhciAqdW5pcXVlOwogCWludCB1bmlxdWVfbGVuOwotCXN0cnVj dCBkcm1fb3Blbl9oYXNoIG1hZ2ljbGlzdDsKKwlzdHJ1Y3QgaWRyIG1hZ2ljX21hcDsKIAlzdHJ1 Y3QgZHJtX2xvY2tfZGF0YSBsb2NrOwogCXZvaWQgKmRyaXZlcl9wcml2OwogfTsKLS0gCjIuMy43 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=