From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Engestrom Subject: [PATCH] drm: move allocation out of drm_get_format_name() Date: Sat, 5 Nov 2016 01:33:13 +0000 Message-ID: <20161105013325.3889-1-eric@engestrom.ch> References: <20161105012344.GA28349@engestrom.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161105012344.GA28349@engestrom.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: linux-kernel@vger.kernel.org Cc: David Airlie , dri-devel@lists.freedesktop.org, Wei Yongjun , Daniel Vetter , Flora Cui , Gustavo Padovan , Tom St Denis , Chunming Zhou , Thomas Hellstrom , Laurent Pinchart , Sinclair Yeh , Xinliang Liu , Xinwei Kong , VMware Graphics , Vitaly Prosyak , Alexandre Demers , intel-gfx@lists.freedesktop.org, Eric Engestrom , Emily Deng , Junwei Zhang , =?UTF-8?q?Michel=20D=C3=A4nzer?= Alex List-Id: dri-devel@lists.freedesktop.org Rml4ZXM6IDkwODQ0ZjAwMDQ5ZTlmNDI1NzNmZDMxZDdjMzJlOGZkMzFkM2ZkMDcKCiAgICBkcm06 IG1ha2UgZHJtX2dldF9mb3JtYXRfbmFtZSB0aHJlYWQtc2FmZQoKICAgIFNpZ25lZC1vZmYtYnk6 IEVyaWMgRW5nZXN0cm9tIDxlcmljQGVuZ2VzdHJvbS5jaD4KICAgIFtkYW52ZXQ6IENsYXJpZnkg dGhhdCB0aGUgcmV0dXJuZWQgcG9pbnRlciBtdXN0IGJlIGZyZWVkIHdpdGgKICAgIGtmcmVlKCku XQogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4KClN1Z2dlc3RlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBFbmdlc3Ryb20gPGVyaWNAZW5nZXN0cm9tLmNo PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jICAgICAgICAgIHwg IDcgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jICAgICAgICAg IHwgIDcgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMgICAgICAg ICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgICAgICAg ICAgIHwgIDcgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgICAgICAg ICAgICAgIHwgIDcgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgICAgICAgICAg ICAgICAgICAgIHwgIDcgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgICAgICAg ICAgICAgICAgICAgIHwgMTIgKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZm ZXIuYyAgICAgICAgICAgICAgIHwgIDcgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNl dF9oZWxwZXIuYyAgICAgICAgICAgIHwgIDcgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxh bmUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jIHwgIDcgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICAgIHwgIDggKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jICAgICAgIHwgIDggKystLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICAgIHwgNDEgKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgICAgICAg ICAgfCAxNCArKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jICAg ICAgICAgICAgIHwgIDMgKy0KIGluY2x1ZGUvZHJtL2RybV9mb3VyY2MuaCAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDMgKy0KIDE3IGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDg0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaCBiL2lu Y2x1ZGUvZHJtL2RybV9mb3VyY2MuaAppbmRleCBkYzBhYWZhLi41YThjYjRiIDEwMDY0NAotLS0g YS9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5o CkBAIC01NCw2ICs1NCw3IEBAIGludCBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5n KHVpbnQzMl90IGZvcm1hdCk7CiBpbnQgZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9zdWJzYW1wbGlu Zyh1aW50MzJfdCBmb3JtYXQpOwogaW50IGRybV9mb3JtYXRfcGxhbmVfd2lkdGgoaW50IHdpZHRo LCB1aW50MzJfdCBmb3JtYXQsIGludCBwbGFuZSk7CiBpbnQgZHJtX2Zvcm1hdF9wbGFuZV9oZWln aHQoaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCBpbnQgcGxhbmUpOwotY2hhciAqZHJtX2dl dF9mb3JtYXRfbmFtZSh1aW50MzJfdCBmb3JtYXQpIF9fbWFsbG9jOwordHlwZWRlZiBjaGFyIGRy bV9mb3JtYXRfbmFtZV9idWZbMzJdOworY2hhciAqZHJtX2dldF9mb3JtYXRfbmFtZSh1aW50MzJf dCBmb3JtYXQsIGRybV9mb3JtYXRfbmFtZV9idWYgYnVmKTsKIAogI2VuZGlmIC8qIF9fRFJNX0ZP VVJDQ19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCmluZGV4IGNiYjhiNzcuLjM0ZWQ1MjAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9mb3VyY2MuYwpAQCAtNzksMTcgKzc5LDEzIEBAIHVpbnQzMl90IGRybV9tb2RlX2xlZ2Fj eV9mYl9mb3JtYXQodWludDMyX3QgYnBwLCB1aW50MzJfdCBkZXB0aCkKIEVYUE9SVF9TWU1CT0wo ZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdCk7CiAKIC8qKgotICogZHJtX2dldF9mb3JtYXRfbmFt ZSAtIHJldHVybiBhIHN0cmluZyBmb3IgZHJtIGZvdXJjYyBmb3JtYXQKKyAqIGRybV9nZXRfZm9y bWF0X25hbWUgLSBmaWxsIGEgc3RyaW5nIHdpdGggYSBkcm0gZm91cmNjIGZvcm1hdCdzIG5hbWUK ICAqIEBmb3JtYXQ6IGZvcm1hdCB0byBjb21wdXRlIG5hbWUgb2YKKyAqIEBidWY6IGNhbGxlci1z dXBwbGllZCBidWZmZXIKLSAqCi0gKiBOb3RlIHRoYXQgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSB0 aGlzIGZ1bmN0aW9uIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIKLSAqIGFuZCB3aWxsIG5lZWQgdG8g YmUgZnJlZWQgdXNpbmcga2ZyZWUoKS4KICAqLwotY2hhciAqZHJtX2dldF9mb3JtYXRfbmFtZSh1 aW50MzJfdCBmb3JtYXQpCitjaGFyICpkcm1fZ2V0X2Zvcm1hdF9uYW1lKHVpbnQzMl90IGZvcm1h dCwgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBidWYpCiB7Ci0JY2hhciAqYnVmID0ga21hbGxvYygzMiwg R0ZQX0tFUk5FTCk7Ci0KLQlzbnByaW50ZihidWYsIDMyLAorCXNucHJpbnRmKGJ1Ziwgc2l6ZW9m KGRybV9mb3JtYXRfbmFtZV9idWYpLAogCQkgIiVjJWMlYyVjICVzLWVuZGlhbiAoMHglMDh4KSIs CiAJCSBwcmludGFibGVfY2hhcihmb3JtYXQgJiAweGZmKSwKIAkJIHByaW50YWJsZV9jaGFyKChm b3JtYXQgPj4gOCkgJiAweGZmKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2RjZV92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMK aW5kZXggMTk5ZDNmNy4uY2VmYTNkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3YxMF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Yx MF8wLmMKQEAgLTIwMzIsNyArMjAzMiw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMF8wX2NydGNfZG9f c2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXUzMiB0bXAsIHZpZXdwb3J0X3csIHZp ZXdwb3J0X2g7CiAJaW50IHI7CiAJYm9vbCBieXBhc3NfbHV0ID0gZmFsc2U7Ci0JY2hhciAqZm9y bWF0X25hbWU7CisJZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKIAogCS8qIG5vIGZi IGJvdW5kICovCiAJaWYgKCFhdG9taWMgJiYgIWNydGMtPnByaW1hcnktPmZiKSB7CkBAIC0yMTQ0 LDkgKzIxNDQsOCBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAkJYnlwYXNzX2x1dCA9IHRydWU7CiAJCWJyZWFrOwogCWRlZmF1 bHQ6Ci0JCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVs X2Zvcm1hdCk7Ci0JCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwg Zm9ybWF0X25hbWUpOwotCQlrZnJlZShmb3JtYXRfbmFtZSk7CisJCURSTV9FUlJPUigiVW5zdXBw b3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25h bWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsIGZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiAtRUlO VkFMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Yx MV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwppbmRleCBlY2Qw MDBlLi40NjJhYmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djExXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwpAQCAt MjAxMyw3ICsyMDEzLDcgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3J0Y19kb19zZXRfYmFzZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIHRtcCwgdmlld3BvcnRfdywgdmlld3BvcnRfaDsK IAlpbnQgcjsKIAlib29sIGJ5cGFzc19sdXQgPSBmYWxzZTsKLQljaGFyICpmb3JtYXRfbmFtZTsK Kwlkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwogCiAJLyogbm8gZmIgYm91bmQgKi8K IAlpZiAoIWF0b21pYyAmJiAhY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKQEAgLTIxMjUsOSArMjEyNSw4 IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCQlieXBhc3NfbHV0ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJZm9y bWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KTsK LQkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFt ZSk7Ci0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKKwkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBzY3Jl ZW4gZm9ybWF0ICVzXG4iLAorCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRf ZmItPnBpeGVsX2Zvcm1hdCwgZm9ybWF0X25hbWUpKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYwppbmRleCA0NDU0N2Y5Li4zYjhjZWEz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMKQEAgLTE0NTYsNiArMTQ1Niw3 IEBAIHN0YXRpYyBpbnQgZGNlX3Y2XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJdTMyIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7CiAJaW50IHI7CiAJYm9vbCBieXBh c3NfbHV0ID0gZmFsc2U7CisJZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKIAogCS8q IG5vIGZiIGJvdW5kICovCiAJaWYgKCFhdG9taWMgJiYgIWNydGMtPnByaW1hcnktPmZiKSB7CkBA IC0xNTU5LDcgKzE1NjAsNyBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNfZG9fc2V0X2Jhc2Uo c3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fRVJST1Io IlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCi0JCQkgIGRybV9nZXRfZm9ybWF0X25h bWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpKTsKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0 X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsIGZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiAt RUlOVkFMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKaW5kZXggOTc5 YWVkZi4uOGM2MjRiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCkBAIC0x OTEwLDcgKzE5MTAsNyBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2NydGNfZG9fc2V0X2Jhc2Uoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCXUzMiB2aWV3cG9ydF93LCB2aWV3cG9ydF9oOwogCWludCBy OwogCWJvb2wgYnlwYXNzX2x1dCA9IGZhbHNlOwotCWNoYXIgKmZvcm1hdF9uYW1lOworCWRybV9m b3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CiAKIAkvKiBubyBmYiBib3VuZCAqLwogCWlmICgh YXRvbWljICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewpAQCAtMjAxNSw5ICsyMDE1LDggQEAgc3Rh dGljIGludCBkY2VfdjhfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAkJYnlwYXNzX2x1dCA9IHRydWU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCWZvcm1hdF9uYW1l ID0gZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7Ci0JCURSTV9F UlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOwotCQlr ZnJlZShmb3JtYXRfbmFtZSk7CisJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1h dCAlc1xuIiwKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhl bF9mb3JtYXQsIGZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMKaW5kZXggYzMyZmIzYy4uOGQyZTZhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC04 MzUsOSArODM1LDEwIEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9jaGVjayhzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAkvKiBDaGVjayB3aGV0aGVyIHRoaXMgcGxhbmUgc3VwcG9ydHMg dGhlIGZiIHBpeGVsIGZvcm1hdC4gKi8KIAlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9y bWF0KHBsYW5lLCBzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CiAJaWYgKHJldCkgewotCQljaGFy ICpmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3Jt YXQpOwotCQlEUk1fREVCVUdfQVRPTUlDKCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAlc1xuIiwgZm9y bWF0X25hbWUpOwotCQlrZnJlZShmb3JtYXRfbmFtZSk7CisJCWRybV9mb3JtYXRfbmFtZV9idWYg Zm9ybWF0X25hbWU7CisJCURSTV9ERUJVR19BVE9NSUMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVz XG4iLAorCQkgICAgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5w aXhlbF9mb3JtYXQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Jt YXRfbmFtZSkpOwogCQlyZXR1cm4gcmV0OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwppbmRleCAxMzQ0MWUy Li43ZjViYmUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwpAQCAtODI3LDkgKzgyNywxMCBAQCBpbnQgZHJtX21v ZGVfc2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJcmV0ID0g ZHJtX3BsYW5lX2NoZWNrX3BpeGVsX2Zvcm1hdChjcnRjLT5wcmltYXJ5LAogCQkJCQkJCSAgIGZi LT5waXhlbF9mb3JtYXQpOwogCQkJaWYgKHJldCkgewotCQkJCWNoYXIgKmZvcm1hdF9uYW1lID0g ZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0KTsKLQkJCQlEUk1fREVCVUdfS01T KCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOwotCQkJCWtmcmVlKGZv cm1hdF9uYW1lKTsKKwkJCQlkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOworCQkJCURS TV9ERUJVR19LTVMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLAorCQkJCSAgICAgICAgICAg ICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0LAorCQkJCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfbmFtZSkpOwogCQkJCWdvdG8gb3V0OwogCQkJ fQogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKaW5kZXggNDlmZDdkYi4uMTJhZDE4OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwpAQCAtMTMzLDkgKzEzMywxMCBAQCBzdGF0aWMg aW50IGZyYW1lYnVmZmVyX2NoZWNrKGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpyKQog CiAJaW5mbyA9IF9fZHJtX2Zvcm1hdF9pbmZvKHItPnBpeGVsX2Zvcm1hdCAmIH5EUk1fRk9STUFU X0JJR19FTkRJQU4pOwogCWlmICghaW5mbykgewotCQljaGFyICpmb3JtYXRfbmFtZSA9IGRybV9n ZXRfZm9ybWF0X25hbWUoci0+cGl4ZWxfZm9ybWF0KTsKLQkJRFJNX0RFQlVHX0tNUygiYmFkIGZy YW1lYnVmZmVyIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOwotCQlrZnJlZShmb3JtYXRfbmFt ZSk7CisJCWRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CisJCURSTV9ERUJVR19LTVMo ImJhZCBmcmFtZWJ1ZmZlciBmb3JtYXQgJXNcbiIsCisJCSAgICAgICAgICAgICAgZHJtX2dldF9m b3JtYXRfbmFtZShyLT5waXhlbF9mb3JtYXQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3JtYXRfbmFtZSkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZXNldF9oZWxwZXIuYwppbmRleCAyNTQ0ZGZlLi5iNmFiNzJhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCkBAIC03NSwxMCArNzUsMTEgQEAgdm9pZCBkcm1faGVs cGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3Qoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAKIAlp bmZvID0gZHJtX2Zvcm1hdF9pbmZvKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOwogCWlmICghaW5m byB8fCAhaW5mby0+ZGVwdGgpIHsKLQkJY2hhciAqZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1h dF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOworCQlkcm1fZm9ybWF0X25hbWVfYnVmIGZv cm1hdF9uYW1lOwogCi0JCURSTV9ERUJVR19LTVMoIm5vbi1SR0IgcGl4ZWwgZm9ybWF0ICVzXG4i LCBmb3JtYXRfbmFtZSk7Ci0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKKwkJRFJNX0RFQlVHX0tNUygi bm9uLVJHQiBwaXhlbCBmb3JtYXQgJXNcbiIsCisJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3Jt YXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LAorCQkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9ybWF0X25hbWUpKTsKIAogCQlmYi0+ZGVwdGggPSAwOwogCQlmYi0+Yml0 c19wZXJfcGl4ZWwgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCmluZGV4IDI0OWMwYWUuLjlhNDVjNTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3BsYW5lLmMKQEAgLTQ3OSw5ICs0NzksMTAgQEAgc3RhdGljIGludCBfX3NldHBsYW5l X2ludGVybmFsKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCS8qIENoZWNrIHdoZXRoZXIgdGhp cyBwbGFuZSBzdXBwb3J0cyB0aGUgZmIgcGl4ZWwgZm9ybWF0LiAqLwogCXJldCA9IGRybV9wbGFu ZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUsIGZiLT5waXhlbF9mb3JtYXQpOwogCWlmIChyZXQp IHsKLQkJY2hhciAqZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9m b3JtYXQpOwotCQlEUk1fREVCVUdfS01TKCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAlc1xuIiwgZm9y bWF0X25hbWUpOwotCQlrZnJlZShmb3JtYXRfbmFtZSk7CisJCWRybV9mb3JtYXRfbmFtZV9idWYg Zm9ybWF0X25hbWU7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4i LAorCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwK KwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9uYW1lKSk7CiAJCWdv dG8gb3V0OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJp bi9raXJpbl9kcm1fYWRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmlu X2RybV9hZGUuYwppbmRleCA3ZTdhNGQ0Li5jNWMwYjM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYwpAQCAtNjA4LDE3ICs2MDgsMTYgQEAg c3RhdGljIHZvaWQgYWRlX3JkbWFfc2V0KHZvaWQgX19pb21lbSAqYmFzZSwgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCiAJCQkgdTMyIGNoLCB1MzIgeSwgdTMyIGluX2gsIHUzMiBmbXQpCiB7 CiAJc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29i aihmYiwgMCk7Ci0JY2hhciAqZm9ybWF0X25hbWU7CisJZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3Jt YXRfbmFtZTsKIAl1MzIgcmVnX2N0cmwsIHJlZ19hZGRyLCByZWdfc2l6ZSwgcmVnX3N0cmlkZSwg cmVnX3NwYWNlLCByZWdfZW47CiAJdTMyIHN0cmlkZSA9IGZiLT5waXRjaGVzWzBdOwogCXUzMiBh ZGRyID0gKHUzMilvYmotPnBhZGRyICsgeSAqIHN0cmlkZTsKIAogCURSTV9ERUJVR19EUklWRVIo InJkbWElZDogKHk9JWQsIGhlaWdodD0lZCksIHN0cmlkZT0lZCwgcGFkZHI9MHgleFxuIiwKIAkJ CSBjaCArIDEsIHksIGluX2gsIHN0cmlkZSwgKHUzMilvYmotPnBhZGRyKTsKLQlmb3JtYXRfbmFt ZSA9IGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCk7CiAJRFJNX0RFQlVHX0RS SVZFUigiYWRkcj0weCV4LCBmYjolZHglZCwgcGl4ZWxfZm9ybWF0PSVkKCVzKVxuIiwKLQkJCSBh ZGRyLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIGZtdCwgZm9ybWF0X25hbWUpOworCQkJIGFkZHIs IGZiLT53aWR0aCwgZmItPmhlaWdodCwgZm10LAorCQkJIGRybV9nZXRfZm9ybWF0X25hbWUoZmIt PnBpeGVsX2Zvcm1hdCwgZm9ybWF0X25hbWUpKTsKLQlrZnJlZShmb3JtYXRfbmFtZSk7CiAKIAkv KiBnZXQgcmVnIG9mZnNldCAqLwogCXJlZ19jdHJsID0gUkRfQ0hfQ1RSTChjaCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDIwNjM4ZDIuLjM5Zjc2YjEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0yOTcxLDcgKzI5NzEsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9wbGFuZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMpCiAJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGludGVsX2NydGMs IGludGVsX3BsYW5lKSB7CiAJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlOwogCQlzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZpbnRlbF9wbGFuZS0+YmFzZTsKLQkJY2hhciAqZm9ybWF0 X25hbWU7CisJCWRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CiAKIAkJaWYgKCFwbGFu ZS0+c3RhdGUpIHsKIAkJCXNlcV9wdXRzKG0sICJwbGFuZS0+c3RhdGUgaXMgTlVMTCFcbiIpOwpA QCAtMjk4MSw5ICsyOTgxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVfaW5mbyhzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQogCQlzdGF0ZSA9IHBs YW5lLT5zdGF0ZTsKIAogCQlpZiAoc3RhdGUtPmZiKSB7Ci0JCQlmb3JtYXRfbmFtZSA9IGRybV9n ZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOworCQkJZHJtX2dldF9mb3Jt YXRfbmFtZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCwgZm9ybWF0X25hbWUpOwogCQl9IGVsc2Ug ewotCQkJZm9ybWF0X25hbWUgPSBrc3RyZHVwKCJOL0EiLCBHRlBfS0VSTkVMKTsKKwkJCXNwcmlu dGYoZm9ybWF0X25hbWUsICJOL0EiKTsKIAkJfQogCiAJCXNlcV9wcmludGYobSwgIlx0LS1QbGFu ZSBpZCAlZDogdHlwZT0lcywgY3J0Y19wb3M9JTRkeCU0ZCwgY3J0Y19zaXplPSU0ZHglNGQsIHNy Y19wb3M9JWQuJTA0dXglZC4lMDR1LCBzcmNfc2l6ZT0lZC4lMDR1eCVkLiUwNHUsIGZvcm1hdD0l cywgcm90YXRpb249JXNcbiIsCkBAIC0zMDAxLDggKzMwMDEsNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wbGFuZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMpCiAJCQkgICAoKHN0YXRlLT5zcmNfaCAmIDB4ZmZmZikgKiAxNTYyNSkgPj4gMTAsCiAJ CQkgICBmb3JtYXRfbmFtZSwKIAkJCSAgIHBsYW5lX3JvdGF0aW9uKHN0YXRlLT5yb3RhdGlvbikp OwotCi0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggYzc2MmFlNS4uMjg5ZWJjOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0 aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPyBjcnRjX3N0YXRlLT5waXBlX3NyY19oIDogMDsK IAogCWlmIChzdGF0ZS0+ZmIgJiYgZHJtX3JvdGF0aW9uXzkwX29yXzI3MChzdGF0ZS0+cm90YXRp b24pKSB7Ci0JCWNoYXIgKmZvcm1hdF9uYW1lOworCQlkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1h dF9uYW1lOwogCiAJCWlmICghKHN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRf TU9EX1lfVElMRUQgfHwKIAkJCXN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRf TU9EX1lmX1RJTEVEKSkgewpAQCAtMTU5LDkgKzE1OSw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfcGxh bmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzd2l0Y2ggKHN0YXRl LT5mYi0+cGl4ZWxfZm9ybWF0KSB7CiAJCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJY2FzZSBEUk1f Rk9STUFUX1JHQjU2NToKLQkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0 ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7Ci0JCQlEUk1fREVCVUdfS01TKCJVbnN1cHBvcnRlZCBwaXhl bCBmb3JtYXQgJXMgZm9yIDkwLzI3MCFcbiIsIGZvcm1hdF9uYW1lKTsKLQkJCWtmcmVlKGZvcm1h dF9uYW1lKTsKKwkJCURSTV9ERUJVR19LTVMoIlVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdCAlcyBm b3IgOTAvMjcwIVxuIiwKKwkJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0 ZS0+ZmItPnBpeGVsX2Zvcm1hdCwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3JtYXRfbmFtZSkpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJZGVmYXVsdDoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2ZjhmNmVjLi5hYjA4ODJmIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjg3MSw3ICsxMjg3MSw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAK IAlEUk1fREVCVUdfS01TKCJwbGFuZXMgb24gdGhpcyBjcnRjXG4iKTsKIAlsaXN0X2Zvcl9lYWNo X2VudHJ5KHBsYW5lLCAmZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0LCBoZWFkKSB7Ci0JCWNo YXIgKmZvcm1hdF9uYW1lOworCQlkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwogCQlp bnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAkJaWYgKGludGVsX3BsYW5lLT5w aXBlICE9IGNydGMtPnBpcGUpCiAJCQljb250aW51ZTsKQEAgLTEyODg0LDEyICsxMjg4NCwxMSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCQkJY29udGludWU7CiAJCX0KIAotCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0 X25hbWUoZmItPnBpeGVsX2Zvcm1hdCk7Ci0KIAkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVz XSBlbmFibGVkIiwKIAkJCSAgICAgIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSk7CiAJCURS TV9ERUJVR19LTVMoIlx0RkI6JWQsIGZiID0gJXV4JXUgZm9ybWF0ID0gJXMiLAotCQkJICAgICAg ZmItPmJhc2UuaWQsIGZiLT53aWR0aCwgZmItPmhlaWdodCwgZm9ybWF0X25hbWUpOworCQkJICAg ICAgZmItPmJhc2UuaWQsIGZiLT53aWR0aCwgZmItPmhlaWdodCwKKwkJCSAgICAgIGRybV9nZXRf Zm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwgZm9ybWF0X25hbWUpKTsKIAkJRFJNX0RFQlVH X0tNUygiXHRzY2FsZXI6JWQgc3JjICVkeCVkKyVkKyVkIGRzdCAlZHglZCslZCslZFxuIiwKIAkJ CSAgICAgIHN0YXRlLT5zY2FsZXJfaWQsCiAJCQkgICAgICBzdGF0ZS0+YmFzZS5zcmMueDEgPj4g MTYsCkBAIC0xMjg5OSw4ICsxMjg5OCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9j b25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICAgICBzdGF0ZS0+YmFzZS5kc3Qu eDEsIHN0YXRlLT5iYXNlLmRzdC55MSwKIAkJCSAgICAgIGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ YmFzZS5kc3QpLAogCQkJICAgICAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+YmFzZS5kc3QpKTsK LQotCQlrZnJlZShmb3JtYXRfbmFtZSk7CiAJfQogfQogCkBAIC0xNTc0OSw3ICsxNTc0Niw3IEBA IHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCXVuc2lnbmVkIGludCB0aWxpbmcgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3RpbGluZyhvYmop OwogCWludCByZXQ7CiAJdTMyIHBpdGNoX2xpbWl0LCBzdHJpZGVfYWxpZ25tZW50OwotCWNoYXIg KmZvcm1hdF9uYW1lOworCWRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CiAKIAlXQVJO X09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7CiAKQEAgLTE1ODQwLDE4 ICsxNTgzNywxNiBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1OgogCQlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPiAzKSB7Ci0JCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRf Zm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Ci0JCQlEUk1fREVCVUcoInVuc3Vw cG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZvcm1hdF9uYW1lKTsKLQkJCWtmcmVlKGZvcm1h dF9uYW1lKTsKKwkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwK KwkJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQs IGZvcm1hdF9uYW1lKSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQlicmVhazsKIAljYXNl IERSTV9GT1JNQVRfQUJHUjg4ODg6CiAJCWlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYg IUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmCiAJCSAgICBJTlRFTF9JTkZPKGRldiktPmdlbiA8 IDkpIHsKLQkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4 ZWxfZm9ybWF0KTsKLQkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xu IiwgZm9ybWF0X25hbWUpOwotCQkJa2ZyZWUoZm9ybWF0X25hbWUpOworCQkJRFJNX0RFQlVHKCJ1 bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAorCQkJICAgICAgICAgIGRybV9nZXRfZm9y bWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgZm9ybWF0X25hbWUpKTsKIAkJCXJldHVy biAtRUlOVkFMOwogCQl9CiAJCWJyZWFrOwpAQCAtMTU4NTksMTcgKzE1ODU0LDE1IEBAIHN0YXRp YyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWNh c2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKIAljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6 CiAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpIHsKLQkJCWZvcm1hdF9uYW1lID0gZHJt X2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKLQkJCURSTV9ERUJVRygi dW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUpOwotCQkJa2ZyZWUo Zm9ybWF0X25hbWUpOworCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVz XG4iLAorCQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zv cm1hdCwgZm9ybWF0X25hbWUpKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJCWJyZWFrOwog CWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMDoKIAkJaWYgKCFJU19WQUxMRVlWSUVXKGRldl9w cml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKLQkJCWZvcm1hdF9uYW1lID0gZHJt X2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKLQkJCURSTV9ERUJVRygi dW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUpOwotCQkJa2ZyZWUo Zm9ybWF0X25hbWUpOworCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVz XG4iLAorCQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zv cm1hdCwgZm9ybWF0X25hbWUpKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJCWJyZWFrOwpA QCAtMTU4NzgsMTYgKzE1ODcxLDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWNhc2UgRFJNX0ZPUk1BVF9ZVllVOgogCWNhc2Ug RFJNX0ZPUk1BVF9WWVVZOgogCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1KSB7Ci0JCQlm b3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7 Ci0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZvcm1hdF9u YW1lKTsKLQkJCWtmcmVlKGZvcm1hdF9uYW1lKTsKKwkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQg cGl4ZWwgZm9ybWF0OiAlc1xuIiwKKwkJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1v ZGVfY21kLT5waXhlbF9mb3JtYXQsIGZvcm1hdF9uYW1lKSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsK IAkJfQogCQlicmVhazsKIAlkZWZhdWx0OgotCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0 X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Ci0JCURSTV9ERUJVRygidW5zdXBwb3J0ZWQg cGl4ZWwgZm9ybWF0OiAlc1xuIiwgZm9ybWF0X25hbWUpOwotCQlrZnJlZShmb3JtYXRfbmFtZSk7 CisJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwKKwkJICAgICAg ICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgZm9ybWF0X25h bWUpKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJp b3NfY3J0Yy5jCmluZGV4IDc0Zjk5YmEuLmFkZmYxM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v YXRvbWJpb3NfY3J0Yy5jCkBAIC0xMTU2LDcgKzExNTYsNyBAQCBzdGF0aWMgaW50IGRjZTRfY3J0 Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIHRtcCwgdmlld3BvcnRf dywgdmlld3BvcnRfaDsKIAlpbnQgcjsKIAlib29sIGJ5cGFzc19sdXQgPSBmYWxzZTsKLQljaGFy ICpmb3JtYXRfbmFtZTsKKwlkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwogCiAJLyog bm8gZmIgYm91bmQgKi8KIAlpZiAoIWF0b21pYyAmJiAhY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKQEAg LTEyNjAsOSArMTI2MCw4IEBAIHN0YXRpYyBpbnQgZGNlNF9jcnRjX2RvX3NldF9iYXNlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAkJYnlwYXNzX2x1dCA9IHRydWU7CiAJCWJyZWFrOwogCWRlZmF1 bHQ6Ci0JCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVs X2Zvcm1hdCk7Ci0JCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwg Zm9ybWF0X25hbWUpOwotCQlrZnJlZShmb3JtYXRfbmFtZSk7CisJCURSTV9FUlJPUigiVW5zdXBw b3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25h bWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsIGZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiAtRUlO VkFMOwogCX0KIApAQCAtMTQ3Myw3ICsxNDcyLDcgQEAgc3RhdGljIGludCBhdml2b19jcnRjX2Rv X3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1MzIgdmlld3BvcnRfdywgdmlld3Bv cnRfaDsKIAlpbnQgcjsKIAlib29sIGJ5cGFzc19sdXQgPSBmYWxzZTsKLQljaGFyICpmb3JtYXRf bmFtZTsKKwlkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwogCiAJLyogbm8gZmIgYm91 bmQgKi8KIAlpZiAoIWF0b21pYyAmJiAhY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKQEAgLTE1NjMsOSAr MTU2Miw4IEBAIHN0YXRpYyBpbnQgYXZpdm9fY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCWJ5cGFzc19sdXQgPSB0cnVlOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlm b3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQp OwotCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsIGZvcm1hdF9u YW1lKTsKLQkJa2ZyZWUoZm9ybWF0X25hbWUpOworCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNj cmVlbiBmb3JtYXQgJXNcbiIsCisJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdl dF9mYi0+cGl4ZWxfZm9ybWF0LCBmb3JtYXRfbmFtZSkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKaW5kZXggYzk2NTUxNC4uNzM3NjMwNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKQEAgLTk4NSw4ICs5ODUsOSBAQCBzdGF0 aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqdm13X2ttc19mYl9jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAogCWluZm8gPSBkcm1fZm9ybWF0X2luZm8obW9kZV9jbWQyLT5waXhlbF9m b3JtYXQpOwogCWlmICghaW5mbyB8fCAhaW5mby0+ZGVwdGgpIHsKKwkJZHJtX2Zvcm1hdF9uYW1l X2J1ZiBmb3JtYXRfbmFtZTsKIAkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBmcmFtZWJ1ZmZlciBm b3JtYXQgJXNcbiIsCi0JCQkgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQyLT5waXhlbF9m b3JtYXQpKTsKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQyLT5waXhl bF9mb3JtYXQsIGZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0K IAotLSAKQ2hlZXJzLAogIEVyaWMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753196AbcKEBgY (ORCPT ); Fri, 4 Nov 2016 21:36:24 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:33695 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751230AbcKEBgX (ORCPT ); Fri, 4 Nov 2016 21:36:23 -0400 From: Eric Engestrom To: linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Eric Engestrom , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Xinliang Liu , Daniel Vetter , Jani Nikula , VMware Graphics , Sinclair Yeh , Thomas Hellstrom , Tom St Denis , =?UTF-8?q?Michel=20D=C3=A4nzer?= , Gustavo Padovan , Emily Deng , Chunming Zhou , Flora Cui , Vitaly Prosyak , Ken Wang , Colin Ian King , Alexandre Demers , Junwei Zhang , Xinwei Kong , Chris Wilson , Laurent Pinchart , Wei Yongjun , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Subject: [PATCH] drm: move allocation out of drm_get_format_name() Date: Sat, 5 Nov 2016 01:33:13 +0000 Message-Id: <20161105013325.3889-1-eric@engestrom.ch> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161105012344.GA28349@engestrom.ch> References: <20161105012344.GA28349@engestrom.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fixes: 90844f00049e9f42573fd31d7c32e8fd31d3fd07 drm: make drm_get_format_name thread-safe Signed-off-by: Eric Engestrom [danvet: Clarify that the returned pointer must be freed with kfree().] Signed-off-by: Daniel Vetter Suggested-by: Ville Syrjälä Signed-off-by: Eric Engestrom --- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 7 ++--- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 7 ++--- drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 3 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 7 ++--- drivers/gpu/drm/drm_atomic.c | 7 +++-- drivers/gpu/drm/drm_crtc.c | 7 +++-- drivers/gpu/drm/drm_fourcc.c | 12 +++----- drivers/gpu/drm/drm_framebuffer.c | 7 +++-- drivers/gpu/drm/drm_modeset_helper.c | 7 +++-- drivers/gpu/drm/drm_plane.c | 7 +++-- drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 7 ++--- drivers/gpu/drm/i915/i915_debugfs.c | 8 ++--- drivers/gpu/drm/i915/intel_atomic_plane.c | 8 ++--- drivers/gpu/drm/i915/intel_display.c | 41 ++++++++++--------------- drivers/gpu/drm/radeon/atombios_crtc.c | 14 ++++----- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 3 +- include/drm/drm_fourcc.h | 3 +- 17 files changed, 71 insertions(+), 84 deletions(-) diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h index dc0aafa..5a8cb4b 100644 --- a/include/drm/drm_fourcc.h +++ b/include/drm/drm_fourcc.h @@ -54,6 +54,7 @@ int drm_format_horz_chroma_subsampling(uint32_t format); int drm_format_vert_chroma_subsampling(uint32_t format); int drm_format_plane_width(int width, uint32_t format, int plane); int drm_format_plane_height(int height, uint32_t format, int plane); -char *drm_get_format_name(uint32_t format) __malloc; +typedef char drm_format_name_buf[32]; +char *drm_get_format_name(uint32_t format, drm_format_name_buf buf); #endif /* __DRM_FOURCC_H__ */ diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c index cbb8b77..34ed520 100644 --- a/drivers/gpu/drm/drm_fourcc.c +++ b/drivers/gpu/drm/drm_fourcc.c @@ -79,17 +79,13 @@ uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth) EXPORT_SYMBOL(drm_mode_legacy_fb_format); /** - * drm_get_format_name - return a string for drm fourcc format + * drm_get_format_name - fill a string with a drm fourcc format's name * @format: format to compute name of + * @buf: caller-supplied buffer - * - * Note that the buffer returned by this function is owned by the caller - * and will need to be freed using kfree(). */ -char *drm_get_format_name(uint32_t format) +char *drm_get_format_name(uint32_t format, drm_format_name_buf buf) { - char *buf = kmalloc(32, GFP_KERNEL); - - snprintf(buf, 32, + snprintf(buf, sizeof(drm_format_name_buf), "%c%c%c%c %s-endian (0x%08x)", printable_char(format & 0xff), printable_char((format >> 8) & 0xff), diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c index 199d3f7..cefa3d8 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c @@ -2032,7 +2032,7 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc, u32 tmp, viewport_w, viewport_h; int r; bool bypass_lut = false; - char *format_name; + drm_format_name_buf format_name; /* no fb bound */ if (!atomic && !crtc->primary->fb) { @@ -2144,9 +2144,8 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc, bypass_lut = true; break; default: - format_name = drm_get_format_name(target_fb->pixel_format); - DRM_ERROR("Unsupported screen format %s\n", format_name); - kfree(format_name); + DRM_ERROR("Unsupported screen format %s\n", + drm_get_format_name(target_fb->pixel_format, format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c index ecd000e..462abb8 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c @@ -2013,7 +2013,7 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc, u32 tmp, viewport_w, viewport_h; int r; bool bypass_lut = false; - char *format_name; + drm_format_name_buf format_name; /* no fb bound */ if (!atomic && !crtc->primary->fb) { @@ -2125,9 +2125,8 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc, bypass_lut = true; break; default: - format_name = drm_get_format_name(target_fb->pixel_format); - DRM_ERROR("Unsupported screen format %s\n", format_name); - kfree(format_name); + DRM_ERROR("Unsupported screen format %s\n", + drm_get_format_name(target_fb->pixel_format, format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c index 44547f9..3b8cea3 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c @@ -1456,6 +1456,7 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, u32 viewport_w, viewport_h; int r; bool bypass_lut = false; + drm_format_name_buf format_name; /* no fb bound */ if (!atomic && !crtc->primary->fb) { @@ -1559,7 +1560,7 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, break; default: DRM_ERROR("Unsupported screen format %s\n", - drm_get_format_name(target_fb->pixel_format)); + drm_get_format_name(target_fb->pixel_format, format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c index 979aedf..8c624b5 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c @@ -1910,7 +1910,7 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc, u32 viewport_w, viewport_h; int r; bool bypass_lut = false; - char *format_name; + drm_format_name_buf format_name; /* no fb bound */ if (!atomic && !crtc->primary->fb) { @@ -2015,9 +2015,8 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc, bypass_lut = true; break; default: - format_name = drm_get_format_name(target_fb->pixel_format); - DRM_ERROR("Unsupported screen format %s\n", format_name); - kfree(format_name); + DRM_ERROR("Unsupported screen format %s\n", + drm_get_format_name(target_fb->pixel_format, format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index c32fb3c..8d2e6a5 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -835,9 +835,10 @@ static int drm_atomic_plane_check(struct drm_plane *plane, /* Check whether this plane supports the fb pixel format. */ ret = drm_plane_check_pixel_format(plane, state->fb->pixel_format); if (ret) { - char *format_name = drm_get_format_name(state->fb->pixel_format); - DRM_DEBUG_ATOMIC("Invalid pixel format %s\n", format_name); - kfree(format_name); + drm_format_name_buf format_name; + DRM_DEBUG_ATOMIC("Invalid pixel format %s\n", + drm_get_format_name(state->fb->pixel_format, + format_name)); return ret; } diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 13441e2..7f5bbe3 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -827,9 +827,10 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, ret = drm_plane_check_pixel_format(crtc->primary, fb->pixel_format); if (ret) { - char *format_name = drm_get_format_name(fb->pixel_format); - DRM_DEBUG_KMS("Invalid pixel format %s\n", format_name); - kfree(format_name); + drm_format_name_buf format_name; + DRM_DEBUG_KMS("Invalid pixel format %s\n", + drm_get_format_name(fb->pixel_format, + format_name)); goto out; } } diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c index 49fd7db..12ad188 100644 --- a/drivers/gpu/drm/drm_framebuffer.c +++ b/drivers/gpu/drm/drm_framebuffer.c @@ -133,9 +133,10 @@ static int framebuffer_check(const struct drm_mode_fb_cmd2 *r) info = __drm_format_info(r->pixel_format & ~DRM_FORMAT_BIG_ENDIAN); if (!info) { - char *format_name = drm_get_format_name(r->pixel_format); - DRM_DEBUG_KMS("bad framebuffer format %s\n", format_name); - kfree(format_name); + drm_format_name_buf format_name; + DRM_DEBUG_KMS("bad framebuffer format %s\n", + drm_get_format_name(r->pixel_format, + format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c index 2544dfe..b6ab72a 100644 --- a/drivers/gpu/drm/drm_modeset_helper.c +++ b/drivers/gpu/drm/drm_modeset_helper.c @@ -75,10 +75,11 @@ void drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, info = drm_format_info(mode_cmd->pixel_format); if (!info || !info->depth) { - char *format_name = drm_get_format_name(mode_cmd->pixel_format); + drm_format_name_buf format_name; - DRM_DEBUG_KMS("non-RGB pixel format %s\n", format_name); - kfree(format_name); + DRM_DEBUG_KMS("non-RGB pixel format %s\n", + drm_get_format_name(mode_cmd->pixel_format, + format_name)); fb->depth = 0; fb->bits_per_pixel = 0; diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c index 249c0ae..9a45c52 100644 --- a/drivers/gpu/drm/drm_plane.c +++ b/drivers/gpu/drm/drm_plane.c @@ -479,9 +479,10 @@ static int __setplane_internal(struct drm_plane *plane, /* Check whether this plane supports the fb pixel format. */ ret = drm_plane_check_pixel_format(plane, fb->pixel_format); if (ret) { - char *format_name = drm_get_format_name(fb->pixel_format); - DRM_DEBUG_KMS("Invalid pixel format %s\n", format_name); - kfree(format_name); + drm_format_name_buf format_name; + DRM_DEBUG_KMS("Invalid pixel format %s\n", + drm_get_format_name(fb->pixel_format, + format_name)); goto out; } diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c index 7e7a4d4..c5c0b38 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c @@ -608,17 +608,16 @@ static void ade_rdma_set(void __iomem *base, struct drm_framebuffer *fb, u32 ch, u32 y, u32 in_h, u32 fmt) { struct drm_gem_cma_object *obj = drm_fb_cma_get_gem_obj(fb, 0); - char *format_name; + drm_format_name_buf format_name; u32 reg_ctrl, reg_addr, reg_size, reg_stride, reg_space, reg_en; u32 stride = fb->pitches[0]; u32 addr = (u32)obj->paddr + y * stride; DRM_DEBUG_DRIVER("rdma%d: (y=%d, height=%d), stride=%d, paddr=0x%x\n", ch + 1, y, in_h, stride, (u32)obj->paddr); - format_name = drm_get_format_name(fb->pixel_format); DRM_DEBUG_DRIVER("addr=0x%x, fb:%dx%d, pixel_format=%d(%s)\n", - addr, fb->width, fb->height, fmt, format_name); + addr, fb->width, fb->height, fmt, + drm_get_format_name(fb->pixel_format, format_name)); - kfree(format_name); /* get reg offset */ reg_ctrl = RD_CH_CTRL(ch); diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 20638d2..39f76b1 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2971,7 +2971,7 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) { struct drm_plane_state *state; struct drm_plane *plane = &intel_plane->base; - char *format_name; + drm_format_name_buf format_name; if (!plane->state) { seq_puts(m, "plane->state is NULL!\n"); @@ -2981,9 +2981,9 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) state = plane->state; if (state->fb) { - format_name = drm_get_format_name(state->fb->pixel_format); + drm_get_format_name(state->fb->pixel_format, format_name); } else { - format_name = kstrdup("N/A", GFP_KERNEL); + sprintf(format_name, "N/A"); } seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n", @@ -3001,8 +3001,6 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) ((state->src_h & 0xffff) * 15625) >> 10, format_name, plane_rotation(state->rotation)); - - kfree(format_name); } } diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c index c762ae5..289ebc9 100644 --- a/drivers/gpu/drm/i915/intel_atomic_plane.c +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c @@ -143,7 +143,7 @@ static int intel_plane_atomic_check(struct drm_plane *plane, crtc_state->base.enable ? crtc_state->pipe_src_h : 0; if (state->fb && drm_rotation_90_or_270(state->rotation)) { - char *format_name; + drm_format_name_buf format_name; if (!(state->fb->modifier[0] == I915_FORMAT_MOD_Y_TILED || state->fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED)) { @@ -159,9 +159,9 @@ static int intel_plane_atomic_check(struct drm_plane *plane, switch (state->fb->pixel_format) { case DRM_FORMAT_C8: case DRM_FORMAT_RGB565: - format_name = drm_get_format_name(state->fb->pixel_format); - DRM_DEBUG_KMS("Unsupported pixel format %s for 90/270!\n", format_name); - kfree(format_name); + DRM_DEBUG_KMS("Unsupported pixel format %s for 90/270!\n", + drm_get_format_name(state->fb->pixel_format, + format_name)); return -EINVAL; default: diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 6f8f6ec..ab0882f 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -12871,7 +12871,7 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, DRM_DEBUG_KMS("planes on this crtc\n"); list_for_each_entry(plane, &dev->mode_config.plane_list, head) { - char *format_name; + drm_format_name_buf format_name; intel_plane = to_intel_plane(plane); if (intel_plane->pipe != crtc->pipe) continue; @@ -12884,12 +12884,11 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, continue; } - format_name = drm_get_format_name(fb->pixel_format); - DRM_DEBUG_KMS("[PLANE:%d:%s] enabled", plane->base.id, plane->name); DRM_DEBUG_KMS("\tFB:%d, fb = %ux%u format = %s", - fb->base.id, fb->width, fb->height, format_name); + fb->base.id, fb->width, fb->height, + drm_get_format_name(fb->pixel_format, format_name)); DRM_DEBUG_KMS("\tscaler:%d src %dx%d+%d+%d dst %dx%d+%d+%d\n", state->scaler_id, state->base.src.x1 >> 16, @@ -12899,8 +12898,6 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, state->base.dst.x1, state->base.dst.y1, drm_rect_width(&state->base.dst), drm_rect_height(&state->base.dst)); - - kfree(format_name); } } @@ -15749,7 +15746,7 @@ static int intel_framebuffer_init(struct drm_device *dev, unsigned int tiling = i915_gem_object_get_tiling(obj); int ret; u32 pitch_limit, stride_alignment; - char *format_name; + drm_format_name_buf format_name; WARN_ON(!mutex_is_locked(&dev->struct_mutex)); @@ -15840,18 +15837,16 @@ static int intel_framebuffer_init(struct drm_device *dev, break; case DRM_FORMAT_XRGB1555: if (INTEL_INFO(dev)->gen > 3) { - format_name = drm_get_format_name(mode_cmd->pixel_format); - DRM_DEBUG("unsupported pixel format: %s\n", format_name); - kfree(format_name); + DRM_DEBUG("unsupported pixel format: %s\n", + drm_get_format_name(mode_cmd->pixel_format, format_name)); return -EINVAL; } break; case DRM_FORMAT_ABGR8888: if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv) && INTEL_INFO(dev)->gen < 9) { - format_name = drm_get_format_name(mode_cmd->pixel_format); - DRM_DEBUG("unsupported pixel format: %s\n", format_name); - kfree(format_name); + DRM_DEBUG("unsupported pixel format: %s\n", + drm_get_format_name(mode_cmd->pixel_format, format_name)); return -EINVAL; } break; @@ -15859,17 +15854,15 @@ static int intel_framebuffer_init(struct drm_device *dev, case DRM_FORMAT_XRGB2101010: case DRM_FORMAT_XBGR2101010: if (INTEL_INFO(dev)->gen < 4) { - format_name = drm_get_format_name(mode_cmd->pixel_format); - DRM_DEBUG("unsupported pixel format: %s\n", format_name); - kfree(format_name); + DRM_DEBUG("unsupported pixel format: %s\n", + drm_get_format_name(mode_cmd->pixel_format, format_name)); return -EINVAL; } break; case DRM_FORMAT_ABGR2101010: if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) { - format_name = drm_get_format_name(mode_cmd->pixel_format); - DRM_DEBUG("unsupported pixel format: %s\n", format_name); - kfree(format_name); + DRM_DEBUG("unsupported pixel format: %s\n", + drm_get_format_name(mode_cmd->pixel_format, format_name)); return -EINVAL; } break; @@ -15878,16 +15871,14 @@ static int intel_framebuffer_init(struct drm_device *dev, case DRM_FORMAT_YVYU: case DRM_FORMAT_VYUY: if (INTEL_INFO(dev)->gen < 5) { - format_name = drm_get_format_name(mode_cmd->pixel_format); - DRM_DEBUG("unsupported pixel format: %s\n", format_name); - kfree(format_name); + DRM_DEBUG("unsupported pixel format: %s\n", + drm_get_format_name(mode_cmd->pixel_format, format_name)); return -EINVAL; } break; default: - format_name = drm_get_format_name(mode_cmd->pixel_format); - DRM_DEBUG("unsupported pixel format: %s\n", format_name); - kfree(format_name); + DRM_DEBUG("unsupported pixel format: %s\n", + drm_get_format_name(mode_cmd->pixel_format, format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 74f99ba..adff13b 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c @@ -1156,7 +1156,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc, u32 tmp, viewport_w, viewport_h; int r; bool bypass_lut = false; - char *format_name; + drm_format_name_buf format_name; /* no fb bound */ if (!atomic && !crtc->primary->fb) { @@ -1260,9 +1260,8 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc, bypass_lut = true; break; default: - format_name = drm_get_format_name(target_fb->pixel_format); - DRM_ERROR("Unsupported screen format %s\n", format_name); - kfree(format_name); + DRM_ERROR("Unsupported screen format %s\n", + drm_get_format_name(target_fb->pixel_format, format_name)); return -EINVAL; } @@ -1473,7 +1472,7 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc, u32 viewport_w, viewport_h; int r; bool bypass_lut = false; - char *format_name; + drm_format_name_buf format_name; /* no fb bound */ if (!atomic && !crtc->primary->fb) { @@ -1563,9 +1562,8 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc, bypass_lut = true; break; default: - format_name = drm_get_format_name(target_fb->pixel_format); - DRM_ERROR("Unsupported screen format %s\n", format_name); - kfree(format_name); + DRM_ERROR("Unsupported screen format %s\n", + drm_get_format_name(target_fb->pixel_format, format_name)); return -EINVAL; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index c965514..7376307 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -985,8 +985,9 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev, info = drm_format_info(mode_cmd2->pixel_format); if (!info || !info->depth) { + drm_format_name_buf format_name; DRM_ERROR("Unsupported framebuffer format %s\n", - drm_get_format_name(mode_cmd2->pixel_format)); + drm_get_format_name(mode_cmd2->pixel_format, format_name)); return ERR_PTR(-EINVAL); } -- Cheers, Eric