From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stone Subject: [RFC PATCH 36/37] drm: mode: Add user object-creation ioctl Date: Thu, 19 Mar 2015 04:33:35 +0000 Message-ID: <1426739616-10635-36-git-send-email-daniels@collabora.com> References: <1426739556-10429-1-git-send-email-daniels@collabora.com> <1426739616-10635-1-git-send-email-daniels@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [93.93.135.160]) by gabe.freedesktop.org (Postfix) with ESMTP id 2CA956E968 for ; Wed, 18 Mar 2015 21:34:12 -0700 (PDT) In-Reply-To: <1426739616-10635-1-git-send-email-daniels@collabora.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 List-Id: dri-devel@lists.freedesktop.org QWRkIGFuIGlvY3RsIHdoaWNoIGFsbG93cyB1c2VycyB0byBjcmVhdGUgb2JqZWN0cyBmcm9tIGFy Yml0cmFyeSBkYXRhLgpDdXJyZW50bHkgdGhpcyBvbmx5IHN1cHBvcnRzIG1vZGVzLCBjcmVhdGlu ZyBhIGRybV9kaXNwbGF5X21vZGUgZnJvbSB0aGUKdXNlcnNwYWNlIGRybV9tb2RlX21vZGVpbmZv LgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIFN0b25lIDxkYW5pZWxzQGNvbGxhYm9yYS5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyAgfCAg IDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyB8ICAgMiArCiBpbmNsdWRlL2RybS9k cm1QLmggICAgICAgICAgfCAgIDYgKysKIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICB8ICAg NiArKwogaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgIHwgICAyICsKIGluY2x1ZGUvdWFwaS9k cm0vZHJtX21vZGUuaCB8ICAyMiArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjA5IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9j cnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwppbmRleCAyMWUyMDUyLi5lMjU4ZTdj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGMuYwpAQCAtNDE1NSw2ICs0MTU1LDE5IEBAIHN0YXRpYyB2b2lkIGRybV9w cm9wZXJ0eV9kZXN0cm95X2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlrZnJlZShibG9i KTsKIH0KIAordm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2JzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlz dHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IsICpidDsKKworCW11dGV4X2xvY2soJmZpbGVf cHJpdi0+cHJvcGVydGllc19sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYmxvYiwg YnQsICZmaWxlX3ByaXYtPnByb3BlcnRpZXMsIGhlYWQpIHsKKwkJZHJtX3Byb3BlcnR5X2Rlc3Ry b3lfYmxvYihkZXYsIGJsb2IpOworCX0KKwltdXRleF91bmxvY2soJmZpbGVfcHJpdi0+cHJvcGVy dGllc19sb2NrKTsKKwltdXRleF9kZXN0cm95KCZmaWxlX3ByaXYtPnByb3BlcnRpZXNfbG9jayk7 Cit9CisKIC8qKgogICogZHJtX21vZGVfZ2V0YmxvYl9pb2N0bCAtIGdldCB0aGUgY29udGVudHMg b2YgYSBibG9iIHByb3BlcnR5IHZhbHVlCiAgKiBAZGV2OiBEUk0gZGV2aWNlCkBAIC00MjE2LDYg KzQyMjksMTU5IEBAIGRvbmU6CiB9CiAKIC8qKgorICogZHJtX21vZGVfY3JlYXRlYmxvYl9pb2N0 bCAtIGNyZWF0ZSBhIG5ldyBibG9iIHByb3BlcnR5CisgKiBAZGV2OiBEUk0gZGV2aWNlCisgKiBA ZGF0YTogaW9jdGwgZGF0YQorICogQGZpbGVfcHJpdjogRFJNIGZpbGUgaW5mbworICoKKyAqIFRo aXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyBibG9iIHByb3BlcnR5IHdpdGggdXNlci1kZWZpbmVk IHZhbHVlcy4gSW4gb3JkZXIKKyAqIHRvIGdpdmUgdXMgc2Vuc2libGUgdmFsaWRhdGlvbiBhbmQg Y2hlY2tpbmcgd2hlbiBjcmVhdGluZywgcmF0aGVyIHRoYW4gYXQKKyAqIGV2ZXJ5IHBvdGVudGlh bCB1c2UsIHdlIGFsc28gcmVxdWlyZSBhIHR5cGUgdG8gYmUgcHJvdmlkZWQgdXBmcm9udC4KKyAq CisgKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLgorICoKKyAqIFJldHVybnM6CisgKiBa ZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1f bW9kZV9jcmVhdGVibG9iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgICB2 b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX21v ZGVfY3JlYXRlX2Jsb2IgKm91dF9yZXNwID0gZGF0YTsKKwl1aW50MzJfdCBsZW5ndGggPSAwOwor CXZvaWQgKmJsb2JfZGF0YTsKKwlpbnQgcmV0ID0gMDsKKwl2b2lkIF9fdXNlciAqYmxvYl9wdHI7 CisKKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCisJ CXJldHVybiAtRUlOVkFMOworCisJc3dpdGNoIChvdXRfcmVzcC0+dHlwZSkgeworCWNhc2UgRFJN X01PREVfQkxPQl9UWVBFX01PREU6IHsKKwkJbGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBkcm1fbW9k ZV9tb2RlaW5mbyk7CisJCWlmIChvdXRfcmVzcC0+bGVuZ3RoICE9IGxlbmd0aCkgeworCQkJcmV0 ID0gLUUyQklHOworCQkJZ290byBvdXRfdW5sb2NrZWQ7CisJCX0KKwkJYnJlYWs7CisJfQorCWRl ZmF1bHQ6CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0X3VubG9ja2VkOworCX0KKworCWJs b2JfZGF0YSA9IGt6YWxsb2MobGVuZ3RoLCBHRlBfVVNFUik7CisJaWYgKCFibG9iX2RhdGEpIHsK KwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CisJfQorCisJYmxvYl9wdHIg PSAodm9pZCBfX3VzZXIgKikodW5zaWduZWQgbG9uZylvdXRfcmVzcC0+ZGF0YTsKKwlpZiAoY29w eV9mcm9tX3VzZXIoYmxvYl9kYXRhLCBibG9iX3B0ciwgb3V0X3Jlc3AtPmxlbmd0aCkpIHsKKwkJ cmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZGF0YTsKKwl9CisKKwlkcm1fbW9kZXNldF9sb2Nr X2FsbChkZXYpOworCisJc3dpdGNoIChvdXRfcmVzcC0+dHlwZSkgeworCWNhc2UgRFJNX01PREVf QkxPQl9UWVBFX01PREU6IHsKKwkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisKKwkJ bW9kZSA9IGRybV9tb2RlX25ld19mcm9tX3Vtb2RlKGRldiwgYmxvYl9kYXRhKTsKKwkJaWYgKCFt b2RlKSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290byBvdXRfbG9ja2VkOworCQl9CisKKwkJ b3V0X3Jlc3AtPmJsb2JfaWQgPSBtb2RlLT5iYXNlLmlkOworCisJCS8qIFhYWDogV2hlbiB3ZSB3 ZXJlIHVzaW5nIGEgcHJvcGVydHkgYXMgdGhlIGJhc2UgaGVyZSwgd2UKKwkJICogICAgICBhZGRl ZCB0aGUgbW9kZSB0byB0aGUgcHJvcGVydGllcyBsaXN0IHRvIGVuc3VyZSBpdAorCQkgKiAgICAg IGdvdCBjbGVhbmVkIHVwIHdoZW4gdGhlIGRybV9maWxlIGRpc2FwcGVhcmVkLiBCdXQKKwkJICog ICAgICBieSB1c2luZyBkcm1fZGlzcGxheV9tb2RlIGFzIHRoZSBiYXNlIG9iamVjdCwgd2UKKwkJ ICogICAgICBjYW4ndCBhZGQgaXQgdG8gdGhlIGxpc3QgYW55bW9yZS4gQWRkaW5nIGEgc3BlY2lm aWMKKwkJICogICAgICBtb2RlIGxpc3QgZmVlbHMgcHJldHR5IHVuY2xlYW4gdGhvdWdoIC4uLgor CQltdXRleF9sb2NrKCZmaWxlX3ByaXYtPnByb3BlcnRpZXNfbG9jayk7CisJCWxpc3RfYWRkX3Rh aWwoJmJsb2ItPmhlYWQsICZmaWxlX3ByaXYtPnByb3BlcnRpZXMpOworCQltdXRleF91bmxvY2so JmZpbGVfcHJpdi0+cHJvcGVydGllc19sb2NrKTsgKi8KKworCQlicmVhazsKKwl9CisJfQorCitv dXRfbG9ja2VkOgorCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKK291dF9kYXRhOgorCWtm cmVlKGJsb2JfZGF0YSk7CitvdXRfdW5sb2NrZWQ6CisJcmV0dXJuIHJldDsKK30KKworLyoqCisg KiBkcm1fbW9kZV9kZXN0cm95YmxvYl9pb2N0bCAtIGRlc3Ryb3kgYSB1c2VyIGJsb2IgcHJvcGVy dHkKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqIEBkYXRhOiBpb2N0bCBkYXRhCisgKiBAZmlsZV9w cml2OiBEUk0gZmlsZSBpbmZvCisgKgorICogRGVzdHJveSBhbiBleGlzdGluZyB1c2VyLWRlZmlu ZWQgYmxvYiBwcm9wZXJ0eS4KKyAqCisgKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLgor ICoKKyAqIFJldHVybnM6CisgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZh aWx1cmUuCisgKi8KK2ludCBkcm1fbW9kZV9kZXN0cm95YmxvYl9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAorCQkJICAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KQoreworCXN0cnVjdCBkcm1fbW9kZV9kZXN0cm95X2Jsb2IgKm91dF9yZXNwID0gZGF0YTsK KwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBOVUxMLCAqYnQ7CisJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUgPSBOVUxMOworCWJvb2wgZm91bmQgPSBmYWxzZTsKKwlpbnQg cmV0ID0gMDsKKworCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RF U0VUKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwor CWJsb2IgPSBkcm1fcHJvcGVydHlfYmxvYl9maW5kKGRldiwgb3V0X3Jlc3AtPmJsb2JfaWQpOwor CWlmICghYmxvYikKKwkJbW9kZSA9IGRybV9tb2RlX2ZpbmQoZGV2LCBvdXRfcmVzcC0+YmxvYl9p ZCk7CisKKwlpZiAoIWJsb2IgJiYgIW1vZGUpIHsKKwkJcmV0ID0gLUVOT0VOVDsKKwkJZ290byBv dXRfbG9ja2VkOworCX0KKworCS8qIEVuc3VyZSB0aGUgcHJvcGVydHkgd2FzIGFjdHVhbGx5IGNy ZWF0ZWQgYnkgdGhpcyB1c2VyLiAqLworCWlmIChibG9iKSB7CisJCW11dGV4X2xvY2soJmZpbGVf cHJpdi0+cHJvcGVydGllc19sb2NrKTsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJ0LCAmZmls ZV9wcml2LT5wcm9wZXJ0aWVzLCBoZWFkKSB7CisJCQlpZiAoYnQgPT0gYmxvYikgeworCQkJCWZv dW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmIChmb3VuZCkgeworCQkJ ZHJtX3Byb3BlcnR5X2Rlc3Ryb3lfYmxvYihkZXYsIGJsb2IpOworCQkJcmV0ID0gMDsKKwkJfSBl bHNlIHsKKwkJCXJldCA9IC1FUEVSTTsKKwkJfQorCisJCW11dGV4X3VubG9jaygmZmlsZV9wcml2 LT5wcm9wZXJ0aWVzX2xvY2spOworCX0gZWxzZSBpZiAobW9kZSkgeworCQkvKiBYWFg6IFRoaXMg aXMgbWlzc2luZyBhbGwgdGhlIG5pY2UgY2hlY2tpbmcgZnJvbSBhYm92ZSAuLi4gKi8KKwkJZHJt X21vZGVfZGVzdHJveShkZXYsIG1vZGUpOworCX0KKworb3V0X2xvY2tlZDoKKwlkcm1fbW9kZXNl dF91bmxvY2tfYWxsKGRldik7CisJcmV0dXJuIHJldDsKK30KKworLyoqCiAgKiBkcm1fbW9kZV9j b25uZWN0b3Jfc2V0X3BhdGhfcHJvcGVydHkgLSBzZXQgdGlsZSBwcm9wZXJ0eSBvbiBjb25uZWN0 b3IKICAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBzZXQgcHJvcGVydHkgb24uCiAgKiBAcGF0 aDogcGF0aCB0byB1c2UgZm9yIHByb3BlcnR5LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9mb3BzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwppbmRleCAwNzZkZDYwLi42 ZTM4OWVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwpAQCAtMTY3LDYgKzE2Nyw4IEBAIHN0YXRpYyBpbnQgZHJt X29wZW5faGVscGVyKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikK IAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+bGhlYWQpOwogCUlOSVRfTElTVF9IRUFEKCZwcml2LT5m YnMpOwogCW11dGV4X2luaXQoJnByaXYtPmZic19sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmcHJp di0+cHJvcGVydGllcyk7CisJbXV0ZXhfaW5pdCgmcHJpdi0+cHJvcGVydGllc19sb2NrKTsKIAlJ TklUX0xJU1RfSEVBRCgmcHJpdi0+ZXZlbnRfbGlzdCk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgm cHJpdi0+ZXZlbnRfd2FpdCk7CiAJcHJpdi0+ZXZlbnRfc3BhY2UgPSA0MDk2OyAvKiBzZXQgYXNp ZGUgNGsgZm9yIGV2ZW50IGJ1ZmZlciAqLwpAQCAtNDA4LDggKzQxMCwxMCBAQCBpbnQgZHJtX3Jl bGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiAKIAlkcm1fZXZl bnRzX3JlbGVhc2UoZmlsZV9wcml2KTsKIAotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRl diwgRFJJVkVSX01PREVTRVQpKQorCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX01PREVTRVQpKSB7CiAJCWRybV9mYl9yZWxlYXNlKGZpbGVfcHJpdik7CisJCWRybV9wcm9w ZXJ0eV9kZXN0cm95X3VzZXJfYmxvYnMoZGV2LCBmaWxlX3ByaXYpOworCX0KIAogCWlmIChkcm1f Y29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0dFTSkpCiAJCWRybV9nZW1fcmVsZWFzZShk ZXYsIGZpbGVfcHJpdik7CkBAIC00NTIsNyArNDU2LDYgQEAgaW50IGRybV9yZWxlYXNlKHN0cnVj dCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCWlmIChkZXYtPmRyaXZlci0+cG9z dGNsb3NlKQogCQlkZXYtPmRyaXZlci0+cG9zdGNsb3NlKGRldiwgZmlsZV9wcml2KTsKIAotCiAJ aWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUpKQogCQlkcm1fcHJp bWVfZGVzdHJveV9maWxlX3ByaXZhdGUoJmZpbGVfcHJpdi0+cHJpbWUpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3Rs LmMKaW5kZXggYTZkNzczYS4uZDE4MDM3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjM2LDYgKzYz Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0g ewogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfT0JKX1NFVFBST1BFUlRZLCBkcm1fbW9k ZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3RsLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERS TV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9DVVJTT1IyLCBkcm1f bW9kZV9jdXJzb3IyX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxP Q0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BVE9NSUMsIGRybV9tb2RlX2F0 b21pY19pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAor CURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1JFQVRFUFJPUEJMT0IsIGRybV9tb2RlX2Ny ZWF0ZWJsb2JfaW9jdGwsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCisJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfTU9ERV9ERVNUUk9ZUFJPUEJMT0IsIGRybV9tb2RlX2Rlc3Ryb3li bG9iX2lvY3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogfTsKIAogI2RlZmlu ZSBEUk1fQ09SRV9JT0NUTF9DT1VOVAlBUlJBWV9TSVpFKCBkcm1faW9jdGxzICkKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAppbmRleCA2M2MwYjAx Li42MmI0ZDhkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtUC5oCkBAIC0zMjIsNiArMzIyLDEyIEBAIHN0cnVjdCBkcm1fZmlsZSB7CiAJc3RydWN0 IGxpc3RfaGVhZCBmYnM7CiAJc3RydWN0IG11dGV4IGZic19sb2NrOwogCisJLyoqIFVzZXItY3Jl YXRlZCBibG9iIHByb3BlcnRpZXM7IHRoaXMgcmV0YWlucyBhIHJlZmVyZW5jZSBvbiB0aGUKKwkg KiAgcHJvcGVydHkuICovCisJc3RydWN0IGxpc3RfaGVhZCBwcm9wZXJ0aWVzOworCS8qKiBMb2Nr IGZvciBzeW5jaHJvbmlzYXRpb24gb2YgYWNjZXNzIHRvIHByb3BlcnRpZXMuICovCisJc3RydWN0 IG11dGV4IHByb3BlcnRpZXNfbG9jazsKKwogCXdhaXRfcXVldWVfaGVhZF90IGV2ZW50X3dhaXQ7 CiAJc3RydWN0IGxpc3RfaGVhZCBldmVudF9saXN0OwogCWludCBldmVudF9zcGFjZTsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCmlu ZGV4IDVjOGNiMjUuLmQ0ZDkxNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgK KysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtMTI4NCw2ICsxMjg0LDggQEAgZXh0ZXJu IGNvbnN0IGNoYXIgKmRybV9nZXRfZHZpX2lfc2VsZWN0X25hbWUoaW50IHZhbCk7CiBleHRlcm4g Y29uc3QgY2hhciAqZHJtX2dldF90dl9zdWJjb25uZWN0b3JfbmFtZShpbnQgdmFsKTsKIGV4dGVy biBjb25zdCBjaGFyICpkcm1fZ2V0X3R2X3NlbGVjdF9uYW1lKGludCB2YWwpOwogZXh0ZXJuIHZv aWQgZHJtX2ZiX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZv aWQgZHJtX3Byb3BlcnR5X2Rlc3Ryb3lfdXNlcl9ibG9icyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdik7CiBleHRlcm4gaW50IGRybV9tb2RlX2dyb3VwX2luaXRfbGVnYWN5 X2dyb3VwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9ncm91cCAqZ3Jv dXApOwogZXh0ZXJuIHZvaWQgZHJtX21vZGVfZ3JvdXBfZGVzdHJveShzdHJ1Y3QgZHJtX21vZGVf Z3JvdXAgKmdyb3VwKTsKIGV4dGVybiB2b2lkIGRybV9yZWluaXRfcHJpbWFyeV9tb2RlX2dyb3Vw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpAQCAtMTQyMiw2ICsxNDI0LDEwIEBAIGV4dGVybiBp bnQgZHJtX21vZGVfZ2V0cHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CQkgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBleHRlcm4g aW50IGRybV9tb2RlX2dldGJsb2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkg IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJt X21vZGVfY3JlYXRlYmxvYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAg dm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1f bW9kZV9kZXN0cm95YmxvYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAg IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIGV4dGVybiBpbnQgZHJt X21vZGVfY29ubmVjdG9yX3Byb3BlcnR5X3NldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCQkgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBl eHRlcm4gaW50IGRybV9tb2RlX2dldGVuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5o CmluZGV4IGZmNmVmNjIuLjM4MDE1ODQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJt LmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaApAQCAtNzg2LDYgKzc4Niw4IEBAIHN0cnVj dCBkcm1fcHJpbWVfaGFuZGxlIHsKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfT0JKX1NFVFBST1BF UlRZCURSTV9JT1dSKDB4QkEsIHN0cnVjdCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5KQogI2Rl ZmluZSBEUk1fSU9DVExfTU9ERV9DVVJTT1IyCQlEUk1fSU9XUigweEJCLCBzdHJ1Y3QgZHJtX21v ZGVfY3Vyc29yMikKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQVRPTUlDCQlEUk1fSU9XUigweEJD LCBzdHJ1Y3QgZHJtX21vZGVfYXRvbWljKQorI2RlZmluZSBEUk1fSU9DVExfTU9ERV9DUkVBVEVQ Uk9QQkxPQglEUk1fSU9XUigweEJELCBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2Jsb2IpCisjZGVm aW5lIERSTV9JT0NUTF9NT0RFX0RFU1RST1lQUk9QQkxPQglEUk1fSU9XUigweEJFLCBzdHJ1Y3Qg ZHJtX21vZGVfZGVzdHJveV9ibG9iKQogCiAvKioKICAqIERldmljZSBzcGVjaWZpYyBpb2N0bHMg c2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFkZXJzCmRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgK aW5kZXggZGJlYmE5NC4uNzNhYzkyNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1f bW9kZS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaApAQCAtNTU4LDQgKzU1OCwy NiBAQCBzdHJ1Y3QgZHJtX21vZGVfYXRvbWljIHsKIAlfX3U2NCB1c2VyX2RhdGE7CiB9OwogCisj ZGVmaW5lIERSTV9NT0RFX0JMT0JfVFlQRV9NT0RFCQkxIC8qKjwgZHJtX21vZGVfbW9kZWluZm8g Ki8KKworLyoqCisgKiBDcmVhdGUgYSBuZXcgJ2Jsb2InIGRhdGEgcHJvcGVydHksIGNvcHlpbmcg bGVuZ3RoIGJ5dGVzIGZyb20gZGF0YSBwb2ludGVyLAorICogYW5kIHJldHVybmluZyBuZXcgYmxv YiBJRC4KKyAqLworc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9ibG9iIHsKKwlfX3UzMiB0eXBlOwor CV9fdTMyIGxlbmd0aDsKKwkvKiogUG9pbnRlciB0byBkYXRhIHRvIGNyZWF0ZSBibG9iLiAqLwor CV9fdTY0IGRhdGE7CisJLyoqIFJldHVybjogbmV3IHByb3BlcnR5IElELiAqLworCV9fdTMyIGJs b2JfaWQ7Cit9OworCisvKioKKyAqIERlc3Ryb3kgYSB1c2VyLWNyZWF0ZWQgYmxvYiBwcm9wZXJ0 eS4KKyAqLworc3RydWN0IGRybV9tb2RlX2Rlc3Ryb3lfYmxvYiB7CisJX191MzIgYmxvYl9pZDsK K307CisKICNlbmRpZgotLSAKMi4zLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==