From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH 2/3] drm: simplify authentication management Date: Mon, 4 May 2015 16:05:13 +0200 Message-ID: <1430748314-862-2-git-send-email-dh.herrmann@gmail.com> References: <1430748314-862-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-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTP id 732A86E3D6 for ; Mon, 4 May 2015 07:05:40 -0700 (PDT) Received: by wgso17 with SMTP id o17so151435314wgs.1 for ; Mon, 04 May 2015 07:05:39 -0700 (PDT) In-Reply-To: <1430748314-862-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 ZXIgYWxsb2NhdGUgSURzIG11bHRpcGxlIHRpbWVzLCBldmVuCmlmIHRoZXkgd2VyZSBhbHJlYWR5 IGF1dGhlbnRpY2F0ZWQuIFRvIHRyaWdnZXIgdGhhdCwgeW91IG5lZWQgMl4zMSBvcGVuCkRSTSBm aWxlIGRlc2NyaXB0aW9ucyBhdCB0aGUgc2FtZSB0aW1lLCB0aG91Z2guCgpEaWZmLXN0YXQ6CiAg IDUgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMTU3IGRlbGV0aW9ucygtKQoKU2ln bmVkLW9mZi1ieTogRGF2aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5uQGdtYWlsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYyAgICAgfCAxNzggKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgICAgICB8ICAx MiArLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jICAgICB8ICAgNyArLQogZHJpdmVycy9n cHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgICAxIC0KIGluY2x1ZGUvZHJtL2RybVAuaCAgICAgICAg ICAgICB8ICAgNCArLQogNSBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAxNTcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F1dGguYwppbmRleCA4YTM3NTI0Li5lZTM2NWU4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F1 dGguYwpAQCAtMSwxMSArMSwzIEBACi0vKioKLSAqIFxmaWxlIGRybV9hdXRoLmMKLSAqIElPQ1RM cyBmb3IgYXV0aGVudGljYXRpb24KLSAqCi0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFp dGggPGZhaXRoQHZhbGludXguY29tPgotICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhA dmFsaW51eC5jb20+Ci0gKi8KLQogLyoKICAqIENyZWF0ZWQ6IFR1ZSBGZWIgIDIgMDg6Mzc6NTQg MTk5OSBieSBmYWl0aEB2YWxpbnV4LmNvbQogICoKQEAgLTEzLDYgKzUsOSBAQAogICogQ29weXJp Z2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgog ICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCisgKiBBdXRob3IgUmlja2FyZCBFLiAoUmlrKSBG YWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+CisgKiBBdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRo QHZhbGludXguY29tPgorICoKICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCiAgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAogICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgpAQCAtMzYsMTUxICszMSw0NyBAQAogI2luY2x1ZGUgPGRy bS9kcm1QLmg+CiAjaW5jbHVkZSAiZHJtX2ludGVybmFsLmgiCiAKLXN0cnVjdCBkcm1fbWFnaWNf ZW50cnkgewotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2hfaXRlbTsKLQlzdHJ1Y3QgZHJtX2Zp bGUgKnByaXY7Ci19OwotCi0vKioKLSAqIEZpbmQgdGhlIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gbWFn aWMgbnVtYmVyLgotICoKLSAqIFxwYXJhbSBkZXYgRFJNIGRldmljZS4KLSAqIFxwYXJhbSBtYWdp YyBtYWdpYyBudW1iZXIuCi0gKgotICogU2VhcmNoZXMgaW4gZHJtX2RldmljZTo6bWFnaWNsaXN0 IHdpdGhpbiBhbGwgZmlsZXMgd2l0aCB0aGUgc2FtZSBoYXNoIGtleQotICogdGhlIG9uZSB3aXRo IG1hdGNoaW5nIG1hZ2ljIG51bWJlciwgd2hpbGUgaG9sZGluZyB0aGUgZHJtX2RldmljZTo6c3Ry dWN0X211dGV4Ci0gKiBsb2NrLgotICovCi1zdGF0aWMgc3RydWN0IGRybV9maWxlICpkcm1fZmlu ZF9maWxlKHN0cnVjdCBkcm1fbWFzdGVyICptYXN0ZXIsIGRybV9tYWdpY190IG1hZ2ljKQotewot CXN0cnVjdCBkcm1fZmlsZSAqcmV0dmFsID0gTlVMTDsKLQlzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5 ICpwdDsKLQlzdHJ1Y3QgZHJtX2hhc2hfaXRlbSAqaGFzaDsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gbWFzdGVyLT5taW5vci0+ZGV2OwotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwotCWlmICghZHJtX2h0X2ZpbmRfaXRlbSgmbWFzdGVyLT5tYWdpY2xpc3QsICh1bnNpZ25l ZCBsb25nKW1hZ2ljLCAmaGFzaCkpIHsKLQkJcHQgPSBkcm1faGFzaF9lbnRyeShoYXNoLCBzdHJ1 Y3QgZHJtX21hZ2ljX2VudHJ5LCBoYXNoX2l0ZW0pOwotCQlyZXR2YWwgPSBwdC0+cHJpdjsKLQl9 Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JcmV0dXJuIHJldHZhbDsKLX0K LQogLyoqCi0gKiBBZGRzIGEgbWFnaWMgbnVtYmVyLgorICogZHJtX2dldG1hZ2ljIC0gR2V0IHVu aXF1ZSBtYWdpYyBvZiBhIGNsaWVudAorICogQGRldjogRFJNIGRldmljZSB0byBvcGVyYXRlIG9u CisgKiBAZGF0YTogaW9jdGwgZGF0YSBjb250YWluaW5nIHRoZSBkcm1fYXV0aCBvYmplY3QKKyAq IEBmaWxlX3ByaXY6IERSTSBmaWxlIHRoYXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbgogICoKLSAq IFxwYXJhbSBkZXYgRFJNIGRldmljZS4KLSAqIFxwYXJhbSBwcml2IGZpbGUgcHJpdmF0ZSBkYXRh LgotICogXHBhcmFtIG1hZ2ljIG1hZ2ljIG51bWJlci4KKyAqIFRoaXMgbG9va3MgdXAgdGhlIHVu aXF1ZSBtYWdpYyBvZiB0aGUgcGFzc2VkIGNsaWVudCBhbmQgcmV0dXJucyBpdC4gSWYgdGhlCisg KiBjbGllbnQgZGlkIG5vdCBoYXZlIGEgbWFnaWMgYXNzaWduZWQsIHlldCwgYSBuZXcgb25lIGlz IHJlZ2lzdGVyZWQuIFRoZSBtYWdpYworICogaXMgc3RvcmVkIGluIHRoZSBwYXNzZWQgZHJtX2F1 dGggb2JqZWN0LgogICoKLSAqIENyZWF0ZXMgYSBkcm1fbWFnaWNfZW50cnkgc3RydWN0dXJlIGFu ZCBhcHBlbmRzIHRvIHRoZSBsaW5rZWQgbGlzdAotICogYXNzb2NpYXRlZCB0aGUgbWFnaWMgbnVt YmVyIGhhc2gga2V5IGluIGRybV9kZXZpY2U6Om1hZ2ljbGlzdCwgd2hpbGUgaG9sZGluZwotICog dGhlIGRybV9kZXZpY2U6OnN0cnVjdF9tdXRleCBsb2NrLgotICovCi1zdGF0aWMgaW50IGRybV9h ZGRfbWFnaWMoc3RydWN0IGRybV9tYXN0ZXIgKm1hc3Rlciwgc3RydWN0IGRybV9maWxlICpwcml2 LAotCQkJIGRybV9tYWdpY190IG1hZ2ljKQotewotCXN0cnVjdCBkcm1fbWFnaWNfZW50cnkgKmVu dHJ5OwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtYXN0ZXItPm1pbm9yLT5kZXY7Ci0JRFJN X0RFQlVHKCIlZFxuIiwgbWFnaWMpOwotCi0JZW50cnkgPSBremFsbG9jKHNpemVvZigqZW50cnkp LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWVudHJ5KQotCQlyZXR1cm4gLUVOT01FTTsKLQllbnRyeS0+ cHJpdiA9IHByaXY7Ci0JZW50cnktPmhhc2hfaXRlbS5rZXkgPSAodW5zaWduZWQgbG9uZyltYWdp YzsKLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JZHJtX2h0X2luc2VydF9pdGVt KCZtYXN0ZXItPm1hZ2ljbGlzdCwgJmVudHJ5LT5oYXNoX2l0ZW0pOwotCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogUmVtb3ZlIGEg bWFnaWMgbnVtYmVyLgotICoKLSAqIFxwYXJhbSBkZXYgRFJNIGRldmljZS4KLSAqIFxwYXJhbSBt YWdpYyBtYWdpYyBudW1iZXIuCi0gKgotICogU2VhcmNoZXMgYW5kIHVubGlua3MgdGhlIGVudHJ5 IGluIGRybV9kZXZpY2U6Om1hZ2ljbGlzdCB3aXRoIHRoZSBtYWdpYwotICogbnVtYmVyIGhhc2gg a2V5LCB3aGlsZSBob2xkaW5nIHRoZSBkcm1fZGV2aWNlOjpzdHJ1Y3RfbXV0ZXggbG9jay4KLSAq LwotaW50IGRybV9yZW1vdmVfbWFnaWMoc3RydWN0IGRybV9tYXN0ZXIgKm1hc3RlciwgZHJtX21h Z2ljX3QgbWFnaWMpCi17Ci0Jc3RydWN0IGRybV9tYWdpY19lbnRyeSAqcHQ7Ci0Jc3RydWN0IGRy bV9oYXNoX2l0ZW0gKmhhc2g7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1hc3Rlci0+bWlu b3ItPmRldjsKLQotCURSTV9ERUJVRygiJWRcbiIsIG1hZ2ljKTsKLQotCW11dGV4X2xvY2soJmRl di0+c3RydWN0X211dGV4KTsKLQlpZiAoZHJtX2h0X2ZpbmRfaXRlbSgmbWFzdGVyLT5tYWdpY2xp c3QsICh1bnNpZ25lZCBsb25nKW1hZ2ljLCAmaGFzaCkpIHsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlwdCA9IGRybV9oYXNoX2Vu dHJ5KGhhc2gsIHN0cnVjdCBkcm1fbWFnaWNfZW50cnksIGhhc2hfaXRlbSk7Ci0JZHJtX2h0X3Jl bW92ZV9pdGVtKCZtYXN0ZXItPm1hZ2ljbGlzdCwgaGFzaCk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7Ci0KLQlrZnJlZShwdCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0g KiBHZXQgYSB1bmlxdWUgbWFnaWMgbnVtYmVyIChpb2N0bCkuCi0gKgotICogXHBhcmFtIGlub2Rl IGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAq IFxwYXJhbSBjbWQgY29tbWFuZC4KLSAqIFxwYXJhbSBhcmcgcG9pbnRlciB0byBhIHJlc3VsdGlu ZyBkcm1fYXV0aCBzdHJ1Y3R1cmUuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2Vzcywgb3IgYSBu ZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KLSAqCi0gKiBJZiB0aGVyZSBpcyBhIG1hZ2ljIG51 bWJlciBpbiBkcm1fZmlsZTo6bWFnaWMgdGhlbiB1c2UgaXQsIG90aGVyd2lzZQotICogc2VhcmNo ZXMgYW4gdW5pcXVlIG5vbi16ZXJvIG1hZ2ljIG51bWJlciBhbmQgYWRkIGl0IGFzc29jaWF0aW5n IGl0IHdpdGggXHAKLSAqIGZpbGVfcHJpdi4KLSAqIFRoaXMgaW9jdGwgbmVlZHMgcHJvdGVjdGlv biBieSB0aGUgZHJtX2dsb2JhbF9tdXRleCwgd2hpY2ggcHJvdGVjdHMKLSAqIHN0cnVjdCBkcm1f ZmlsZTo6bWFnaWMgYW5kIHN0cnVjdCBkcm1fbWFnaWNfZW50cnk6OnByaXYuCisgKiBSZXR1cm5z OiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwogaW50 IGRybV9nZXRtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKLQlzdGF0aWMgZHJtX21hZ2ljX3Qgc2VxdWVuY2UgPSAw OwotCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7CiAJc3RydWN0IGRybV9hdXRoICphdXRo ID0gZGF0YTsKKwlpbnQgcmV0ID0gMDsKIAotCS8qIEZpbmQgdW5pcXVlIG1hZ2ljICovCi0JaWYg KGZpbGVfcHJpdi0+bWFnaWMpIHsKLQkJYXV0aC0+bWFnaWMgPSBmaWxlX3ByaXYtPm1hZ2ljOwot CX0gZWxzZSB7Ci0JCWRvIHsKLQkJCXNwaW5fbG9jaygmbG9jayk7Ci0JCQlpZiAoIXNlcXVlbmNl KQotCQkJCSsrc2VxdWVuY2U7CS8qIHJlc2VydmUgMCAqLwotCQkJYXV0aC0+bWFnaWMgPSBzZXF1 ZW5jZSsrOwotCQkJc3Bpbl91bmxvY2soJmxvY2spOwotCQl9IHdoaWxlIChkcm1fZmluZF9maWxl KGZpbGVfcHJpdi0+bWFzdGVyLCBhdXRoLT5tYWdpYykpOwotCQlmaWxlX3ByaXYtPm1hZ2ljID0g YXV0aC0+bWFnaWM7Ci0JCWRybV9hZGRfbWFnaWMoZmlsZV9wcml2LT5tYXN0ZXIsIGZpbGVfcHJp diwgYXV0aC0+bWFnaWMpOworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAo IWZpbGVfcHJpdi0+bWFnaWMpIHsKKwkJcmV0ID0gaWRyX2FsbG9jX2N5Y2xpYygmZmlsZV9wcml2 LT5tYXN0ZXItPm1hZ2ljX21hcCwgZmlsZV9wcml2LAorCQkJCSAgICAgICAxLCAwLCBHRlBfS0VS TkVMKTsKKwkJaWYgKHJldCA+PSAwKQorCQkJZmlsZV9wcml2LT5tYWdpYyA9IHJldDsKIAl9CisJ YXV0aC0+bWFnaWMgPSBmaWxlX3ByaXYtPm1hZ2ljOworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwogCiAJRFJNX0RFQlVHKCIldVxuIiwgYXV0aC0+bWFnaWMpOwogCi0JcmV0dXJu IDA7CisJcmV0dXJuIHJldDsKIH0KIAogLyoqCi0gKiBBdXRoZW50aWNhdGUgd2l0aCBhIG1hZ2lj LgorICogZHJtX2F1dGhtYWdpYyAtIEF1dGhlbnRpY2F0ZSBjbGllbnQgd2l0aCBhIG1hZ2ljCisg KiBAZGV2OiBEUk0gZGV2aWNlIHRvIG9wZXJhdGUgb24KKyAqIEBkYXRhOiBpb2N0bCBkYXRhIGNv bnRhaW5pbmcgdGhlIGRybV9hdXRoIG9iamVjdAorICogQGZpbGVfcHJpdjogRFJNIGZpbGUgdGhh dCBwZXJmb3JtcyB0aGUgb3BlcmF0aW9uCiAgKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9k ZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxwYXJhbSBjbWQg Y29tbWFuZC4KLSAqIFxwYXJhbSBhcmcgcG9pbnRlciB0byBhIGRybV9hdXRoIHN0cnVjdHVyZS4K LSAqIFxyZXR1cm4gemVybyBpZiBhdXRoZW50aWNhdGlvbiBzdWNjZXNzZWQsIG9yIGEgbmVnYXRp dmUgbnVtYmVyIG90aGVyd2lzZS4KKyAqIFRoaXMgbG9va3MgdXAgYSBEUk0gY2xpZW50IGJ5IHRo ZSBwYXNzZWQgbWFnaWMgYW5kIGF1dGhlbnRpY2F0ZXMgaXQuCiAgKgotICogQ2hlY2tzIGlmIFxw IGZpbGVfcHJpdiBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIG1hZ2ljIG51bWJlciBwYXNzZWQgaW4g XGFyZy4KLSAqIFRoaXMgaW9jdGwgbmVlZHMgcHJvdGVjdGlvbiBieSB0aGUgZHJtX2dsb2JhbF9t dXRleCwgd2hpY2ggcHJvdGVjdHMKLSAqIHN0cnVjdCBkcm1fZmlsZTo6bWFnaWMgYW5kIHN0cnVj dCBkcm1fbWFnaWNfZW50cnk6OnByaXYuCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0 aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwogaW50IGRybV9hdXRobWFnaWMoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdikKQEAgLTE4OSwxMCArODAsMTcgQEAgaW50IGRybV9hdXRobWFnaWMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGU7CiAKIAlEUk1f REVCVUcoIiV1XG4iLCBhdXRoLT5tYWdpYyk7Ci0JaWYgKChmaWxlID0gZHJtX2ZpbmRfZmlsZShm aWxlX3ByaXYtPm1hc3RlciwgYXV0aC0+bWFnaWMpKSkgeworCisJaWYgKGF1dGgtPm1hZ2ljID49 IElOVF9NQVgpCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOworCWZpbGUgPSBpZHJfZmluZCgmZmlsZV9wcml2LT5tYXN0ZXItPm1hZ2ljX21hcCwg YXV0aC0+bWFnaWMpOworCWlmIChmaWxlKSB7CiAJCWZpbGUtPmF1dGhlbnRpY2F0ZWQgPSAxOwot CQlkcm1fcmVtb3ZlX21hZ2ljKGZpbGVfcHJpdi0+bWFzdGVyLCBhdXRoLT5tYWdpYyk7Ci0JCXJl dHVybiAwOworCQlpZHJfcmVwbGFjZSgmZmlsZV9wcml2LT5tYXN0ZXItPm1hZ2ljX21hcCwgTlVM TCwgYXV0aC0+bWFnaWMpOwogCX0KLQlyZXR1cm4gLUVJTlZBTDsKKwltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKKworCXJldHVybiBmaWxlID8gMCA6IC1FSU5WQUw7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9k cnYuYwppbmRleCAyNmVkOWZlLi44OGI1OTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKQEAgLTkyLDggKzkyLDYg QEAgdm9pZCBkcm1fdXRfZGVidWdfcHJpbnRrKGNvbnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsIGNv bnN0IGNoYXIgKmZvcm1hdCwgLi4uKQogfQogRVhQT1JUX1NZTUJPTChkcm1fdXRfZGVidWdfcHJp bnRrKTsKIAotI2RlZmluZSBEUk1fTUFHSUNfSEFTSF9PUkRFUiAgNCAgLyoqPCBTaXplIG9mIGtl eSBoYXNoIHRhYmxlLiBNdXN0IGJlIHBvd2VyIG9mIDIuICovCi0KIHN0cnVjdCBkcm1fbWFzdGVy ICpkcm1fbWFzdGVyX2NyZWF0ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKIHsKIAlzdHJ1Y3Qg ZHJtX21hc3RlciAqbWFzdGVyOwpAQCAtMTA1LDEwICsxMDMsNyBAQCBzdHJ1Y3QgZHJtX21hc3Rl ciAqZHJtX21hc3Rlcl9jcmVhdGUoc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAJa3JlZl9pbml0 KCZtYXN0ZXItPnJlZmNvdW50KTsKIAlzcGluX2xvY2tfaW5pdCgmbWFzdGVyLT5sb2NrLnNwaW5s b2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZtYXN0ZXItPmxvY2subG9ja19xdWV1ZSk7Ci0J aWYgKGRybV9odF9jcmVhdGUoJm1hc3Rlci0+bWFnaWNsaXN0LCBEUk1fTUFHSUNfSEFTSF9PUkRF UikpIHsKLQkJa2ZyZWUobWFzdGVyKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQorCWlkcl9pbml0KCZt YXN0ZXItPm1hZ2ljX21hcCk7CiAJbWFzdGVyLT5taW5vciA9IG1pbm9yOwogCiAJcmV0dXJuIG1h c3RlcjsKQEAgLTE0MywxMCArMTM4LDkgQEAgc3RhdGljIHZvaWQgZHJtX21hc3Rlcl9kZXN0cm95 KHN0cnVjdCBrcmVmICprcmVmKQogCQltYXN0ZXItPnVuaXF1ZSA9IE5VTEw7CiAJCW1hc3Rlci0+ dW5pcXVlX2xlbiA9IDA7CiAJfQotCi0JZHJtX2h0X3JlbW92ZSgmbWFzdGVyLT5tYWdpY2xpc3Qp OwotCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpZHJfZGVzdHJveSgm bWFzdGVyLT5tYWdpY19tYXApOwogCWtmcmVlKG1hc3Rlcik7CiB9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMKaW5k ZXggMDc2ZGQ2MC4uMGY2YTVjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3Bz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMKQEAgLTM4MCw2ICszODAsOCBAQCBp bnQgZHJtX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiAK IAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJbGlzdF9kZWwoJmZpbGVfcHJpdi0+ bGhlYWQpOworCWlmIChmaWxlX3ByaXYtPm1hZ2ljKQorCQlpZHJfcmVtb3ZlKCZmaWxlX3ByaXYt Pm1hc3Rlci0+bWFnaWNfbWFwLCBmaWxlX3ByaXYtPm1hZ2ljKTsKIAltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKIAogCWlmIChkZXYtPmRyaXZlci0+cHJlY2xvc2UpCkBAIC0zOTQs MTEgKzM5Niw2IEBAIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlscCkKIAkJICAobG9uZylvbGRfZW5jb2RlX2RldihmaWxlX3ByaXYtPm1pbm9yLT5r ZGV2LT5kZXZ0KSwKIAkJICBkZXYtPm9wZW5fY291bnQpOwogCi0JLyogUmVsZWFzZSBhbnkgYXV0 aCB0b2tlbnMgdGhhdCBtaWdodCBwb2ludCB0byB0aGlzIGZpbGVfcHJpdiwKLQkgICAoZG8gdGhh dCB1bmRlciB0aGUgZHJtX2dsb2JhbF9tdXRleCkgKi8KLQlpZiAoZmlsZV9wcml2LT5tYWdpYykK LQkJKHZvaWQpIGRybV9yZW1vdmVfbWFnaWMoZmlsZV9wcml2LT5tYXN0ZXIsIGZpbGVfcHJpdi0+ bWFnaWMpOwotCiAJLyogaWYgdGhlIG1hc3RlciBoYXMgZ29uZSBhd2F5IHdlIGNhbid0IGRvIGFu eXRoaW5nIHdpdGggdGhlIGxvY2sgKi8KIAlpZiAoZmlsZV9wcml2LT5taW5vci0+bWFzdGVyKQog CQlkcm1fbWFzdGVyX3JlbGVhc2UoZGV2LCBmaWxwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRl eCAxMmE2MWQ3Li4wNTlhZjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVy bmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC02OSw3ICs2OSw2 IEBAIGludCBkcm1fZ2V0bWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIGludCBkcm1fYXV0aG1hZ2ljKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAgc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpOwotaW50IGRybV9yZW1vdmVfbWFnaWMoc3RydWN0IGRybV9tYXN0ZXIgKm1hc3Rlciwg ZHJtX21hZ2ljX3QgbWFnaWMpOwogCiAvKiBkcm1fc3lzZnMuYyAqLwogZXh0ZXJuIHN0cnVjdCBj bGFzcyAqZHJtX2NsYXNzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVk ZS9kcm0vZHJtUC5oCmluZGV4IDgwYmUwN2EuLjJmOWQ2MDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL2RybVAuaAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTM1NSw3ICszNTUsNyBAQCBz dHJ1Y3QgZHJtX2xvY2tfZGF0YSB7CiAgKiBAbWlub3I6IExpbmsgYmFjayB0byBtaW5vciBjaGFy IGRldmljZSB3ZSBhcmUgbWFzdGVyIGZvci4gSW1tdXRhYmxlLgogICogQHVuaXF1ZTogVW5pcXVl IGlkZW50aWZpZXI6IGUuZy4gYnVzaWQuIFByb3RlY3RlZCBieSBkcm1fZ2xvYmFsX211dGV4Lgog ICogQHVuaXF1ZV9sZW46IExlbmd0aCBvZiB1bmlxdWUgZmllbGQuIFByb3RlY3RlZCBieSBkcm1f Z2xvYmFsX211dGV4LgotICogQG1hZ2ljbGlzdDogSGFzaCBvZiB1c2VkIGF1dGhlbnRpY2F0aW9u IHRva2Vucy4gUHJvdGVjdGVkIGJ5IHN0cnVjdF9tdXRleC4KKyAqIEBtYWdpY19tYXA6IE1hcCBv ZiB1c2VkIGF1dGhlbnRpY2F0aW9uIHRva2Vucy4gUHJvdGVjdGVkIGJ5IHN0cnVjdF9tdXRleC4K ICAqIEBsb2NrOiBEUkkgbG9jayBpbmZvcm1hdGlvbi4KICAqIEBkcml2ZXJfcHJpdjogUG9pbnRl ciB0byBkcml2ZXItcHJpdmF0ZSBpbmZvcm1hdGlvbi4KICAqLwpAQCAtMzY0LDcgKzM2NCw3IEBA IHN0cnVjdCBkcm1fbWFzdGVyIHsKIAlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKIAljaGFyICp1 bmlxdWU7CiAJaW50IHVuaXF1ZV9sZW47Ci0Jc3RydWN0IGRybV9vcGVuX2hhc2ggbWFnaWNsaXN0 OworCXN0cnVjdCBpZHIgbWFnaWNfbWFwOwogCXN0cnVjdCBkcm1fbG9ja19kYXRhIGxvY2s7CiAJ dm9pZCAqZHJpdmVyX3ByaXY7CiB9OwotLSAKMi4zLjcKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==