From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH 4/6] drm: provide management functions for drm_file Date: Thu, 1 Sep 2016 14:48:35 +0200 Message-ID: <20160901124837.680-5-dh.herrmann@gmail.com> References: <20160901124837.680-1-dh.herrmann@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25AA66E93B for ; Thu, 1 Sep 2016 12:48:57 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id c133so3629811wmd.2 for ; Thu, 01 Sep 2016 05:48:57 -0700 (PDT) In-Reply-To: <20160901124837.680-1-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 UmF0aGVyIHRoYW4gZG9pbmcgZHJtX2ZpbGUgYWxsb2NhdGlvbi9kZXN0cnVjdGlvbiByaWdodCBp biB0aGUgZm9wcywgbGV0cwpwcm92aWRlIHNlcGFyYXRlIGhlbHBlcnMuIFRoaXMgZGVjb3VwbGVz IGRybV9maWxlIG1hbmFnZW1lbnQgZnJvbSB0aGUKc3RpbGwtbWFuZGF0b3J5IGRybS1mb3BzLiBJ dCBwcmVwYXJlcyBmb3IgdXNlIG9mIGRybV9maWxlIHdpdGhvdXQgdGhlCmZvcHMsIGJvdGggYnkg cG9zc2libGUgc2VwYXJhdGUgZm9wcyBpbXBsZW1lbnRhdGlvbnMgYW5kIEFQSXMgKG5vdCB0aGF0 IEkKYW0gYXdhcmUgb2YgYW55IHN1Y2ggcGxhbnMpLCBhbmQgbW9yZSBpbXBvcnRhbnRseSBmcm9t IGluLWtlcm5lbCB1c2Ugd2hlcmUKbm8gcmVhbCBmaWxlIGlzIGF2YWlsYWJsZS4KClNpZ25lZC1v ZmYtYnk6IERhdmlkIEhlcnJtYW5uIDxkaC5oZXJybWFubkBnbWFpbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2RybV9kcnYuYyAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyAgICAgfCAxMzIgKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9pbnRlcm5hbC5oIHwgICA0ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCsp LCAxMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKaW5kZXggNTdjZTk3My4uOWFiMDAxNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Rydi5jCkBAIC05NSw2ICs5NSwxNDEgQEAgdm9pZCBkcm1fdXRfZGVidWdfcHJpbnRrKGNv bnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQogfQogRVhQ T1JUX1NZTUJPTChkcm1fdXRfZGVidWdfcHJpbnRrKTsKIAorLyoqCisgKiBkcm1fZmlsZV9hbGxv YyAtIGFsbG9jYXRlIGZpbGUgY29udGV4dAorICogQG1pbm9yOiBtaW5vciB0byBhbGxvY2F0ZSBv bgorICoKKyAqIFRoaXMgYWxsb2NhdGVzIGEgbmV3IERSTSBmaWxlIGNvbnRleHQuIEl0IGlzIG5v dCBsaW5rZWQgaW50byBhbnkgY29udGV4dCBhbmQKKyAqIGNhbiBiZSB1c2VkIGJ5IHRoZSBjYWxs ZXIgZnJlZWx5LiBOb3RlIHRoYXQgdGhlIGNvbnRleHQga2VlcHMgYSBwb2ludGVyIHRvCisgKiBA bWlub3IsIHNvIGl0IG11c3QgYmUgZnJlZWQgYmVmb3JlIEBtaW5vciBpcy4KKyAqCisgKiBUaGUg bGVnYWN5IHBhdGhzIG1pZ2h0IHJlcXVpcmUgdGhlIGRybV9nbG9iYWxfbXV0ZXggdG8gYmUgaGVs ZC4KKyAqCisgKiBSRVRVUk5TOgorICogUG9pbnRlciB0byBuZXdseSBhbGxvY2F0ZWQgY29udGV4 dCwgRVJSX1BUUiBvbiBmYWlsdXJlLgorICovCitzdHJ1Y3QgZHJtX2ZpbGUgKmRybV9maWxlX2Fs bG9jKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBtaW5vci0+ZGV2OworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZTsKKwlpbnQgcmV0OworCisJZmls ZSA9IGt6YWxsb2Moc2l6ZW9mKCpmaWxlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmaWxlKQorCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCWZpbGUtPnBpZCA9IGdldF9waWQodGFza19waWQo Y3VycmVudCkpOworCWZpbGUtPm1pbm9yID0gbWlub3I7CisJZmlsZS0+YXV0aGVudGljYXRlZCA9 IGNhcGFibGUoQ0FQX1NZU19BRE1JTik7IC8qIGxlZ2FjeSBjb21wYXQgKi8KKwlJTklUX0xJU1Rf SEVBRCgmZmlsZS0+bGhlYWQpOworCUlOSVRfTElTVF9IRUFEKCZmaWxlLT5mYnMpOworCW11dGV4 X2luaXQoJmZpbGUtPmZic19sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmZmlsZS0+YmxvYnMpOwor CUlOSVRfTElTVF9IRUFEKCZmaWxlLT5wZW5kaW5nX2V2ZW50X2xpc3QpOworCUlOSVRfTElTVF9I RUFEKCZmaWxlLT5ldmVudF9saXN0KTsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmaWxlLT5ldmVu dF93YWl0KTsKKwlmaWxlLT5ldmVudF9zcGFjZSA9IDQwOTY7IC8qIHNldCBhc2lkZSA0ayBmb3Ig ZXZlbnQgYnVmZmVyICovCisJbXV0ZXhfaW5pdCgmZmlsZS0+ZXZlbnRfcmVhZF9sb2NrKTsKKwor CWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0dFTSkpCisJCWRybV9nZW1f b3BlbihkZXYsIGZpbGUpOworCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVS X1BSSU1FKSkKKwkJZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKCZmaWxlLT5wcmltZSk7CisK KwlpZiAoZGV2LT5kcml2ZXItPm9wZW4pIHsKKwkJcmV0ID0gZGV2LT5kcml2ZXItPm9wZW4oZGV2 LCBmaWxlKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIG91dF9wcmltZV9kZXN0cm95OworCX0K KworCWlmIChkcm1faXNfcHJpbWFyeV9jbGllbnQoZmlsZSkpIHsKKwkJcmV0ID0gZHJtX21hc3Rl cl9vcGVuKGZpbGUpOworCQlpZiAocmV0KQorCQkJZ290byBvdXRfY2xvc2U7CisJfQorCisJcmV0 dXJuIGZpbGU7CisKK291dF9jbG9zZToKKwlpZiAoZGV2LT5kcml2ZXItPnBvc3RjbG9zZSkKKwkJ ZGV2LT5kcml2ZXItPnBvc3RjbG9zZShkZXYsIGZpbGUpOworb3V0X3ByaW1lX2Rlc3Ryb3k6CisJ aWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUpKQorCQlkcm1fcHJp bWVfZGVzdHJveV9maWxlX3ByaXZhdGUoJmZpbGUtPnByaW1lKTsKKwlpZiAoZHJtX2NvcmVfY2hl Y2tfZmVhdHVyZShkZXYsIERSSVZFUl9HRU0pKQorCQlkcm1fZ2VtX3JlbGVhc2UoZGV2LCBmaWxl KTsKKwlwdXRfcGlkKGZpbGUtPnBpZCk7CisJa2ZyZWUoZmlsZSk7CisJcmV0dXJuIEVSUl9QVFIo cmV0KTsKK30KKworLyoqCisgKiBkcm1fZmlsZV9mcmVlIC0gZnJlZSBmaWxlIGNvbnRleHQKKyAq IEBmaWxlOiBjb250ZXh0IHRvIGZyZWUsIG9yIE5VTEwKKyAqCisgKiBUaGlzIGRlc3Ryb3lzIGFu ZCBkZWFsbG9jYXRlcyBhIERSTSBmaWxlIGNvbnRleHQgcHJldmlvdXNseSBhbGxvY2F0ZWQgdmlh CisgKiBkcm1fZmlsZV9hbGxvYygpLiBUaGUgY2FsbGVyIG11c3QgbWFrZSBzdXJlIHRvIHVubGlu ayBpdCBmcm9tIGFueSBjb250ZXh0cworICogYmVmb3JlIGNhbGxpbmcgdGhpcy4KKyAqCisgKiBU aGUgbGVnYWN5IHBhdGhzIG1pZ2h0IHJlcXVpcmUgdGhlIGRybV9nbG9iYWxfbXV0ZXggdG8gYmUg aGVsZC4KKyAqCisgKiBJZiBOVUxMIGlzIHBhc3NlZCwgdGhpcyBpcyBhIG5vLW9wLgorICoKKyAq IFJFVFVSTlM6CisgKiAwIG9uIHN1Y2Nlc3MsIG9yIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAq Lwordm9pZCBkcm1fZmlsZV9mcmVlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3Qg ZHJtX3BlbmRpbmdfZXZlbnQgKmU7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKKworCWlmICgh ZmlsZSkKKwkJcmV0dXJuOworCisJZGV2ID0gZmlsZS0+bWlub3ItPmRldjsKKworCWlmIChkZXYt PmRyaXZlci0+cHJlY2xvc2UpCisJCWRldi0+ZHJpdmVyLT5wcmVjbG9zZShkZXYsIGZpbGUpOwor CWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkKKwkJZHJt X2xlZ2FjeV9sb2NrX3JlbGVhc2UoZGV2LCBmaWxlLT5sZWdhY3lfZmlscCk7CisJaWYgKGRybV9j b3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpKQorCQlkcm1fbGVnYWN5X3Jl Y2xhaW1fYnVmZmVycyhkZXYsIGZpbGUpOworCisJc3Bpbl9sb2NrX2lycSgmZGV2LT5ldmVudF9s b2NrKTsKKwl3aGlsZSAoKGUgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmZpbGUtPnBlbmRp bmdfZXZlbnRfbGlzdCwKKwkJCQkJICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQsCisJCQkJ CSAgICAgcGVuZGluZ19saW5rKSkpIHsKKwkJbGlzdF9kZWwoJmUtPnBlbmRpbmdfbGluayk7CisJ CWUtPmZpbGVfcHJpdiA9IE5VTEw7CisJfQorCXdoaWxlICgoZSA9IGxpc3RfZmlyc3RfZW50cnlf b3JfbnVsbCgmZmlsZS0+ZXZlbnRfbGlzdCwKKwkJCQkJICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdf ZXZlbnQsIGxpbmspKSkgeworCQlsaXN0X2RlbCgmZS0+bGluayk7CisJCWtmcmVlKGUpOworCX0K KwlzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CisKKwlkcm1fbGVnYWN5X2N0eGJp dG1hcF9mbHVzaChkZXYsIGZpbGUpOworCisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2 LCBEUklWRVJfTU9ERVNFVCkpIHsKKwkJZHJtX2ZiX3JlbGVhc2UoZmlsZSk7CisJCWRybV9wcm9w ZXJ0eV9kZXN0cm95X3VzZXJfYmxvYnMoZGV2LCBmaWxlKTsKKwl9CisKKwlpZiAoZHJtX2NvcmVf Y2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9HRU0pKQorCQlkcm1fZ2VtX3JlbGVhc2UoZGV2LCBm aWxlKTsKKwlpZiAoZHJtX2lzX3ByaW1hcnlfY2xpZW50KGZpbGUpKQorCQlkcm1fbWFzdGVyX3Jl bGVhc2UoZmlsZSk7CisJaWYgKGRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UpCisJCWRldi0+ZHJpdmVy LT5wb3N0Y2xvc2UoZGV2LCBmaWxlKTsKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYs IERSSVZFUl9QUklNRSkpCisJCWRybV9wcmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZSgmZmlsZS0+ cHJpbWUpOworCisJV0FSTl9PTighbGlzdF9lbXB0eSgmZmlsZS0+ZXZlbnRfbGlzdCkpOworCXB1 dF9waWQoZmlsZS0+cGlkKTsKKwlrZnJlZShmaWxlKTsKK30KKwogLyoKICAqIERSTSBNaW5vcnMK ICAqIEEgRFJNIGRldmljZSBjYW4gcHJvdmlkZSBzZXZlcmFsIGNoYXItZGV2IGludGVyZmFjZXMg b24gdGhlIERSTS1NYWpvci4gRWFjaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9m b3BzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwppbmRleCA2OWVmMjNjLi4zNTljNjM2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZvcHMuYwpAQCAtMTgyLDcgKzE4Miw2IEBAIHN0YXRpYyBpbnQgZHJtX29wZW5f aGVscGVyKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKIHsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKnBy aXY7Ci0JaW50IHJldDsKIAogCWlmIChmaWxwLT5mX2ZsYWdzICYgT19FWENMKQogCQlyZXR1cm4g LUVCVVNZOwkvKiBObyBleGNsdXNpdmUgb3BlbnMgKi8KQEAgLTE5Myw0NyArMTkyLDEyIEBAIHN0 YXRpYyBpbnQgZHJtX29wZW5faGVscGVyKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZHJtX21p bm9yICptaW5vcikKIAogCURSTV9ERUJVRygicGlkID0gJWQsIG1pbm9yID0gJWRcbiIsIHRhc2tf cGlkX25yKGN1cnJlbnQpLCBtaW5vci0+aW5kZXgpOwogCi0JcHJpdiA9IGt6YWxsb2Moc2l6ZW9m KCpwcml2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwcml2KQotCQlyZXR1cm4gLUVOT01FTTsKKwlw cml2ID0gZHJtX2ZpbGVfYWxsb2MobWlub3IpOworCWlmIChJU19FUlIocHJpdikpCisJCXJldHVy biBQVFJfRVJSKHByaXYpOwogCi0JZmlscC0+cHJpdmF0ZV9kYXRhID0gcHJpdjsKIAlwcml2LT5s ZWdhY3lfZmlscCA9IGZpbHA7Ci0JcHJpdi0+cGlkID0gZ2V0X3BpZCh0YXNrX3BpZChjdXJyZW50 KSk7Ci0JcHJpdi0+bWlub3IgPSBtaW5vcjsKLQotCS8qIGZvciBjb21wYXRpYmlsaXR5IHJvb3Qg aXMgYWx3YXlzIGF1dGhlbnRpY2F0ZWQgKi8KLQlwcml2LT5hdXRoZW50aWNhdGVkID0gY2FwYWJs ZShDQVBfU1lTX0FETUlOKTsKLQlwcml2LT5sb2NrX2NvdW50ID0gMDsKLQotCUlOSVRfTElTVF9I RUFEKCZwcml2LT5saGVhZCk7Ci0JSU5JVF9MSVNUX0hFQUQoJnByaXYtPmZicyk7Ci0JbXV0ZXhf aW5pdCgmcHJpdi0+ZmJzX2xvY2spOwotCUlOSVRfTElTVF9IRUFEKCZwcml2LT5ibG9icyk7Ci0J SU5JVF9MSVNUX0hFQUQoJnByaXYtPnBlbmRpbmdfZXZlbnRfbGlzdCk7Ci0JSU5JVF9MSVNUX0hF QUQoJnByaXYtPmV2ZW50X2xpc3QpOwotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPmV2ZW50 X3dhaXQpOwotCXByaXYtPmV2ZW50X3NwYWNlID0gNDA5NjsgLyogc2V0IGFzaWRlIDRrIGZvciBl dmVudCBidWZmZXIgKi8KLQotCW11dGV4X2luaXQoJnByaXYtPmV2ZW50X3JlYWRfbG9jayk7Ci0K LQlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9HRU0pKQotCQlkcm1fZ2Vt X29wZW4oZGV2LCBwcml2KTsKLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX1BSSU1FKSkKLQkJZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKCZwcml2LT5wcmltZSk7 Ci0KLQlpZiAoZGV2LT5kcml2ZXItPm9wZW4pIHsKLQkJcmV0ID0gZGV2LT5kcml2ZXItPm9wZW4o ZGV2LCBwcml2KTsKLQkJaWYgKHJldCA8IDApCi0JCQlnb3RvIG91dF9wcmltZV9kZXN0cm95Owot CX0KLQotCWlmIChkcm1faXNfcHJpbWFyeV9jbGllbnQocHJpdikpIHsKLQkJcmV0ID0gZHJtX21h c3Rlcl9vcGVuKHByaXYpOwotCQlpZiAocmV0KQotCQkJZ290byBvdXRfY2xvc2U7Ci0JfQorCWZp bHAtPnByaXZhdGVfZGF0YSA9IHByaXY7CiAKIAltdXRleF9sb2NrKCZkZXYtPmZpbGVsaXN0X211 dGV4KTsKIAlsaXN0X2FkZCgmcHJpdi0+bGhlYWQsICZkZXYtPmZpbGVsaXN0KTsKQEAgLTI2MCw0 MyArMjI0LDYgQEAgc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGZpbGUgKmZpbHAs IHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogI2VuZGlmCiAKIAlyZXR1cm4gMDsKLQotb3V0X2Ns b3NlOgotCWlmIChkZXYtPmRyaXZlci0+cG9zdGNsb3NlKQotCQlkZXYtPmRyaXZlci0+cG9zdGNs b3NlKGRldiwgcHJpdik7Ci1vdXRfcHJpbWVfZGVzdHJveToKLQlpZiAoZHJtX2NvcmVfY2hlY2tf ZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkpCi0JCWRybV9wcmltZV9kZXN0cm95X2ZpbGVfcHJp dmF0ZSgmcHJpdi0+cHJpbWUpOwotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX0dFTSkpCi0JCWRybV9nZW1fcmVsZWFzZShkZXYsIHByaXYpOwotCXB1dF9waWQocHJpdi0+ cGlkKTsKLQlrZnJlZShwcml2KTsKLQlmaWxwLT5wcml2YXRlX2RhdGEgPSBOVUxMOwotCXJldHVy biByZXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGRybV9ldmVudHNfcmVsZWFzZShzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdikKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmlsZV9wcml2LT5t aW5vci0+ZGV2OwotCXN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCAqZSwgKmV0OwotCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFn cyk7Ci0KLQkvKiBVbmxpbmsgcGVuZGluZyBldmVudHMgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUoZSwgZXQsICZmaWxlX3ByaXYtPnBlbmRpbmdfZXZlbnRfbGlzdCwKLQkJCQkgcGVuZGlu Z19saW5rKSB7Ci0JCWxpc3RfZGVsKCZlLT5wZW5kaW5nX2xpbmspOwotCQllLT5maWxlX3ByaXYg PSBOVUxMOwotCX0KLQotCS8qIFJlbW92ZSB1bmNvbnN1bWVkIGV2ZW50cyAqLwotCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShlLCBldCwgJmZpbGVfcHJpdi0+ZXZlbnRfbGlzdCwgbGluaykgewot CQlsaXN0X2RlbCgmZS0+bGluayk7Ci0JCWtmcmVlKGUpOwotCX0KLQotCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwogfQogCiAvKgpAQCAtMzcwLDU5ICsy OTcsMTYgQEAgaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmaWxwKQogCiAJbXV0ZXhfbG9jaygmZHJtX2dsb2JhbF9tdXRleCk7CiAKLQlEUk1fREVCVUco Im9wZW5fY291bnQgPSAlZFxuIiwgZGV2LT5vcGVuX2NvdW50KTsKLQotCW11dGV4X2xvY2soJmRl di0+ZmlsZWxpc3RfbXV0ZXgpOwotCWxpc3RfZGVsKCZmaWxlX3ByaXYtPmxoZWFkKTsKLQltdXRl eF91bmxvY2soJmRldi0+ZmlsZWxpc3RfbXV0ZXgpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wcmVj bG9zZSkKLQkJZGV2LT5kcml2ZXItPnByZWNsb3NlKGRldiwgZmlsZV9wcml2KTsKLQotCS8qID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0J ICogQmVnaW4gaW5saW5lIGRybV9yZWxlYXNlCi0JICovCi0KIAlEUk1fREVCVUcoInBpZCA9ICVk LCBkZXZpY2UgPSAweCVseCwgb3Blbl9jb3VudCA9ICVkXG4iLAogCQkgIHRhc2tfcGlkX25yKGN1 cnJlbnQpLAogCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmtkZXYt PmRldnQpLAogCQkgIGRldi0+b3Blbl9jb3VudCk7CiAKLQlpZiAoIWRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCi0JCWRybV9sZWdhY3lfbG9ja19yZWxlYXNlKGRl diwgZmlscCk7Ci0KLQlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9IQVZF X0RNQSkpCi0JCWRybV9sZWdhY3lfcmVjbGFpbV9idWZmZXJzKGRldiwgZmlsZV9wcml2KTsKLQot CWRybV9ldmVudHNfcmVsZWFzZShmaWxlX3ByaXYpOwotCi0JaWYgKGRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpIHsKLQkJZHJtX2ZiX3JlbGVhc2UoZmlsZV9wcml2 KTsKLQkJZHJtX3Byb3BlcnR5X2Rlc3Ryb3lfdXNlcl9ibG9icyhkZXYsIGZpbGVfcHJpdik7Ci0J fQotCi0JaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfR0VNKSkKLQkJZHJt X2dlbV9yZWxlYXNlKGRldiwgZmlsZV9wcml2KTsKLQotCWRybV9sZWdhY3lfY3R4Yml0bWFwX2Zs dXNoKGRldiwgZmlsZV9wcml2KTsKLQotCWlmIChkcm1faXNfcHJpbWFyeV9jbGllbnQoZmlsZV9w cml2KSkKLQkJZHJtX21hc3Rlcl9yZWxlYXNlKGZpbGVfcHJpdik7Ci0KLQlpZiAoZGV2LT5kcml2 ZXItPnBvc3RjbG9zZSkKLQkJZGV2LT5kcml2ZXItPnBvc3RjbG9zZShkZXYsIGZpbGVfcHJpdik7 Ci0KLQlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkpCi0JCWRy bV9wcmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZSgmZmlsZV9wcml2LT5wcmltZSk7Ci0KLQlXQVJO X09OKCFsaXN0X2VtcHR5KCZmaWxlX3ByaXYtPmV2ZW50X2xpc3QpKTsKLQotCXB1dF9waWQoZmls ZV9wcml2LT5waWQpOwotCWtmcmVlKGZpbGVfcHJpdik7CisJbXV0ZXhfbG9jaygmZGV2LT5maWxl bGlzdF9tdXRleCk7CisJbGlzdF9kZWwoJmZpbGVfcHJpdi0+bGhlYWQpOworCW11dGV4X3VubG9j aygmZGV2LT5maWxlbGlzdF9tdXRleCk7CiAKLQkvKiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCSAqIEVuZCBpbmxpbmUgZHJtX3JlbGVh c2UKLQkgKi8KKwlkcm1fZmlsZV9mcmVlKGZpbGVfcHJpdik7CiAKIAlpZiAoIS0tZGV2LT5vcGVu X2NvdW50KSB7CiAJCWRybV9sYXN0Y2xvc2UoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRl eCBiODZkYzliLi45YjY2Y2M0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVy bmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC0yOCw2ICsyOCwx MCBAQCBleHRlcm4gdW5zaWduZWQgaW50IGRybV90aW1lc3RhbXBfbW9ub3RvbmljOwogZXh0ZXJu IHN0cnVjdCBtdXRleCBkcm1fZ2xvYmFsX211dGV4Owogdm9pZCBkcm1fbGFzdGNsb3NlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogCisvKiBkcm1fZHJ2LmMgKi8KK3N0cnVjdCBkcm1fZmlsZSAq ZHJtX2ZpbGVfYWxsb2Moc3RydWN0IGRybV9taW5vciAqbWlub3IpOwordm9pZCBkcm1fZmlsZV9m cmVlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CisKIC8qIGRybV9wY2kuYyAqLwogaW50IGRybV9p cnFfYnlfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJICAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==