From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC 4/7] drm/fb-helper: Add simple init/fini functions Date: Wed, 12 Jul 2017 15:46:02 +0200 Message-ID: <1499867165-60925-5-git-send-email-noralf@tronnes.org> References: <1499867165-60925-1-git-send-email-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id F29336E1E6 for ; Wed, 12 Jul 2017 13:46:22 +0000 (UTC) In-Reply-To: <1499867165-60925-1-git-send-email-noralf@tronnes.org> 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 VGhpcyBhZGRzIHNvbWUgc2ltcGxlIGluaXQvZmluaS9mYl9wcm9iZSBoZWxwZXJzIGZvciBkcml2 ZXJzCnRoYXQgZG9uJ3QgbmVlZCBhbnl0aGluZyBzcGVjaWFsIGluIHRoZWlyIGZiZGV2IGVtdWxh dGlvbi4KClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3Jn PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgfCAyMDggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5o ICAgICB8ICA0MiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNTAgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IGQ4YjI2OTAuLjc3ZjI5NDMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9mYl9oZWxwZXIuYwpAQCAtMjUxNSwzICsyNTE1LDIxMSBAQCBpbnQgX19pbml0IGRybV9mYl9o ZWxwZXJfbW9kaW5pdCh2b2lkKQogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZmJf aGVscGVyX21vZGluaXQpOworCitzdGF0aWMgaW50IGRybV9mYl9oZWxwZXJfZGVmaW9faW5pdChz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKQoreworCXN0cnVjdCBmYl9pbmZvICpmYmkgPSBo ZWxwZXItPmZiZGV2OworCXN0cnVjdCBmYl9kZWZlcnJlZF9pbyAqZmJkZWZpbzsKKwlzdHJ1Y3Qg ZmJfb3BzICpmYm9wczsKKworCS8qCisJICogUGVyIGRldmljZSBzdHJ1Y3R1cmVzIGFyZSBuZWVk ZWQgYmVjYXVzZToKKwkgKiBmYm9wczogZmJfZGVmZXJyZWRfaW9fY2xlYW51cCgpIGNsZWFycyBm Ym9wcy5mYl9tbWFwCisJICogZmJkZWZpbzogaW5kaXZpZHVhbCBkZWxheXMKKwkgKi8KKwlmYmRl ZmlvID0ga3phbGxvYyhzaXplb2YoKmZiZGVmaW8pLCBHRlBfS0VSTkVMKTsKKwlmYm9wcyA9IGt6 YWxsb2Moc2l6ZW9mKCpmYm9wcyksIEdGUF9LRVJORUwpOworCWlmICghZmJkZWZpbyB8fCAhZmJv cHMpIHsKKwkJa2ZyZWUoZmJkZWZpbyk7CisJCWtmcmVlKGZib3BzKTsKKwkJcmV0dXJuIC1FTk9N RU07CisJfQorCisJKmZib3BzID0gKmZiaS0+ZmJvcHM7CisJZmJpLT5mYm9wcyA9IGZib3BzOwor CisJZmJkZWZpby0+ZGVsYXkgPSBtc2Vjc190b19qaWZmaWVzKDUwKTsKKwlmYmRlZmlvLT5kZWZl cnJlZF9pbyA9IGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW87CisJZmJpLT5mYmRlZmlvID0gZmJk ZWZpbzsKKwlmYl9kZWZlcnJlZF9pb19pbml0KGZiaSk7CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9kZWZpb19maW5pKHN0cnVjdCBkcm1fZmJfaGVscGVyICpo ZWxwZXIpCit7CisJaWYgKCFoZWxwZXItPmZiZGV2IHx8ICFoZWxwZXItPmZiZGV2LT5mYmRlZmlv KQorCQlyZXR1cm47CisKKwlmYl9kZWZlcnJlZF9pb19jbGVhbnVwKGhlbHBlci0+ZmJkZXYpOwor CWtmcmVlKGhlbHBlci0+ZmJkZXYtPmZiZGVmaW8pOworCWtmcmVlKGhlbHBlci0+ZmJkZXYtPmZi b3BzKTsKK30KKworLyoqCisgKiBAZHJtX2ZiX2hlbHBlcl9tb2RlX2NtZCAtIENvbnZlcnQgZmJk ZXYgdG8gZmIgZGVzY3JpcHRpb24KKyAqIEBtb2RlX2NtZDogYWRkZmIgZGVzY3JpcHRpb24KKyAq IEBzaXplczogZmJkZXYgZGVzY3JpcHRpb24KKyAqCisgKiBSZXR1cm5zOiBTaXplIG9mIGZyYW1l YnVmZmVyLgorICovCitzaXplX3QgZHJtX2ZiX2hlbHBlcl9tb2RlX2NtZChzdHJ1Y3QgZHJtX21v ZGVfZmJfY21kMiAqbW9kZV9jbWQsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJm YWNlX3NpemUgKnNpemVzKQoreworCW1lbXNldChtb2RlX2NtZCwgMCwgc2l6ZW9mKCptb2RlX2Nt ZCkpOworCW1vZGVfY21kLT53aWR0aCA9IHNpemVzLT5zdXJmYWNlX3dpZHRoOworCW1vZGVfY21k LT5oZWlnaHQgPSBzaXplcy0+c3VyZmFjZV9oZWlnaHQ7CisJbW9kZV9jbWQtPnBpdGNoZXNbMF0g PSBzaXplcy0+c3VyZmFjZV93aWR0aCAqCisJCQkgICAgICAgRElWX1JPVU5EX1VQKHNpemVzLT5z dXJmYWNlX2JwcCwgOCk7CisJbW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCA9IGRybV9tb2RlX2xlZ2Fj eV9mYl9mb3JtYXQoc2l6ZXMtPnN1cmZhY2VfYnBwLAorCQkJCQkJCXNpemVzLT5zdXJmYWNlX2Rl cHRoKTsKKworCXJldHVybiBtb2RlX2NtZC0+cGl0Y2hlc1swXSAqIG1vZGVfY21kLT5oZWlnaHQ7 Cit9CisKKy8qKgorICogZHJtX2ZiX2hlbHBlcl9zaW1wbGVfZmJfcHJvYmUgLSBzaW1wbGUgJmRy bV9mYl9oZWxwZXJfZnVuY3MtPmZiX3Byb2JlIGhlbHBlcgorICogQGhlbHBlcjogZmJkZXYgZW11 bGF0aW9uIHN0cnVjdHVyZQorICogQHNpemVzOiBmYmRldiBkZXNjcmlwdGlvbgorICogQGZiOiBB dHRhY2hlZCBEUk0gZnJhbWVidWZmZXIKKyAqIEBmYm9wczogZmJkZXYgb3BlcmF0aW9ucworICog QHZhZGRyOiBWaXJ0dWFsIGFkZHJlc3MgZm9yICZmYl9pbmZvLT5zY3JlZW5fYnVmZmVyCisgKiBA cGFkZHI6IEFkZHJlc3MgZm9yICZmYl9maXhfc2NyZWVuaW5mby0+c21lbV9zdGFydC4KKyAqIEBz aXplOiBGcmFtZWJ1ZmZlciBzaXplCisgKgorICogRHJpdmVycyBjYW4gdXNlIHRoaXMgaW4gdGhl aXIgJmRybV9mYl9oZWxwZXJfZnVuY3MtPmZiX3Byb2JlIGZ1bmN0aW9uLgorICoKKyAqIFJldHVy bnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUu CisgKi8KK2ludCBkcm1fZmJfaGVscGVyX3NpbXBsZV9mYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqaGVscGVyLAorCQkJCSAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpz aXplcywKKwkJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCSAgc3RydWN0IGZi X29wcyAqZmJvcHMsIHZvaWQgKnZhZGRyLAorCQkJCSAgdW5zaWduZWQgbG9uZyBwYWRkciwgc2l6 ZV90IHNpemUpCit7CisJc3RydWN0IGZiX2luZm8gKmZiaTsKKwlpbnQgcmV0OworCisJRFJNX0RF QlVHX0tNUygic3VyZmFjZSB3aWR0aCglZCksIGhlaWdodCglZCkgYW5kIGJwcCglZClcbiIsCisJ CSAgICAgIHNpemVzLT5zdXJmYWNlX3dpZHRoLCBzaXplcy0+c3VyZmFjZV9oZWlnaHQsCisJCSAg ICAgIHNpemVzLT5zdXJmYWNlX2JwcCk7CisKKwlmYmkgPSBkcm1fZmJfaGVscGVyX2FsbG9jX2Zi aShoZWxwZXIpOworCWlmIChJU19FUlIoZmJpKSkKKwkJcmV0dXJuIFBUUl9FUlIoZmJpKTsKKwor CWhlbHBlci0+ZmIgPSBmYjsKKwlmYmktPnBhciA9IGhlbHBlcjsKKwlmYmktPmZib3BzID0gZmJv cHM7CisKKwlkcm1fZmJfaGVscGVyX2ZpbGxfZml4KGZiaSwgZmItPnBpdGNoZXNbMF0sIGZiLT5m b3JtYXQtPmRlcHRoKTsKKwlkcm1fZmJfaGVscGVyX2ZpbGxfdmFyKGZiaSwgaGVscGVyLCBzaXpl cy0+ZmJfd2lkdGgsIHNpemVzLT5mYl9oZWlnaHQpOworCisJZmJpLT5zY3JlZW5fYmFzZSA9IHZh ZGRyOworCWZiaS0+Zml4LnNtZW1fc3RhcnQgPSBwYWRkcjsKKwlmYmktPnNjcmVlbl9zaXplID0g c2l6ZTsKKwlmYmktPmZpeC5zbWVtX2xlbiA9IHNpemU7CisKKwlpZiAoZmItPmZ1bmNzLT5kaXJ0 eSkgeworCQlyZXQgPSBkcm1fZmJfaGVscGVyX2RlZmlvX2luaXQoaGVscGVyKTsKKwkJaWYgKHJl dCkKKwkJCWdvdG8gZXJyX2hlbHBlcl9maW5pOworCX0KKworCXJldHVybiAwOworCitlcnJfaGVs cGVyX2Zpbmk6CisJZHJtX2ZiX2hlbHBlcl9maW5pKGhlbHBlcik7CisKKwlyZXR1cm4gcmV0Owor fQorRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3NpbXBsZV9mYl9wcm9iZSk7CisKKy8qKgor ICogZHJtX2ZiX2hlbHBlcl9zaW1wbGVfaW5pdCAtIFNpbXBsZSBmYmRldiBlbXVsYXRpb24gaW5p dAorICogQGRldjogZHJtIGRldmljZQorICogQGhlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRl diBoZWxwZXIgc3RydWN0dXJlIHRvIGluaXRpYWxpemUKKyAqIEBicHBfc2VsOiBicHAgdmFsdWUg dG8gdXNlIGZvciB0aGUgZnJhbWVidWZmZXIgY29uZmlndXJhdGlvbgorICogQG1heF9jb25uX2Nv dW50OiBtYXggY29ubmVjdG9yIGNvdW50CisgKiBAZnVuY3M6IHBvaW50ZXIgdG8gc3RydWN0dXJl IG9mIGZ1bmN0aW9ucyBhc3NvY2lhdGUgd2l0aCB0aGlzIGhlbHBlcgorICoKKyAqIFNpbXBsZSBm YmRldiBlbXVsYXRpb24gaW5pdGlhbGl6YXRpb24uIFRoaXMgZnVuY3Rpb24gY2FsbHM6CisgKiBk cm1fZmJfaGVscGVyX3ByZXBhcmUoKSwgZHJtX2ZiX2hlbHBlcl9pbml0KCksCisgKiBkcm1fZmJf aGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoKSBhbmQKKyAqIGRybV9mYl9oZWxwZXJf aW5pdGlhbF9jb25maWcoKS4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2ZiX2hlbHBlcl9z aW1wbGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgc3RydWN0IGRybV9m Yl9oZWxwZXIgKmhlbHBlciwgaW50IGJwcF9zZWwsCisJCQkgICAgICBpbnQgbWF4X2Nvbm5fY291 bnQsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyAqZnVuY3MpCit7 CisJaW50IHJldDsKKworCWRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsIGhlbHBlciwgZnVuY3Mp OworCisJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgaGVscGVyLCBtYXhfY29ubl9jb3Vu dCk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYtPmRldiwgIkZhaWxlZCB0 byBpbml0aWFsaXplIGZiIGhlbHBlci5cbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9 IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycyhoZWxwZXIpOworCWlmIChy ZXQgPCAwKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LT5kZXYsICJGYWlsZWQgdG8gYWRkIGNvbm5l Y3RvcnMuXG4iKTsKKwkJZ290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOworCisJfQorCisJcmV0 ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhoZWxwZXIsIGJwcF9zZWwpOworCWlmIChy ZXQgPCAwKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LT5kZXYsICJGYWlsZWQgdG8gc2V0IGluaXRp YWwgaHcgY29uZmlnLlxuIik7CisJCWdvdG8gZXJyX2RybV9mYl9oZWxwZXJfZmluaTsKKwl9CisK KwlyZXR1cm4gMDsKKworZXJyX2RybV9mYl9oZWxwZXJfZmluaToKKwlkcm1fZmJfaGVscGVyX2Zp bmkoaGVscGVyKTsKKworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkcm1fZmJf aGVscGVyX3NpbXBsZV9pbml0KTsKKworLyoqCisgKiBkcm1fZmJfaGVscGVyX3NpbXBsZV9maW5p IC0gU2ltcGxlIGZiZGV2IGNsZWFudXAKKyAqIEBoZWxwZXI6IGZiZGV2IGVtdWxhdGlvbiBzdHJ1 Y3R1cmUKKyAqCisgKiBTaW1wbGUgZmJkZXYgZW11bGF0aW9uIGNsZWFudXAuIFRoaXMgZnVuY3Rp b24gdW5yZWdpc3RlcnMgZmJkZXYsIGNsZWFucyB1cAorICogZGVmZXJyZWQgaW8gaWYgbmVjZXNz YXJ5LCByZW1vdmVzIGZyYW1lYnVmZmVyLCBmcmVlcyBzaGFkb3cgYnVmZmVyIGlmIHVzZWQKKyAq IGFuZCBmaW5hbGx5IGNsZWFucyB1cCBAaGVscGVyLiBUaGUgZHJpdmVyIGlmIHJlc3BvbnNpYmxl IGZvciBmcmVlaW5nIHRoZQorICogQGhlbHBlciBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQgZHJtX2Zi X2hlbHBlcl9zaW1wbGVfZmluaShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKQoreworCWlm ICghaGVscGVyKQorCQlyZXR1cm47CisKKwlkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfZmJpKGhl bHBlcik7CisKKwlkcm1fZmJfaGVscGVyX2RlZmlvX2ZpbmkoaGVscGVyKTsKKworCWlmIChoZWxw ZXItPmZiKSB7CisJCWRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoaGVscGVyLT5mYik7CisJCS8qCisJ CSAqIGZvciBzb21lIHJlYXNvbiBpZiBkcm1fZmJfaGVscGVyX3NldF9wYXIoKSBpcyBjYWxsZWQg d2UgZW5kCisJCSAqIHVwIHdpdGggYW4gZXh0cmEgcmVmIHRha2VuIG9uIHRoZSBmcmFtZWJ1ZmZl ci4uLgorCQkgKi8KKwkJaWYgKGRybV9mcmFtZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KGhlbHBlci0+ ZmIpKQorCQkJZHJtX2ZyYW1lYnVmZmVyX3B1dChoZWxwZXItPmZiKTsKKwl9CisKKwlpZiAoaGVs cGVyLT5kZWZpb192YWRkcikKKwkJa3ZmcmVlKGhlbHBlci0+ZmJkZXYtPnNjcmVlbl9idWZmZXIp OworCisJZHJtX2ZiX2hlbHBlcl9maW5pKGhlbHBlcik7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChk cm1fZmJfaGVscGVyX3NpbXBsZV9maW5pKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9m Yl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAppbmRleCAxNTlkNWRkLi5m OGRiODg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCkBAIC0zMjcsNiArMzI3LDE5IEBAIGRybV9waWNrX2Nt ZGxpbmVfbW9kZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3IgKmZiX2hlbHBlcl9jb25u KTsKIGludCBkcm1fZmJfaGVscGVyX2FkZF9vbmVfY29ubmVjdG9yKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXIsIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwogaW50IGRy bV9mYl9oZWxwZXJfcmVtb3ZlX29uZV9jb25uZWN0b3Ioc3RydWN0IGRybV9mYl9oZWxwZXIgKmZi X2hlbHBlciwKIAkJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CisK K3NpemVfdCBkcm1fZmJfaGVscGVyX21vZGVfY21kKHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpt b2RlX2NtZCwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6 ZXMpOworaW50IGRybV9mYl9oZWxwZXJfc2ltcGxlX2ZiX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpoZWxwZXIsCisJCQkJICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNp emVzLAorCQkJCSAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCQkJICBzdHJ1Y3QgZmJf b3BzICpmYm9wcywgdm9pZCAqdmFkZHIsCisJCQkJICB1bnNpZ25lZCBsb25nIHBhZGRyLCBzaXpl X3Qgc2l6ZSk7CitpbnQgZHJtX2ZiX2hlbHBlcl9zaW1wbGVfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAorCQkJICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwgaW50IGJwcF9z ZWwsCisJCQkgICAgICBpbnQgbWF4X2Nvbm5fY291bnQsCisJCQkgICAgICBjb25zdCBzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlcl9mdW5jcyAqZnVuY3MpOwordm9pZCBkcm1fZmJfaGVscGVyX3NpbXBsZV9m aW5pKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpOwogI2Vsc2UKIHN0YXRpYyBpbmxpbmUg dm9pZCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJ c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKQEAgLTUyNCw2ICs1MzcsMzUgQEAgZHJtX2Zi X2hlbHBlcl9yZW1vdmVfb25lX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVs cGVyLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW5saW5lIHNpemVfdAorZHJtX2ZiX2hlbHBl cl9tb2RlX2NtZChzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCisJCSAgICAgICBz dHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKQoreworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW5saW5lIGludAorZHJtX2ZiX2hlbHBlcl9zaW1wbGVfZmJfcHJvYmUoc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZmJfaGVscGVy X3N1cmZhY2Vfc2l6ZSAqc2l6ZXMsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwKKwkJCSAgICAgIHN0cnVjdCBmYl9vcHMgKmZib3BzLCB2b2lkICp2YWRkciwKKwkJCSAgICAg IHVuc2lnbmVkIGxvbmcgcGFkZHIsIHNpemVfdCBzaXplKQoreworCXJldHVybiAwOworfQorCitz dGF0aWMgaW5saW5lIGludAorZHJtX2ZiX2hlbHBlcl9zaW1wbGVfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAorCQkJICBpbnQgYnBwX3Nl bCwgaW50IG1heF9jb25uX2NvdW50LAorCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9m dW5jcyAqZnVuY3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1f ZmJfaGVscGVyX3NpbXBsZV9maW5pKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpCit7Cit9 CisKICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIGludAotLSAKMi43LjQKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=