From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stone Subject: [PATCH 6/7] drm: Add reference counting to blob properties Date: Mon, 20 Apr 2015 19:22:55 +0100 Message-ID: <1429554176-9865-7-git-send-email-daniels@collabora.com> References: <1429554176-9865-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 BA49772080 for ; Mon, 20 Apr 2015 11:23:29 -0700 (PDT) In-Reply-To: <1429554176-9865-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 UmVmZXJlbmNlLWNvdW50IGRybV9wcm9wZXJ0eV9ibG9iIG9iamVjdHMsIGNoYW5naW5nIHRoZSBB UEkgdG8KcmVmL3VucmVmLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIFN0b25lIDxkYW5pZWxzQGNv bGxhYm9yYS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgfCAxNjQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL2RybS9kcm1f Y3J0Yy5oICAgICB8ICAxNyArKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygr KSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwppbmRleCA5OTQ3MDc4Li4wMzI0NWZiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYwpAQCAtMzUyLDcgKzM1Miw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX21vZGVf b2JqZWN0ICpfb2JqZWN0X2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAob2JqICYm IG9iai0+aWQgIT0gaWQpCiAJCW9iaiA9IE5VTEw7CiAJLyogZG9uJ3QgbGVhayBvdXQgdW5yZWYn ZCBmYidzICovCi0JaWYgKG9iaiAmJiAob2JqLT50eXBlID09IERSTV9NT0RFX09CSkVDVF9GQikp CisJaWYgKG9iaiAmJgorCSAgICAob2JqLT50eXBlID09IERSTV9NT0RFX09CSkVDVF9GQiB8fAor CSAgICAgb2JqLT50eXBlID09IERSTV9NT0RFX09CSkVDVF9CTE9CKSkKIAkJb2JqID0gTlVMTDsK IAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuaWRyX211dGV4KTsKIApAQCAtMzc3LDcg KzM3OSw3IEBAIHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKmRybV9tb2RlX29iamVjdF9maW5kKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkvKiBGcmFtZWJ1ZmZlcnMgYXJlIHJlZmVyZW5jZSBj b3VudGVkIGFuZCBuZWVkIHRoZWlyIG93biBsb29rdXAKIAkgKiBmdW5jdGlvbi4qLwotCVdBUk5f T04odHlwZSA9PSBEUk1fTU9ERV9PQkpFQ1RfRkIpOworCVdBUk5fT04odHlwZSA9PSBEUk1fTU9E RV9PQkpFQ1RfRkIgfHwgdHlwZSA9PSBEUk1fTU9ERV9PQkpFQ1RfQkxPQik7CiAJb2JqID0gX29i amVjdF9maW5kKGRldiwgaWQsIHR5cGUpOwogCXJldHVybiBvYmo7CiB9CkBAIC00MjAwLDcgKzQy MDIsNyBAQCBkb25lOgogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKgorc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoKIGRybV9wcm9wZXJ0eV9jcmVh dGVfYmxvYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3QgbGVuZ3RoLAogCQkJIGNvbnN0 IHZvaWQgKmRhdGEpCiB7CkBAIC00MjE1LDYgKzQyMTcsNyBAQCBkcm1fcHJvcGVydHlfY3JlYXRl X2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IGxlbmd0aCwKIAkJcmV0dXJuIE5V TEw7CiAKIAlibG9iLT5sZW5ndGggPSBsZW5ndGg7CisJYmxvYi0+ZGV2ID0gZGV2OwogCiAJbWVt Y3B5KGJsb2ItPmRhdGEsIGRhdGEsIGxlbmd0aCk7CiAKQEAgLTQyMjcsMjUgKzQyMzAsMTQ4IEBA IGRybV9wcm9wZXJ0eV9jcmVhdGVfYmxvYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qg bGVuZ3RoLAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKKwlrcmVmX2luaXQoJmJsb2ItPnJlZmNvdW50 KTsKKwogCWxpc3RfYWRkX3RhaWwoJmJsb2ItPmhlYWQsICZkZXYtPm1vZGVfY29uZmlnLnByb3Bl cnR5X2Jsb2JfbGlzdCk7CiAKIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuYmxvYl9s b2NrKTsKIAogCXJldHVybiBibG9iOwogfQorRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfY3Jl YXRlX2Jsb2IpOwogCi1zdGF0aWMgdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV9ibG9iKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCi0JCQkgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpi bG9iKQorLyoqCisgKiBkcm1fcHJvcGVydHlfZnJlZV9ibG9iIC0gQmxvYiBwcm9wZXJ0eSBkZXN0 cnVjdG9yCisgKgorICogSW50ZXJuYWwgZnJlZSBmdW5jdGlvbiBmb3IgYmxvYiBwcm9wZXJ0aWVz OyBtdXN0IG5vdCBiZSB1c2VkIGRpcmVjdGx5LgorICoKKyAqIEBwYXJhbSBrcmVmIFJlZmVyZW5j ZQorICovCitzdGF0aWMgdm9pZCBkcm1fcHJvcGVydHlfZnJlZV9ibG9iKHN0cnVjdCBrcmVmICpr cmVmKQogewotCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKTsKLQlkcm1f bW9kZV9vYmplY3RfcHV0KGRldiwgJmJsb2ItPmJhc2UpOworCXN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqYmxvYiA9CisJCWNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IsIHJlZmNvdW50KTsKKworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmYmxvYi0+ZGV2LT5t b2RlX2NvbmZpZy5ibG9iX2xvY2spKTsKKwogCWxpc3RfZGVsKCZibG9iLT5oZWFkKTsKLQltdXRl eF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKTsKKwlkcm1fbW9kZV9vYmplY3Rf cHV0KGJsb2ItPmRldiwgJmJsb2ItPmJhc2UpOwogCiAJa2ZyZWUoYmxvYik7CiB9CiAKIC8qKgor ICogZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IgLSBVbnJlZmVyZW5jZSBhIGJsb2IgcHJv cGVydHkKKyAqCisgKiBEcm9wIGEgcmVmZXJlbmNlIG9uIGEgYmxvYiBwcm9wZXJ0eS4gTWF5IGZy ZWUgdGhlIG9iamVjdC4KKyAqCisgKiBAcGFyYW0gZGV2ICBEZXZpY2UgdGhlIGJsb2Igd2FzIGNy ZWF0ZWQgb24KKyAqIEBwYXJhbSBibG9iIFBvaW50ZXIgdG8gYmxvYiBwcm9wZXJ0eQorICovCit2 b2lkIGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqYmxvYikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCisJaWYgKCFibG9iKQorCQly ZXR1cm47CisKKwlkZXYgPSBibG9iLT5kZXY7CisKKwlEUk1fREVCVUcoIiVwOiBibG9iIElEOiAl ZCAoJWQpXG4iLCBibG9iLCBibG9iLT5iYXNlLmlkLCBhdG9taWNfcmVhZCgmYmxvYi0+cmVmY291 bnQucmVmY291bnQpKTsKKworCWlmIChrcmVmX3B1dF9tdXRleCgmYmxvYi0+cmVmY291bnQsIGRy bV9wcm9wZXJ0eV9mcmVlX2Jsb2IsCisJCQkgICAmZGV2LT5tb2RlX2NvbmZpZy5ibG9iX2xvY2sp KQorCQltdXRleF91bmxvY2soJmJsb2ItPmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKTsKKwll bHNlCisJCW1pZ2h0X2xvY2soJmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKTsKKworfQorRVhQ T1JUX1NZTUJPTChkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYik7CisKKy8qKgorICogZHJt X3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2JfbG9ja2VkIC0gVW5yZWZlcmVuY2UgYSBibG9iIHBy b3BlcnR5IHdpdGggYmxvYl9sb2NrIGhlbGQKKyAqCisgKiBEcm9wIGEgcmVmZXJlbmNlIG9uIGEg YmxvYiBwcm9wZXJ0eS4gTWF5IGZyZWUgdGhlIG9iamVjdC4gVGhpcyBtdXN0IGJlCisgKiBjYWxs ZWQgd2l0aCBibG9iX2xvY2sgaGVsZC4KKyAqCisgKiBAcGFyYW0gZGV2ICBEZXZpY2UgdGhlIGJs b2Igd2FzIGNyZWF0ZWQgb24KKyAqIEBwYXJhbSBibG9iIFBvaW50ZXIgdG8gYmxvYiBwcm9wZXJ0 eQorICovCitzdGF0aWMgdm9pZCBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYl9sb2NrZWQo c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQoreworCWlmICghYmxvYikKKwkJcmV0dXJu OworCisJRFJNX0RFQlVHKCIlcDogYmxvYiBJRDogJWQgKCVkKVxuIiwgYmxvYiwgYmxvYi0+YmFz ZS5pZCwgYXRvbWljX3JlYWQoJmJsb2ItPnJlZmNvdW50LnJlZmNvdW50KSk7CisKKwlrcmVmX3B1 dCgmYmxvYi0+cmVmY291bnQsIGRybV9wcm9wZXJ0eV9mcmVlX2Jsb2IpOworfQorCisvKioKKyAq IGRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYiAtIFRha2UgYSByZWZlcmVuY2Ugb24gYW4gZXhp c3RpbmcgcHJvcGVydHkKKyAqCisgKiBUYWtlIGEgbmV3IHJlZmVyZW5jZSBvbiBhbiBleGlzdGlu ZyBibG9iIHByb3BlcnR5LgorICoKKyAqIEBwYXJhbSBibG9iIFBvaW50ZXIgdG8gYmxvYiBwcm9w ZXJ0eQorICovCitzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRybV9wcm9wZXJ0eV9yZWZlcmVu Y2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCit7CisJRFJNX0RFQlVHKCIl cDogYmxvYiBJRDogJWQgKCVkKVxuIiwgYmxvYiwgYmxvYi0+YmFzZS5pZCwgYXRvbWljX3JlYWQo JmJsb2ItPnJlZmNvdW50LnJlZmNvdW50KSk7CisJa3JlZl9nZXQoJmJsb2ItPnJlZmNvdW50KTsK KwlyZXR1cm4gYmxvYjsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9i bG9iKTsKKworLyoKKyAqIExpa2UgZHJtX3Byb3BlcnR5X2xvb2t1cF9ibG9iLCBidXQgZG9lcyBu b3QgcmV0dXJuIGFuIGFkZGl0aW9uYWwgcmVmZXJlbmNlLgorICogTXVzdCBiZSBjYWxsZWQgd2l0 aCBibG9iX2xvY2sgaGVsZC4KKyAqLworc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq X19kcm1fcHJvcGVydHlfbG9va3VwX2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJ CQkgICAgdWludDMyX3QgaWQpCit7CisJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqID0gTlVM TDsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2I7CisKKwlXQVJOX09OKCFtdXRleF9p c19sb2NrZWQoJmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKSk7CisKKwltdXRleF9sb2NrKCZk ZXYtPm1vZGVfY29uZmlnLmlkcl9tdXRleCk7CisJb2JqID0gaWRyX2ZpbmQoJmRldi0+bW9kZV9j b25maWcuY3J0Y19pZHIsIGlkKTsKKwlpZiAoIW9iaiB8fCAob2JqLT50eXBlICE9IERSTV9NT0RF X09CSkVDVF9CTE9CKSB8fCAob2JqLT5pZCAhPSBpZCkpCisJCWJsb2IgPSBOVUxMOworCWVsc2UK KwkJYmxvYiA9IG9ial90b19ibG9iKG9iaik7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29u ZmlnLmlkcl9tdXRleCk7CisKKwlyZXR1cm4gYmxvYjsKK30KKworLyoqCisgKiBkcm1fcHJvcGVy dHlfbG9va3VwX2Jsb2IgLSBsb29rIHVwIGEgYmxvYiBwcm9wZXJ0eSBhbmQgdGFrZSBhIHJlZmVy ZW5jZQorICogQGRldjogZHJtIGRldmljZQorICogQGlkOiBpZCBvZiB0aGUgYmxvYiBwcm9wZXJ0 eQorICoKKyAqIElmIHN1Y2Nlc3NmdWwsIHRoaXMgdGFrZXMgYW4gYWRkaXRpb25hbCByZWZlcmVu Y2UgdG8gdGhlIGJsb2IgcHJvcGVydHkuCisgKiBjYWxsZXJzIG5lZWQgdG8gbWFrZSBzdXJlIHRv IGV2ZW50dWFsbHkgdW5yZWZlcmVuY2UgdGhlIHJldHVybmVkIHByb3BlcnR5CisgKiBhZ2Fpbiwg dXNpbmcgQGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iLgorICovCitzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmRybV9wcm9wZXJ0eV9sb29rdXBfYmxvYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAorCQkJCQkgICAgICAgICAgIHVpbnQzMl90IGlkKQoreworCXN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqYmxvYjsKKworCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2Nr KTsKKwlibG9iID0gX19kcm1fcHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2LCBpZCk7CisJaWYgKGJs b2IpIHsKKwkJaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmYmxvYi0+cmVmY291bnQpKQorCQkJ YmxvYiA9IE5VTEw7CisJfQorCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5ibG9iX2xv Y2spOworCisJcmV0dXJuIGJsb2I7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9sb29r dXBfYmxvYik7CisKKy8qKgogICogZHJtX3Byb3BlcnR5X3JlcGxhY2VfZ2xvYmFsX2Jsb2IgLSBh dG9taWNhbGx5IHJlcGxhY2UgZXhpc3RpbmcgYmxvYiBwcm9wZXJ0eQogICogQGRldjogZHJtIGRl dmljZQogICogQHJlcGxhY2U6IGxvY2F0aW9uIG9mIGJsb2IgcHJvcGVydHkgcG9pbnRlciB0byBi ZSByZXBsYWNlZApAQCAtNDMxMSwxNCArNDQzNywxNCBAQCBzdGF0aWMgaW50IGRybV9wcm9wZXJ0 eV9yZXBsYWNlX2dsb2JhbF9ibG9iKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJaWYg KG9sZF9ibG9iKQotCQlkcm1fcHJvcGVydHlfZGVzdHJveV9ibG9iKGRldiwgb2xkX2Jsb2IpOwor CQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihvbGRfYmxvYik7CiAKIAkqcmVwbGFjZSA9 IG5ld19ibG9iOwogCiAJcmV0dXJuIDA7CiAKIGVycl9jcmVhdGVkOgotCWRybV9wcm9wZXJ0eV9k ZXN0cm95X2Jsb2IoZGV2LCBuZXdfYmxvYik7CisJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Js b2IobmV3X2Jsb2IpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQzNDksNyArNDQ3NSw3IEBAIGlu dCBkcm1fbW9kZV9nZXRibG9iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlkcm1f bW9kZXNldF9sb2NrX2FsbChkZXYpOwogCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcuYmxv Yl9sb2NrKTsKLQlibG9iID0gZHJtX3Byb3BlcnR5X2Jsb2JfZmluZChkZXYsIG91dF9yZXNwLT5i bG9iX2lkKTsKKwlibG9iID0gX19kcm1fcHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2LCBvdXRfcmVz cC0+YmxvYl9pZCk7CiAJaWYgKCFibG9iKSB7CiAJCXJldCA9IC1FTk9FTlQ7CiAJCWdvdG8gZG9u ZTsKQEAgLTQ1MTMsOCArNDYzOSwxOCBAQCBib29sIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRf Z2V0KHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAogCQkJdmFsaWRfbWFzayB8PSAoMVVM TCA8PCBwcm9wZXJ0eS0+dmFsdWVzW2ldKTsKIAkJcmV0dXJuICEodmFsdWUgJiB+dmFsaWRfbWFz ayk7CiAJfSBlbHNlIGlmIChkcm1fcHJvcGVydHlfdHlwZV9pcyhwcm9wZXJ0eSwgRFJNX01PREVf UFJPUF9CTE9CKSkgewotCQkvKiBPbmx5IHRoZSBkcml2ZXIga25vd3MgKi8KLQkJcmV0dXJuIHRy dWU7CisJCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjsKKworCQlpZiAodmFsdWUgPT0g MCkKKwkJCXJldHVybiB0cnVlOworCisJCWJsb2IgPSBkcm1fcHJvcGVydHlfbG9va3VwX2Jsb2Io cHJvcGVydHktPmRldiwgdmFsdWUpOworCQlpZiAoYmxvYikgeworCQkJKnJlZiA9ICZibG9iLT5i YXNlOworCQkJcmV0dXJuIHRydWU7CisJCX0gZWxzZSB7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0K IAl9IGVsc2UgaWYgKGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3BlcnR5LCBEUk1fTU9ERV9QUk9Q X09CSkVDVCkpIHsKIAkJLyogYSB6ZXJvIHZhbHVlIGZvciBhbiBvYmplY3QgcHJvcGVydHkgdHJh bnNsYXRlcyB0byBudWxsOiAqLwogCQlpZiAodmFsdWUgPT0gMCkKQEAgLTU1NjQsNyArNTcwMCw3 IEBAIHZvaWQgZHJtX21vZGVfY29uZmlnX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibG9iLCBidCwgJmRldi0+bW9kZV9jb25maWcu cHJvcGVydHlfYmxvYl9saXN0LAogCQkJCSBoZWFkKSB7Ci0JCWRybV9wcm9wZXJ0eV9kZXN0cm95 X2Jsb2IoZGV2LCBibG9iKTsKKwkJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7 CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmggYi9pbmNsdWRl L2RybS9kcm1fY3J0Yy5oCmluZGV4IDQzYTM3NTguLjA3Yzk5ZjYgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZHJtL2RybV9jcnRjLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtMjE3LDYg KzIxNyw4IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgewogCiBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgewogCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgYmFzZTsKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2OworCXN0cnVjdCBrcmVmIHJlZmNvdW50OwogCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsK IAlzaXplX3QgbGVuZ3RoOwogCXVuc2lnbmVkIGNoYXIgZGF0YVtdOwpAQCAtMTM2Niw2ICsxMzY4 LDEzIEBAIHN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9wcm9wZXJ0eV9jcmVhdGVfb2JqZWN0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUs IHVpbnQzMl90IHR5cGUpOwogc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0 ZV9ib29sKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBmbGFncywKIAkJCQkJIGNvbnN0IGNo YXIgKm5hbWUpOworc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkcm1fcHJvcGVydHlfY3JlYXRl X2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpkYXRhKTsKK3N0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZHJtX3Byb3BlcnR5X2xvb2t1cF9ibG9iKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBpZCk7CitzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRybV9w cm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpOwor dm9pZCBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmJsb2IpOwogZXh0ZXJuIHZvaWQgZHJtX3Byb3BlcnR5X2Rlc3Ryb3koc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHkpOwogZXh0ZXJuIGludCBk cm1fcHJvcGVydHlfYWRkX2VudW0oc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksIGludCBp bmRleCwKIAkJCQkgdWludDY0X3QgdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUpOwpAQCAtMTUyOSwx NCArMTUzOCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3Bl cnR5X2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gbW8gPyBvYmpfdG9fcHJv cGVydHkobW8pIDogTlVMTDsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKgotZHJtX3Byb3BlcnR5X2Jsb2JfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 aW50MzJfdCBpZCkKLXsKLQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICptbzsKLQltbyA9IGRybV9t b2RlX29iamVjdF9maW5kKGRldiwgaWQsIERSTV9NT0RFX09CSkVDVF9CTE9CKTsKLQlyZXR1cm4g bW8gPyBvYmpfdG9fYmxvYihtbykgOiBOVUxMOwotfQotCiAvKiBQbGFuZSBsaXN0IGl0ZXJhdG9y IGZvciBsZWdhY3kgKG92ZXJsYXkgb25seSkgcGxhbmVzLiAqLwogI2RlZmluZSBkcm1fZm9yX2Vh Y2hfbGVnYWN5X3BsYW5lKHBsYW5lLCBwbGFuZWxpc3QpIFwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5 KHBsYW5lLCBwbGFuZWxpc3QsIGhlYWQpIFwKLS0gCjIuMy41CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=