From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH v2 2/3] drm: simplify authentication management Date: Mon, 4 May 2015 20:19:33 +0200 Message-ID: <1430763573-8545-1-git-send-email-dh.herrmann@gmail.com> References: <1430748314-862-2-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-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 493B489FD4 for ; Mon, 4 May 2015 11:19:47 -0700 (PDT) Received: by wgen6 with SMTP id n6so158874136wge.3 for ; Mon, 04 May 2015 11:19:45 -0700 (PDT) In-Reply-To: <1430748314-862-2-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 cyBGRCBvcGVuLgoKRGlmZi1zdGF0OgogICA1IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMo KyksIDE1NyBkZWxldGlvbnMoLSkKClNpZ25lZC1vZmYtYnk6IERhdmlkIEhlcnJtYW5uIDxkaC5o ZXJybWFubkBnbWFpbC5jb20+Ci0tLQp2MjoKIC0gRml4IHJldHVybiBjb2RlIG9mIEdldE1hZ2lj KCkKIC0gVXNlIG5vbi1jeWNsaWMgSURSIGFsbG9jYXRvcgogLSBmaXggb2ZmLWJ5LW9uZSBpbiAi bWFnaWMgPiBJTlRfTUFYIiBzYW5pdHkgY2hlY2sKCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGgu YyAgICAgfCAxNzggKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgICAgICB8ICAxMiArLS0KIGRyaXZlcnMvZ3B1L2RybS9k cm1fZm9wcy5jICAgICB8ICAgNyArLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwg ICAxIC0KIGluY2x1ZGUvZHJtL2RybVAuaCAgICAgICAgICAgICB8ICAgNCArLQogNSBmaWxlcyBj aGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAxNTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwpp bmRleCA4YTM3NTI0Li5mNWY3N2RiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1 dGguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwpAQCAtMSwxMSArMSwzIEBACi0v KioKLSAqIFxmaWxlIGRybV9hdXRoLmMKLSAqIElPQ1RMcyBmb3IgYXV0aGVudGljYXRpb24KLSAq Ci0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgot ICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKi8KLQogLyoK ICAqIENyZWF0ZWQ6IFR1ZSBGZWIgIDIgMDg6Mzc6NTQgMTk5OSBieSBmYWl0aEB2YWxpbnV4LmNv bQogICoKQEAgLTEzLDYgKzUsOSBAQAogICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVt cywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgogICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4K ICAqCisgKiBBdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+ CisgKiBBdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICoKICAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCiAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAogICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgpA QCAtMzYsMTUxICszMSw0NyBAQAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAiZHJt X2ludGVybmFsLmgiCiAKLXN0cnVjdCBkcm1fbWFnaWNfZW50cnkgewotCXN0cnVjdCBkcm1faGFz aF9pdGVtIGhhc2hfaXRlbTsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXY7Ci19OwotCi0vKioKLSAq IEZpbmQgdGhlIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gbWFnaWMgbnVtYmVyLgotICoKLSAqIFxwYXJh bSBkZXYgRFJNIGRldmljZS4KLSAqIFxwYXJhbSBtYWdpYyBtYWdpYyBudW1iZXIuCi0gKgotICog U2VhcmNoZXMgaW4gZHJtX2RldmljZTo6bWFnaWNsaXN0IHdpdGhpbiBhbGwgZmlsZXMgd2l0aCB0 aGUgc2FtZSBoYXNoIGtleQotICogdGhlIG9uZSB3aXRoIG1hdGNoaW5nIG1hZ2ljIG51bWJlciwg d2hpbGUgaG9sZGluZyB0aGUgZHJtX2RldmljZTo6c3RydWN0X211dGV4Ci0gKiBsb2NrLgotICov Ci1zdGF0aWMgc3RydWN0IGRybV9maWxlICpkcm1fZmluZF9maWxlKHN0cnVjdCBkcm1fbWFzdGVy ICptYXN0ZXIsIGRybV9tYWdpY190IG1hZ2ljKQotewotCXN0cnVjdCBkcm1fZmlsZSAqcmV0dmFs ID0gTlVMTDsKLQlzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5ICpwdDsKLQlzdHJ1Y3QgZHJtX2hhc2hf aXRlbSAqaGFzaDsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWFzdGVyLT5taW5vci0+ZGV2 OwotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmICghZHJtX2h0X2ZpbmRf aXRlbSgmbWFzdGVyLT5tYWdpY2xpc3QsICh1bnNpZ25lZCBsb25nKW1hZ2ljLCAmaGFzaCkpIHsK LQkJcHQgPSBkcm1faGFzaF9lbnRyeShoYXNoLCBzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5LCBoYXNo X2l0ZW0pOwotCQlyZXR2YWwgPSBwdC0+cHJpdjsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7Ci0JcmV0dXJuIHJldHZhbDsKLX0KLQogLyoqCi0gKiBBZGRzIGEgbWFnaWMg bnVtYmVyLgorICogZHJtX2dldG1hZ2ljIC0gR2V0IHVuaXF1ZSBtYWdpYyBvZiBhIGNsaWVudAor ICogQGRldjogRFJNIGRldmljZSB0byBvcGVyYXRlIG9uCisgKiBAZGF0YTogaW9jdGwgZGF0YSBj b250YWluaW5nIHRoZSBkcm1fYXV0aCBvYmplY3QKKyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlIHRo YXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbgogICoKLSAqIFxwYXJhbSBkZXYgRFJNIGRldmljZS4K LSAqIFxwYXJhbSBwcml2IGZpbGUgcHJpdmF0ZSBkYXRhLgotICogXHBhcmFtIG1hZ2ljIG1hZ2lj IG51bWJlci4KKyAqIFRoaXMgbG9va3MgdXAgdGhlIHVuaXF1ZSBtYWdpYyBvZiB0aGUgcGFzc2Vk IGNsaWVudCBhbmQgcmV0dXJucyBpdC4gSWYgdGhlCisgKiBjbGllbnQgZGlkIG5vdCBoYXZlIGEg bWFnaWMgYXNzaWduZWQsIHlldCwgYSBuZXcgb25lIGlzIHJlZ2lzdGVyZWQuIFRoZSBtYWdpYwor ICogaXMgc3RvcmVkIGluIHRoZSBwYXNzZWQgZHJtX2F1dGggb2JqZWN0LgogICoKLSAqIENyZWF0 ZXMgYSBkcm1fbWFnaWNfZW50cnkgc3RydWN0dXJlIGFuZCBhcHBlbmRzIHRvIHRoZSBsaW5rZWQg bGlzdAotICogYXNzb2NpYXRlZCB0aGUgbWFnaWMgbnVtYmVyIGhhc2gga2V5IGluIGRybV9kZXZp Y2U6Om1hZ2ljbGlzdCwgd2hpbGUgaG9sZGluZwotICogdGhlIGRybV9kZXZpY2U6OnN0cnVjdF9t dXRleCBsb2NrLgotICovCi1zdGF0aWMgaW50IGRybV9hZGRfbWFnaWMoc3RydWN0IGRybV9tYXN0 ZXIgKm1hc3Rlciwgc3RydWN0IGRybV9maWxlICpwcml2LAotCQkJIGRybV9tYWdpY190IG1hZ2lj KQotewotCXN0cnVjdCBkcm1fbWFnaWNfZW50cnkgKmVudHJ5OwotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBtYXN0ZXItPm1pbm9yLT5kZXY7Ci0JRFJNX0RFQlVHKCIlZFxuIiwgbWFnaWMpOwot Ci0JZW50cnkgPSBremFsbG9jKHNpemVvZigqZW50cnkpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWVu dHJ5KQotCQlyZXR1cm4gLUVOT01FTTsKLQllbnRyeS0+cHJpdiA9IHByaXY7Ci0JZW50cnktPmhh c2hfaXRlbS5rZXkgPSAodW5zaWduZWQgbG9uZyltYWdpYzsKLQltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7Ci0JZHJtX2h0X2luc2VydF9pdGVtKCZtYXN0ZXItPm1hZ2ljbGlzdCwgJmVu dHJ5LT5oYXNoX2l0ZW0pOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0J cmV0dXJuIDA7Ci19Ci0KLS8qKgotICogUmVtb3ZlIGEgbWFnaWMgbnVtYmVyLgotICoKLSAqIFxw YXJhbSBkZXYgRFJNIGRldmljZS4KLSAqIFxwYXJhbSBtYWdpYyBtYWdpYyBudW1iZXIuCi0gKgot ICogU2VhcmNoZXMgYW5kIHVubGlua3MgdGhlIGVudHJ5IGluIGRybV9kZXZpY2U6Om1hZ2ljbGlz dCB3aXRoIHRoZSBtYWdpYwotICogbnVtYmVyIGhhc2gga2V5LCB3aGlsZSBob2xkaW5nIHRoZSBk cm1fZGV2aWNlOjpzdHJ1Y3RfbXV0ZXggbG9jay4KLSAqLwotaW50IGRybV9yZW1vdmVfbWFnaWMo c3RydWN0IGRybV9tYXN0ZXIgKm1hc3RlciwgZHJtX21hZ2ljX3QgbWFnaWMpCi17Ci0Jc3RydWN0 IGRybV9tYWdpY19lbnRyeSAqcHQ7Ci0Jc3RydWN0IGRybV9oYXNoX2l0ZW0gKmhhc2g7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IG1hc3Rlci0+bWlub3ItPmRldjsKLQotCURSTV9ERUJVRygi JWRcbiIsIG1hZ2ljKTsKLQotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAo ZHJtX2h0X2ZpbmRfaXRlbSgmbWFzdGVyLT5tYWdpY2xpc3QsICh1bnNpZ25lZCBsb25nKW1hZ2lj LCAmaGFzaCkpIHsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCXJldHVy biAtRUlOVkFMOwotCX0KLQlwdCA9IGRybV9oYXNoX2VudHJ5KGhhc2gsIHN0cnVjdCBkcm1fbWFn aWNfZW50cnksIGhhc2hfaXRlbSk7Ci0JZHJtX2h0X3JlbW92ZV9pdGVtKCZtYXN0ZXItPm1hZ2lj bGlzdCwgaGFzaCk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0KLQlrZnJl ZShwdCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBHZXQgYSB1bmlxdWUgbWFnaWMgbnVt YmVyIChpb2N0bCkuCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJh bSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxwYXJhbSBjbWQgY29tbWFuZC4KLSAq IFxwYXJhbSBhcmcgcG9pbnRlciB0byBhIHJlc3VsdGluZyBkcm1fYXV0aCBzdHJ1Y3R1cmUuCi0g KiBccmV0dXJuIHplcm8gb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVy ZS4KLSAqCi0gKiBJZiB0aGVyZSBpcyBhIG1hZ2ljIG51bWJlciBpbiBkcm1fZmlsZTo6bWFnaWMg dGhlbiB1c2UgaXQsIG90aGVyd2lzZQotICogc2VhcmNoZXMgYW4gdW5pcXVlIG5vbi16ZXJvIG1h Z2ljIG51bWJlciBhbmQgYWRkIGl0IGFzc29jaWF0aW5nIGl0IHdpdGggXHAKLSAqIGZpbGVfcHJp di4KLSAqIFRoaXMgaW9jdGwgbmVlZHMgcHJvdGVjdGlvbiBieSB0aGUgZHJtX2dsb2JhbF9tdXRl eCwgd2hpY2ggcHJvdGVjdHMKLSAqIHN0cnVjdCBkcm1fZmlsZTo6bWFnaWMgYW5kIHN0cnVjdCBk cm1fbWFnaWNfZW50cnk6OnByaXYuCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZl IGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwogaW50IGRybV9nZXRtYWdpYyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsK LQlzdGF0aWMgZHJtX21hZ2ljX3Qgc2VxdWVuY2UgPSAwOwotCXN0YXRpYyBERUZJTkVfU1BJTkxP Q0sobG9jayk7CiAJc3RydWN0IGRybV9hdXRoICphdXRoID0gZGF0YTsKKwlpbnQgcmV0ID0gMDsK IAotCS8qIEZpbmQgdW5pcXVlIG1hZ2ljICovCi0JaWYgKGZpbGVfcHJpdi0+bWFnaWMpIHsKLQkJ YXV0aC0+bWFnaWMgPSBmaWxlX3ByaXYtPm1hZ2ljOwotCX0gZWxzZSB7Ci0JCWRvIHsKLQkJCXNw aW5fbG9jaygmbG9jayk7Ci0JCQlpZiAoIXNlcXVlbmNlKQotCQkJCSsrc2VxdWVuY2U7CS8qIHJl c2VydmUgMCAqLwotCQkJYXV0aC0+bWFnaWMgPSBzZXF1ZW5jZSsrOwotCQkJc3Bpbl91bmxvY2so JmxvY2spOwotCQl9IHdoaWxlIChkcm1fZmluZF9maWxlKGZpbGVfcHJpdi0+bWFzdGVyLCBhdXRo LT5tYWdpYykpOwotCQlmaWxlX3ByaXYtPm1hZ2ljID0gYXV0aC0+bWFnaWM7Ci0JCWRybV9hZGRf bWFnaWMoZmlsZV9wcml2LT5tYXN0ZXIsIGZpbGVfcHJpdiwgYXV0aC0+bWFnaWMpOworCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAoIWZpbGVfcHJpdi0+bWFnaWMpIHsKKwkJ cmV0ID0gaWRyX2FsbG9jKCZmaWxlX3ByaXYtPm1hc3Rlci0+bWFnaWNfbWFwLCBmaWxlX3ByaXYs CisJCQkJMSwgMCwgR0ZQX0tFUk5FTCk7CisJCWlmIChyZXQgPj0gMCkKKwkJCWZpbGVfcHJpdi0+ bWFnaWMgPSByZXQ7CiAJfQorCWF1dGgtPm1hZ2ljID0gZmlsZV9wcml2LT5tYWdpYzsKKwltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAogCURSTV9ERUJVRygiJXVcbiIsIGF1dGgt Pm1hZ2ljKTsKIAotCXJldHVybiAwOworCXJldHVybiByZXQgPCAwID8gcmV0IDogMDsKIH0KIAog LyoqCi0gKiBBdXRoZW50aWNhdGUgd2l0aCBhIG1hZ2ljLgorICogZHJtX2F1dGhtYWdpYyAtIEF1 dGhlbnRpY2F0ZSBjbGllbnQgd2l0aCBhIG1hZ2ljCisgKiBAZGV2OiBEUk0gZGV2aWNlIHRvIG9w ZXJhdGUgb24KKyAqIEBkYXRhOiBpb2N0bCBkYXRhIGNvbnRhaW5pbmcgdGhlIGRybV9hdXRoIG9i amVjdAorICogQGZpbGVfcHJpdjogRFJNIGZpbGUgdGhhdCBwZXJmb3JtcyB0aGUgb3BlcmF0aW9u CiAgKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYg RFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxwYXJhbSBjbWQgY29tbWFuZC4KLSAqIFxwYXJhbSBhcmcg cG9pbnRlciB0byBhIGRybV9hdXRoIHN0cnVjdHVyZS4KLSAqIFxyZXR1cm4gemVybyBpZiBhdXRo ZW50aWNhdGlvbiBzdWNjZXNzZWQsIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG90aGVyd2lzZS4KKyAq IFRoaXMgbG9va3MgdXAgYSBEUk0gY2xpZW50IGJ5IHRoZSBwYXNzZWQgbWFnaWMgYW5kIGF1dGhl bnRpY2F0ZXMgaXQuCiAgKgotICogQ2hlY2tzIGlmIFxwIGZpbGVfcHJpdiBpcyBhc3NvY2lhdGVk IHdpdGggdGhlIG1hZ2ljIG51bWJlciBwYXNzZWQgaW4gXGFyZy4KLSAqIFRoaXMgaW9jdGwgbmVl ZHMgcHJvdGVjdGlvbiBieSB0aGUgZHJtX2dsb2JhbF9tdXRleCwgd2hpY2ggcHJvdGVjdHMKLSAq IHN0cnVjdCBkcm1fZmlsZTo6bWFnaWMgYW5kIHN0cnVjdCBkcm1fbWFnaWNfZW50cnk6OnByaXYu CisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVy ZS4KICAqLwogaW50IGRybV9hdXRobWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKIAkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKQEAgLTE4OSwxMCArODAsMTcg QEAgaW50IGRybV9hdXRobWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAKIAlEUk1fREVCVUcoIiV1XG4iLCBhdXRoLT5tYWdp Yyk7Ci0JaWYgKChmaWxlID0gZHJtX2ZpbmRfZmlsZShmaWxlX3ByaXYtPm1hc3RlciwgYXV0aC0+ bWFnaWMpKSkgeworCisJaWYgKGF1dGgtPm1hZ2ljID4gSU5UX01BWCkKKwkJcmV0dXJuIC1FSU5W QUw7CisKKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJZmlsZSA9IGlkcl9maW5k KCZmaWxlX3ByaXYtPm1hc3Rlci0+bWFnaWNfbWFwLCBhdXRoLT5tYWdpYyk7CisJaWYgKGZpbGUp IHsKIAkJZmlsZS0+YXV0aGVudGljYXRlZCA9IDE7Ci0JCWRybV9yZW1vdmVfbWFnaWMoZmlsZV9w cml2LT5tYXN0ZXIsIGF1dGgtPm1hZ2ljKTsKLQkJcmV0dXJuIDA7CisJCWlkcl9yZXBsYWNlKCZm aWxlX3ByaXYtPm1hc3Rlci0+bWFnaWNfbWFwLCBOVUxMLCBhdXRoLT5tYWdpYyk7CiAJfQotCXJl dHVybiAtRUlOVkFMOworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0 dXJuIGZpbGUgPyAwIDogLUVJTlZBTDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCmluZGV4IDI2ZWQ5ZmUuLjg4YjU5 NGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9kcnYuYwpAQCAtOTIsOCArOTIsNiBAQCB2b2lkIGRybV91dF9kZWJ1Z19wcmlu dGsoY29uc3QgY2hhciAqZnVuY3Rpb25fbmFtZSwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB9 CiBFWFBPUlRfU1lNQk9MKGRybV91dF9kZWJ1Z19wcmludGspOwogCi0jZGVmaW5lIERSTV9NQUdJ Q19IQVNIX09SREVSICA0ICAvKio8IFNpemUgb2Yga2V5IGhhc2ggdGFibGUuIE11c3QgYmUgcG93 ZXIgb2YgMi4gKi8KLQogc3RydWN0IGRybV9tYXN0ZXIgKmRybV9tYXN0ZXJfY3JlYXRlKHN0cnVj dCBkcm1fbWlub3IgKm1pbm9yKQogewogCXN0cnVjdCBkcm1fbWFzdGVyICptYXN0ZXI7CkBAIC0x MDUsMTAgKzEwMyw3IEBAIHN0cnVjdCBkcm1fbWFzdGVyICpkcm1fbWFzdGVyX2NyZWF0ZShzdHJ1 Y3QgZHJtX21pbm9yICptaW5vcikKIAlrcmVmX2luaXQoJm1hc3Rlci0+cmVmY291bnQpOwogCXNw aW5fbG9ja19pbml0KCZtYXN0ZXItPmxvY2suc3BpbmxvY2spOwogCWluaXRfd2FpdHF1ZXVlX2hl YWQoJm1hc3Rlci0+bG9jay5sb2NrX3F1ZXVlKTsKLQlpZiAoZHJtX2h0X2NyZWF0ZSgmbWFzdGVy LT5tYWdpY2xpc3QsIERSTV9NQUdJQ19IQVNIX09SREVSKSkgewotCQlrZnJlZShtYXN0ZXIpOwot CQlyZXR1cm4gTlVMTDsKLQl9CisJaWRyX2luaXQoJm1hc3Rlci0+bWFnaWNfbWFwKTsKIAltYXN0 ZXItPm1pbm9yID0gbWlub3I7CiAKIAlyZXR1cm4gbWFzdGVyOwpAQCAtMTQzLDEwICsxMzgsOSBA QCBzdGF0aWMgdm9pZCBkcm1fbWFzdGVyX2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCiAJCW1h c3Rlci0+dW5pcXVlID0gTlVMTDsKIAkJbWFzdGVyLT51bmlxdWVfbGVuID0gMDsKIAl9Ci0KLQlk cm1faHRfcmVtb3ZlKCZtYXN0ZXItPm1hZ2ljbGlzdCk7Ci0KIAltdXRleF91bmxvY2soJmRldi0+ c3RydWN0X211dGV4KTsKKworCWlkcl9kZXN0cm95KCZtYXN0ZXItPm1hZ2ljX21hcCk7CiAJa2Zy ZWUobWFzdGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwppbmRleCAwNzZkZDYwLi4wZjZhNWM4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZvcHMuYwpAQCAtMzgwLDYgKzM4MCw4IEBAIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0 X211dGV4KTsKIAlsaXN0X2RlbCgmZmlsZV9wcml2LT5saGVhZCk7CisJaWYgKGZpbGVfcHJpdi0+ bWFnaWMpCisJCWlkcl9yZW1vdmUoJmZpbGVfcHJpdi0+bWFzdGVyLT5tYWdpY19tYXAsIGZpbGVf cHJpdi0+bWFnaWMpOwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJaWYg KGRldi0+ZHJpdmVyLT5wcmVjbG9zZSkKQEAgLTM5NCwxMSArMzk2LDYgQEAgaW50IGRybV9yZWxl YXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCQkgIChsb25nKW9s ZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmtkZXYtPmRldnQpLAogCQkgIGRldi0+b3Bl bl9jb3VudCk7CiAKLQkvKiBSZWxlYXNlIGFueSBhdXRoIHRva2VucyB0aGF0IG1pZ2h0IHBvaW50 IHRvIHRoaXMgZmlsZV9wcml2LAotCSAgIChkbyB0aGF0IHVuZGVyIHRoZSBkcm1fZ2xvYmFsX211 dGV4KSAqLwotCWlmIChmaWxlX3ByaXYtPm1hZ2ljKQotCQkodm9pZCkgZHJtX3JlbW92ZV9tYWdp YyhmaWxlX3ByaXYtPm1hc3RlciwgZmlsZV9wcml2LT5tYWdpYyk7Ci0KIAkvKiBpZiB0aGUgbWFz dGVyIGhhcyBnb25lIGF3YXkgd2UgY2FuJ3QgZG8gYW55dGhpbmcgd2l0aCB0aGUgbG9jayAqLwog CWlmIChmaWxlX3ByaXYtPm1pbm9yLT5tYXN0ZXIpCiAJCWRybV9tYXN0ZXJfcmVsZWFzZShkZXYs IGZpbHApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJp dmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCmluZGV4IDEyYTYxZDcuLjA1OWFmMDEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ludGVybmFsLmgKQEAgLTY5LDcgKzY5LDYgQEAgaW50IGRybV9nZXRtYWdpYyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkgc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpOwogaW50IGRybV9hdXRobWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKIAkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1pbnQgZHJtX3JlbW92ZV9t YWdpYyhzdHJ1Y3QgZHJtX21hc3RlciAqbWFzdGVyLCBkcm1fbWFnaWNfdCBtYWdpYyk7CiAKIC8q IGRybV9zeXNmcy5jICovCiBleHRlcm4gc3RydWN0IGNsYXNzICpkcm1fY2xhc3M7CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKaW5kZXggODBiZTA3 YS4uMmY5ZDYwNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCisrKyBiL2luY2x1ZGUv ZHJtL2RybVAuaApAQCAtMzU1LDcgKzM1NSw3IEBAIHN0cnVjdCBkcm1fbG9ja19kYXRhIHsKICAq IEBtaW5vcjogTGluayBiYWNrIHRvIG1pbm9yIGNoYXIgZGV2aWNlIHdlIGFyZSBtYXN0ZXIgZm9y LiBJbW11dGFibGUuCiAgKiBAdW5pcXVlOiBVbmlxdWUgaWRlbnRpZmllcjogZS5nLiBidXNpZC4g UHJvdGVjdGVkIGJ5IGRybV9nbG9iYWxfbXV0ZXguCiAgKiBAdW5pcXVlX2xlbjogTGVuZ3RoIG9m IHVuaXF1ZSBmaWVsZC4gUHJvdGVjdGVkIGJ5IGRybV9nbG9iYWxfbXV0ZXguCi0gKiBAbWFnaWNs aXN0OiBIYXNoIG9mIHVzZWQgYXV0aGVudGljYXRpb24gdG9rZW5zLiBQcm90ZWN0ZWQgYnkgc3Ry dWN0X211dGV4LgorICogQG1hZ2ljX21hcDogTWFwIG9mIHVzZWQgYXV0aGVudGljYXRpb24gdG9r ZW5zLiBQcm90ZWN0ZWQgYnkgc3RydWN0X211dGV4LgogICogQGxvY2s6IERSSSBsb2NrIGluZm9y bWF0aW9uLgogICogQGRyaXZlcl9wcml2OiBQb2ludGVyIHRvIGRyaXZlci1wcml2YXRlIGluZm9y bWF0aW9uLgogICovCkBAIC0zNjQsNyArMzY0LDcgQEAgc3RydWN0IGRybV9tYXN0ZXIgewogCXN0 cnVjdCBkcm1fbWlub3IgKm1pbm9yOwogCWNoYXIgKnVuaXF1ZTsKIAlpbnQgdW5pcXVlX2xlbjsK LQlzdHJ1Y3QgZHJtX29wZW5faGFzaCBtYWdpY2xpc3Q7CisJc3RydWN0IGlkciBtYWdpY19tYXA7 CiAJc3RydWN0IGRybV9sb2NrX2RhdGEgbG9jazsKIAl2b2lkICpkcml2ZXJfcHJpdjsKIH07Ci0t IAoyLjMuNwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK