From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stone Subject: [PATCH 7/7] drm/mode: Add user blob-creation ioctl Date: Mon, 20 Apr 2015 19:22:56 +0100 Message-ID: <1429554176-9865-8-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 34A9A7208F for ; Mon, 20 Apr 2015 11:23:51 -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 QWRkIGFuIGlvY3RsIHdoaWNoIGFsbG93cyB1c2VycyB0byBjcmVhdGUgYmxvYiBwcm9wZXJ0aWVz IGZyb20gc3VwcGxpZWQKZGF0YS4gQ3VycmVudGx5IHRoaXMgb25seSBzdXBwb3J0cyBtb2Rlcywg Y3JlYXRpbmcgYSBkcm1fZGlzcGxheV9tb2RlIGZyb20KdGhlIHVzZXJzcGFjZSBkcm1fbW9kZV9t b2RlaW5mby4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBTdG9uZSA8ZGFuaWVsc0Bjb2xsYWJvcmEu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICB8IDE2MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2RybV9mb3Bz LmMgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgfCAgIDIgKwogaW5jbHVk ZS9kcm0vZHJtUC5oICAgICAgICAgIHwgICA0ICsrCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAg ICAgfCAgIDkgKystCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAgfCAgIDIgKwogaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oIHwgIDIyICsrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAxOTkg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmluZGV4IDAzMjQ1ZmIu LjQ3Mzc3OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC00MjE2LDYgKzQyMTYsOSBAQCBkcm1fcHJvcGVy dHlfY3JlYXRlX2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IGxlbmd0aCwKIAlp ZiAoIWJsb2IpCiAJCXJldHVybiBOVUxMOwogCisJLyogVGhpcyBtdXN0IGJlIGV4cGxpY2l0bHkg aW5pdGlhbGlzZWQsIHNvIHdlIGNhbiBzYWZlbHkgY2FsbCBsaXN0X2RlbAorCSAqIG9uIGl0IGlu IHRoZSByZW1vdmFsIGhhbmRsZXIsIGV2ZW4gaWYgaXQgaXNuJ3QgaW4gYSBmaWxlIGxpc3QuICov CisJSU5JVF9MSVNUX0hFQUQoJmJsb2ItPmhlYWRfZmlsZSk7CiAJYmxvYi0+bGVuZ3RoID0gbGVu Z3RoOwogCWJsb2ItPmRldiA9IGRldjsKIApAQCAtNDIzMiw3ICs0MjM1LDggQEAgZHJtX3Byb3Bl cnR5X2NyZWF0ZV9ibG9iKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBsZW5ndGgsCiAK IAlrcmVmX2luaXQoJmJsb2ItPnJlZmNvdW50KTsKIAotCWxpc3RfYWRkX3RhaWwoJmJsb2ItPmhl YWQsICZkZXYtPm1vZGVfY29uZmlnLnByb3BlcnR5X2Jsb2JfbGlzdCk7CisJbGlzdF9hZGRfdGFp bCgmYmxvYi0+aGVhZF9nbG9iYWwsCisJICAgICAgICAgICAgICAmZGV2LT5tb2RlX2NvbmZpZy5w cm9wZXJ0eV9ibG9iX2xpc3QpOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmJs b2JfbG9jayk7CiAKQEAgLTQyNTQsNyArNDI1OCw4IEBAIHN0YXRpYyB2b2lkIGRybV9wcm9wZXJ0 eV9mcmVlX2Jsb2Ioc3RydWN0IGtyZWYgKmtyZWYpCiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2Nr ZWQoJmJsb2ItPmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKSk7CiAKLQlsaXN0X2RlbCgmYmxv Yi0+aGVhZCk7CisJbGlzdF9kZWwoJmJsb2ItPmhlYWRfZ2xvYmFsKTsKKwlsaXN0X2RlbCgmYmxv Yi0+aGVhZF9maWxlKTsKIAlkcm1fbW9kZV9vYmplY3RfcHV0KGJsb2ItPmRldiwgJmJsb2ItPmJh c2UpOwogCiAJa2ZyZWUoYmxvYik7CkBAIC00MzA4LDYgKzQzMTMsMjYgQEAgc3RhdGljIHZvaWQg ZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2JfbG9ja2VkKHN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqYmxvYikKIH0KIAogLyoqCisgKiBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2Jz IC0gZGVzdHJveSBhbGwgYmxvYnMgY3JlYXRlZCBieSB0aGlzIGNsaWVudAorICogQGRldjogICAg ICAgRFJNIGRldmljZQorICogQGZpbGVfcHJpdjogZGVzdHJveSBhbGwgYmxvYnMgb3duZWQgYnkg dGhpcyBmaWxlIGhhbmRsZQorICovCit2b2lkIGRybV9wcm9wZXJ0eV9kZXN0cm95X3VzZXJfYmxv YnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KQoreworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiwgKmJ0OworCisJbXV0 ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5ibG9iX2xvY2spOworCisJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKGJsb2IsIGJ0LCAmZmlsZV9wcml2LT5ibG9icywgaGVhZF9maWxlKSB7CisJCWxp c3RfZGVsX2luaXQoJmJsb2ItPmhlYWRfZmlsZSk7CisJCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5j ZV9ibG9iX2xvY2tlZChibG9iKTsKKwl9CisKKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25m aWcuYmxvYl9sb2NrKTsKK30KKworLyoqCiAgKiBkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2Ig LSBUYWtlIGEgcmVmZXJlbmNlIG9uIGFuIGV4aXN0aW5nIHByb3BlcnR5CiAgKgogICogVGFrZSBh IG5ldyByZWZlcmVuY2Ugb24gYW4gZXhpc3RpbmcgYmxvYiBwcm9wZXJ0eS4KQEAgLTQ0OTcsNiAr NDUyMiwxMzUgQEAgZG9uZToKIH0KIAogLyoqCisgKiBkcm1fbW9kZV9jcmVhdGVibG9iX2lvY3Rs IC0gY3JlYXRlIGEgbmV3IGJsb2IgcHJvcGVydHkKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqIEBk YXRhOiBpb2N0bCBkYXRhCisgKiBAZmlsZV9wcml2OiBEUk0gZmlsZSBpbmZvCisgKgorICogVGhp cyBmdW5jdGlvbiBjcmVhdGVzIGEgbmV3IGJsb2IgcHJvcGVydHkgd2l0aCB1c2VyLWRlZmluZWQg dmFsdWVzLiBJbiBvcmRlcgorICogdG8gZ2l2ZSB1cyBzZW5zaWJsZSB2YWxpZGF0aW9uIGFuZCBj aGVja2luZyB3aGVuIGNyZWF0aW5nLCByYXRoZXIgdGhhbiBhdAorICogZXZlcnkgcG90ZW50aWFs IHVzZSwgd2UgYWxzbyByZXF1aXJlIGEgdHlwZSB0byBiZSBwcm92aWRlZCB1cGZyb250LgorICoK KyAqIENhbGxlZCBieSB0aGUgdXNlciB2aWEgaW9jdGwuCisgKgorICogUmV0dXJuczoKKyAqIFpl cm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9t b2RlX2NyZWF0ZWJsb2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgIHZv aWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1fbW9k ZV9jcmVhdGVfYmxvYiAqb3V0X3Jlc3AgPSBkYXRhOworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqYmxvYjsKKwl2b2lkICpibG9iX2RhdGE7CisJaW50IHJldCA9IDA7CisJdm9pZCBfX3VzZXIg KmJsb2JfcHRyOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01P REVTRVQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXN3aXRjaCAob3V0X3Jlc3AtPnR5cGUpIHsK KwljYXNlIERSTV9NT0RFX0JMT0JfVFlQRV9NT0RFOiB7CisJCWlmIChvdXRfcmVzcC0+bGVuZ3Ro ICE9IHNpemVvZihzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8pKSB7CisJCQlyZXQgPSAtRTJCSUc7 CisJCQlnb3RvIG91dF91bmxvY2tlZDsKKwkJfQorCQlicmVhazsKKwl9CisJZGVmYXVsdDoKKwkJ cmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CisJfQorCisJYmxvYl9kYXRhID0g a3phbGxvYyhvdXRfcmVzcC0+bGVuZ3RoLCBHRlBfVVNFUik7CisJaWYgKCFibG9iX2RhdGEpIHsK KwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CisJfQorCisJYmxvYl9wdHIg PSAodm9pZCBfX3VzZXIgKikodW5zaWduZWQgbG9uZylvdXRfcmVzcC0+ZGF0YTsKKwlpZiAoY29w eV9mcm9tX3VzZXIoYmxvYl9kYXRhLCBibG9iX3B0ciwgb3V0X3Jlc3AtPmxlbmd0aCkpIHsKKwkJ cmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZGF0YTsKKwl9CisKKwlibG9iID0gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9ibG9iKGRldiwgb3V0X3Jlc3AtPmxlbmd0aCwgYmxvYl9kYXRhKTsKKwlpZiAo IWJsb2IpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfZGF0YTsKKwl9CisKKwkvKiBE cm9wcGluZyB0aGUgbG9jayBiZXR3ZWVuIGNyZWF0ZV9ibG9iIGFuZCBvdXIgYWNjZXNzIGhlcmUg aXMgc2FmZQorCSAqIGFzIG9ubHkgdGhlIHNhbWUgZmlsZV9wcml2IGNhbiByZW1vdmUgdGhlIGJs b2I7IGF0IHRoaXMgcG9pbnQsIGl0IGlzCisJICogbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgZmls ZV9wcml2LiAqLworCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKTsKKwlv dXRfcmVzcC0+YmxvYl9pZCA9IGJsb2ItPmJhc2UuaWQ7CisJbGlzdF9hZGRfdGFpbCgmZmlsZV9w cml2LT5ibG9icywgJmJsb2ItPmhlYWRfZmlsZSk7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVf Y29uZmlnLmJsb2JfbG9jayk7CisKK291dF9kYXRhOgorCWtmcmVlKGJsb2JfZGF0YSk7CitvdXRf dW5sb2NrZWQ6CisJcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBkcm1fbW9kZV9kZXN0cm95Ymxv Yl9pb2N0bCAtIGRlc3Ryb3kgYSB1c2VyIGJsb2IgcHJvcGVydHkKKyAqIEBkZXY6IERSTSBkZXZp Y2UKKyAqIEBkYXRhOiBpb2N0bCBkYXRhCisgKiBAZmlsZV9wcml2OiBEUk0gZmlsZSBpbmZvCisg KgorICogRGVzdHJveSBhbiBleGlzdGluZyB1c2VyLWRlZmluZWQgYmxvYiBwcm9wZXJ0eS4KKyAq CisgKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLgorICoKKyAqIFJldHVybnM6CisgKiBa ZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1f bW9kZV9kZXN0cm95YmxvYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAg IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1f bW9kZV9kZXN0cm95X2Jsb2IgKm91dF9yZXNwID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmJsb2IgPSBOVUxMLCAqYnQ7CisJYm9vbCBmb3VuZCA9IGZhbHNlOworCWludCByZXQg PSAwOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQp KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcuYmxv Yl9sb2NrKTsKKwlibG9iID0gX19kcm1fcHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2LCBvdXRfcmVz cC0+YmxvYl9pZCk7CisJaWYgKCFibG9iKSB7CisJCXJldCA9IC1FTk9FTlQ7CisJCWdvdG8gZXJy OworCX0KKworCS8qIEVuc3VyZSB0aGUgcHJvcGVydHkgd2FzIGFjdHVhbGx5IGNyZWF0ZWQgYnkg dGhpcyB1c2VyLiAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoYnQsICZmaWxlX3ByaXYtPmJsb2Jz LCBoZWFkX2ZpbGUpIHsKKwkJaWYgKGJ0ID09IGJsb2IpIHsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJ CWJyZWFrOworCQl9CisJfQorCisJaWYgKCFmb3VuZCkgeworCQlyZXQgPSAtRVBFUk07CisJCWdv dG8gZXJyOworCX0KKworCS8qIFdlIG11c3QgZHJvcCBoZWFkX2ZpbGUgaGVyZSwgYmVjYXVzZSB3 ZSBtYXkgbm90IGJlIHRoZSBsYXN0CisJICogcmVmZXJlbmNlIG9uIHRoZSBibG9iLiAqLworCWxp c3RfZGVsX2luaXQoJmJsb2ItPmhlYWRfZmlsZSk7CisJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNl X2Jsb2JfbG9ja2VkKGJsb2IpOworCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5ibG9i X2xvY2spOworCisJcmV0dXJuIDA7CisKK2VycjoKKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9j b25maWcuYmxvYl9sb2NrKTsKKwlyZXR1cm4gcmV0OworfQorCisvKioKICAqIGRybV9tb2RlX2Nv bm5lY3Rvcl9zZXRfcGF0aF9wcm9wZXJ0eSAtIHNldCB0aWxlIHByb3BlcnR5IG9uIGNvbm5lY3Rv cgogICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIHNldCBwcm9wZXJ0eSBvbi4KICAqIEBwYXRo OiBwYXRoIHRvIHVzZSBmb3IgcHJvcGVydHk7IG11c3Qgbm90IGJlIE5VTEwuCkBAIC01Njk5LDcg KzU4NTMsNyBAQCB2b2lkIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJfQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJsb2IsIGJ0LCAmZGV2LT5t b2RlX2NvbmZpZy5wcm9wZXJ0eV9ibG9iX2xpc3QsCi0JCQkJIGhlYWQpIHsKKwkJCQkgaGVhZF9n bG9iYWwpIHsKIAkJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7CiAJfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZm9wcy5jCmluZGV4IDA3NmRkNjAuLjA5ODQ2ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZm9wcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCkBAIC0xNjcs NiArMTY3LDcgQEAgc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGZpbGUgKmZpbHAs IHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogCUlOSVRfTElTVF9IRUFEKCZwcml2LT5saGVhZCk7 CiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmZicyk7CiAJbXV0ZXhfaW5pdCgmcHJpdi0+ZmJzX2xv Y2spOworCUlOSVRfTElTVF9IRUFEKCZwcml2LT5ibG9icyk7CiAJSU5JVF9MSVNUX0hFQUQoJnBy aXYtPmV2ZW50X2xpc3QpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByaXYtPmV2ZW50X3dhaXQp OwogCXByaXYtPmV2ZW50X3NwYWNlID0gNDA5NjsgLyogc2V0IGFzaWRlIDRrIGZvciBldmVudCBi dWZmZXIgKi8KQEAgLTQwOCw4ICs0MDksMTAgQEAgaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCiAJZHJtX2V2ZW50c19yZWxlYXNlKGZpbGVf cHJpdik7CiAKLQlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VU KSkKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkgewog CQlkcm1fZmJfcmVsZWFzZShmaWxlX3ByaXYpOworCQlkcm1fcHJvcGVydHlfZGVzdHJveV91c2Vy X2Jsb2JzKGRldiwgZmlsZV9wcml2KTsKKwl9CiAKIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVy ZShkZXYsIERSSVZFUl9HRU0pKQogCQlkcm1fZ2VtX3JlbGVhc2UoZGV2LCBmaWxlX3ByaXYpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9pb2N0bC5jCmluZGV4IDI2NmRjZDYuLjliYWMxYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1faW9jdGwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKQEAg LTY0MSw2ICs2NDEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9p b2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX09CSl9TRVRQUk9QRVJU WSwgZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0eV9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJP TF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1VS U09SMiwgZHJtX21vZGVfY3Vyc29yMl9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExP V3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQVRPTUlDLCBk cm1fbW9kZV9hdG9taWNfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VO TE9DS0VEKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NSRUFURVBST1BCTE9CLCBk cm1fbW9kZV9jcmVhdGVibG9iX2lvY3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQp LAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfREVTVFJPWVBST1BCTE9CLCBkcm1fbW9k ZV9kZXN0cm95YmxvYl9pb2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKIH07 CiAKICNkZWZpbmUgRFJNX0NPUkVfSU9DVExfQ09VTlQJQVJSQVlfU0laRSggZHJtX2lvY3RscyAp CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKaW5k ZXggNjJjNDA3NzcuLmM1YzcxN2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAorKysg Yi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTMyNiw2ICszMjYsMTAgQEAgc3RydWN0IGRybV9maWxl IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGZiczsKIAlzdHJ1Y3QgbXV0ZXggZmJzX2xvY2s7CiAKKwkv KiogVXNlci1jcmVhdGVkIGJsb2IgcHJvcGVydGllczsgdGhpcyByZXRhaW5zIGEgcmVmZXJlbmNl IG9uIHRoZQorCSAqICBwcm9wZXJ0eS4gKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGJsb2JzOworCiAJ d2FpdF9xdWV1ZV9oZWFkX3QgZXZlbnRfd2FpdDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2xp c3Q7CiAJaW50IGV2ZW50X3NwYWNlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMu aCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggMDdjOTlmNi4uYTIyODYxNCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o CkBAIC0yMTksNyArMjE5LDggQEAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iIHsKIAlzdHJ1Y3Qg ZHJtX21vZGVfb2JqZWN0IGJhc2U7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKIAlzdHJ1Y3Qg a3JlZiByZWZjb3VudDsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CisJc3RydWN0IGxpc3RfaGVh ZCBoZWFkX2dsb2JhbDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWRfZmlsZTsKIAlzaXplX3QgbGVu Z3RoOwogCXVuc2lnbmVkIGNoYXIgZGF0YVtdOwogfTsKQEAgLTEyODksNiArMTI5MCw4IEBAIGV4 dGVybiBjb25zdCBjaGFyICpkcm1fZ2V0X2R2aV9pX3NlbGVjdF9uYW1lKGludCB2YWwpOwogZXh0 ZXJuIGNvbnN0IGNoYXIgKmRybV9nZXRfdHZfc3ViY29ubmVjdG9yX25hbWUoaW50IHZhbCk7CiBl eHRlcm4gY29uc3QgY2hhciAqZHJtX2dldF90dl9zZWxlY3RfbmFtZShpbnQgdmFsKTsKIGV4dGVy biB2b2lkIGRybV9mYl9yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVy biB2b2lkIGRybV9wcm9wZXJ0eV9kZXN0cm95X3VzZXJfYmxvYnMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYpOwogZXh0ZXJuIGludCBkcm1fbW9kZV9ncm91cF9pbml0X2xl Z2FjeV9ncm91cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX21vZGVfZ3JvdXAg Kmdyb3VwKTsKIGV4dGVybiB2b2lkIGRybV9tb2RlX2dyb3VwX2Rlc3Ryb3koc3RydWN0IGRybV9t b2RlX2dyb3VwICpncm91cCk7CiBleHRlcm4gdm9pZCBkcm1fcmVpbml0X3ByaW1hcnlfbW9kZV9n cm91cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTE0MzQsNiArMTQzNywxMCBAQCBleHRl cm4gaW50IGRybV9tb2RlX2dldHByb3BlcnR5X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJCQkJICAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogZXh0 ZXJuIGludCBkcm1fbW9kZV9nZXRibG9iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50 IGRybV9tb2RlX2NyZWF0ZWJsb2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkg ICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQg ZHJtX21vZGVfZGVzdHJveWJsb2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkg ICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBleHRlcm4gaW50 IGRybV9tb2RlX2Nvbm5lY3Rvcl9wcm9wZXJ0eV9zZXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCQkJICAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYp OwogZXh0ZXJuIGludCBkcm1fbW9kZV9nZXRlbmNvZGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9k cm0uaAppbmRleCBmZjZlZjYyLi4zODAxNTg0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTc4Niw2ICs3ODYsOCBAQCBz dHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSB7CiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX09CSl9TRVRQ Uk9QRVJUWQlEUk1fSU9XUigweEJBLCBzdHJ1Y3QgZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0eSkK ICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQ1VSU09SMgkJRFJNX0lPV1IoMHhCQiwgc3RydWN0IGRy bV9tb2RlX2N1cnNvcjIpCiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0FUT01JQwkJRFJNX0lPV1Io MHhCQywgc3RydWN0IGRybV9tb2RlX2F0b21pYykKKyNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQ1JF QVRFUFJPUEJMT0IJRFJNX0lPV1IoMHhCRCwgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9ibG9iKQor I2RlZmluZSBEUk1fSU9DVExfTU9ERV9ERVNUUk9ZUFJPUEJMT0IJRFJNX0lPV1IoMHhCRSwgc3Ry dWN0IGRybV9tb2RlX2Rlc3Ryb3lfYmxvYikKIAogLyoqCiAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9j dGxzIHNob3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9k ZS5oCmluZGV4IGRiZWJhOTQuLjczYWM5MjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0v ZHJtX21vZGUuaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKQEAgLTU1OCw0ICs1 NTgsMjYgQEAgc3RydWN0IGRybV9tb2RlX2F0b21pYyB7CiAJX191NjQgdXNlcl9kYXRhOwogfTsK IAorI2RlZmluZSBEUk1fTU9ERV9CTE9CX1RZUEVfTU9ERQkJMSAvKio8IGRybV9tb2RlX21vZGVp bmZvICovCisKKy8qKgorICogQ3JlYXRlIGEgbmV3ICdibG9iJyBkYXRhIHByb3BlcnR5LCBjb3B5 aW5nIGxlbmd0aCBieXRlcyBmcm9tIGRhdGEgcG9pbnRlciwKKyAqIGFuZCByZXR1cm5pbmcgbmV3 IGJsb2IgSUQuCisgKi8KK3N0cnVjdCBkcm1fbW9kZV9jcmVhdGVfYmxvYiB7CisJX191MzIgdHlw ZTsKKwlfX3UzMiBsZW5ndGg7CisJLyoqIFBvaW50ZXIgdG8gZGF0YSB0byBjcmVhdGUgYmxvYi4g Ki8KKwlfX3U2NCBkYXRhOworCS8qKiBSZXR1cm46IG5ldyBwcm9wZXJ0eSBJRC4gKi8KKwlfX3Uz MiBibG9iX2lkOworfTsKKworLyoqCisgKiBEZXN0cm95IGEgdXNlci1jcmVhdGVkIGJsb2IgcHJv cGVydHkuCisgKi8KK3N0cnVjdCBkcm1fbW9kZV9kZXN0cm95X2Jsb2IgeworCV9fdTMyIGJsb2Jf aWQ7Cit9OworCiAjZW5kaWYKLS0gCjIuMy41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=