From: Thomas Zimmermann Subject: [PATCH] drm/cirrus: Use drm_framebuffer_put to avoid kernel oops in clean-up Date: Fri, 20 Jul 2018 13:27:43 +0200 Message-ID: <20180720112743.27159-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6879E6EFAD for ; Fri, 20 Jul 2018 11:27:55 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@redhat.com, kraxel@redhat.com, virtualization@lists.linux-foundation.org, dri-devel@lists.freedesktop.org Cc: Thomas Zimmermann List-Id: dri-devel@lists.freedesktop.org SW4gdGhlIENpcnJ1cyBkcml2ZXIsIHRoZSByZWd1bGFyIGNsZWFuLXVwIGNvZGUgYWxzbyBwZXJm b3JtcyB0aGUgY2xlYW4tdXAKb2YgYSBmYWlsZWQgaW5pdGlhbGl6YXRpb24uIElmIHRoZSBmYmRl didzIGZyYW1lYnVmZmVyIHdhcyBub3QgaW5pdGlhbGl6ZWQsCnRoZSBjbGVhbi11cCB3aWxsIGZh aWwgd2l0aGluIGRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUuIEJvb3RpbmcKd2l0 aCBjaXJydXMuYnBwPTE2IHRyaWdnZXJzIHRoaXMgYnVnLgoKVGhlIGZyYW1lYnVmZmVyIGlzIGN1 cnJlbnRseSBzdG9yZWQgZGlyZWN0bHkgd2l0aGluIHN0cnVjdCBjaXJydXNfZmJkZXYuIFRvCmZp eCB0aGUgYnVnLCB3ZSB0dXJuIGl0IGludG8gYSBwb2ludGVyIHRoYXQgaXMgb25seSBzZXQgZm9y IGluaXRpYWxpemVkCmZyYW1lYnVmZmVycy4gVGhlIGZiZGV2J3MgY2xlYW4tdXAgY29kZSBza2lw cyB1bmluaXRpYWxpemVkIGZyYW1lYnVmZmVycy4KClRoZSBtZW1vcnkgZm9yIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgaXMgYWxsb2NhdGVkIGR5bmFtaWNhbGx5LiBUaGlzIHJlcXVpcmVzCmFkZGl0 aW9uYWwgZXJyb3IgaGFuZGxpbmcgd2l0aGluIGNpcnJ1c2ZiX2NyZWF0ZS4gVGhlIGZyYW1lYnVm ZmVyIGNsZWFuLXVwIGlzCm5vdyBwZXJmb3JtZWQgYnkgZHJtX2ZyYW1lYnVmZmVyX3B1dCwgd2hp Y2ggYWxzbyBmcmVlcyB0aGUgZGF0YSBzdHJjdXR1cmUncwptZW1vcnkuCgpMaW5rOiBodHRwczov L2J1Z3ppbGxhLnN1c2UuY29tL3Nob3dfYnVnLmNnaT9pZD0xMTAxODIyClNpZ25lZC1vZmYtYnk6 IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9jaXJydXMvY2lycnVzX2Rydi5oICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2NpcnJ1 cy9jaXJydXNfZmJkZXYuYyB8IDQ4ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jICB8ICAyICstCiAzIGZpbGVzIGNoYW5nZWQs IDI5IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJy dXNfZHJ2LmgKaW5kZXggY2U5ZGI3YWFiMjI1Li5hMjlmODdlOThkOWQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9j aXJydXMvY2lycnVzX2Rydi5oCkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RydWN0IGNpcnJ1c19kZXZp Y2UgewogCiBzdHJ1Y3QgY2lycnVzX2ZiZGV2IHsKIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciBoZWxw ZXI7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBnZmI7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZ2ZiOwogCXZvaWQgKnN5c3JhbTsKIAlpbnQgc2l6ZTsKIAlpbnQgeDEsIHkxLCB4MiwgeTI7 IC8qIGRpcnR5IHJlY3QgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2ly cnVzX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jCmluZGV4 IGI2NDNhYzkyODAxYy4uODJjYzgyZTBiZDgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v Y2lycnVzL2NpcnJ1c19mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X2ZiZGV2LmMKQEAgLTIyLDE0ICsyMiwxNCBAQCBzdGF0aWMgdm9pZCBjaXJydXNfZGlydHlfdXBk YXRlKHN0cnVjdCBjaXJydXNfZmJkZXYgKmFmYmRldiwKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iajsKIAlzdHJ1Y3QgY2lycnVzX2JvICpibzsKIAlpbnQgc3JjX29mZnNldCwgZHN0X29mZnNl dDsKLQlpbnQgYnBwID0gYWZiZGV2LT5nZmIuZm9ybWF0LT5jcHBbMF07CisJaW50IGJwcCA9IGFm YmRldi0+Z2ZiLT5mb3JtYXQtPmNwcFswXTsKIAlpbnQgcmV0ID0gLUVCVVNZOwogCWJvb2wgdW5t YXAgPSBmYWxzZTsKIAlib29sIHN0b3JlX2Zvcl9sYXRlciA9IGZhbHNlOwogCWludCB4MiwgeTI7 CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCW9iaiA9IGFmYmRldi0+Z2ZiLm9ialswXTsKKwlv YmogPSBhZmJkZXYtPmdmYi0+b2JqWzBdOwogCWJvID0gZ2VtX3RvX2NpcnJ1c19ibyhvYmopOwog CiAJLyoKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQgY2lycnVzX2RpcnR5X3VwZGF0ZShz dHJ1Y3QgY2lycnVzX2ZiZGV2ICphZmJkZXYsCiAJfQogCWZvciAoaSA9IHk7IGkgPCB5ICsgaGVp Z2h0OyBpKyspIHsKIAkJLyogYXNzdW1lIGVxdWFsIHN0cmlkZSBmb3Igbm93ICovCi0JCXNyY19v ZmZzZXQgPSBkc3Rfb2Zmc2V0ID0gaSAqIGFmYmRldi0+Z2ZiLnBpdGNoZXNbMF0gKyAoeCAqIGJw cCk7CisJCXNyY19vZmZzZXQgPSBkc3Rfb2Zmc2V0ID0gaSAqIGFmYmRldi0+Z2ZiLT5waXRjaGVz WzBdICsgKHggKiBicHApOwogCQltZW1jcHlfdG9pbyhiby0+a21hcC52aXJ0dWFsICsgc3JjX29m ZnNldCwgYWZiZGV2LT5zeXNyYW0gKyBzcmNfb2Zmc2V0LCB3aWR0aCAqIGJwcCk7CiAKIAl9CkBA IC0xOTIsMjMgKzE5MiwyNiBAQCBzdGF0aWMgaW50IGNpcnJ1c2ZiX2NyZWF0ZShzdHJ1Y3QgZHJt X2ZiX2hlbHBlciAqaGVscGVyLAogCQlyZXR1cm4gLUVOT01FTTsKIAogCWluZm8gPSBkcm1fZmJf aGVscGVyX2FsbG9jX2ZiaShoZWxwZXIpOwotCWlmIChJU19FUlIoaW5mbykpCi0JCXJldHVybiBQ VFJfRVJSKGluZm8pOworCWlmIChJU19FUlIoaW5mbykpIHsKKwkJcmV0ID0gUFRSX0VSUihpbmZv KTsKKwkJZ290byBlcnJfdmZyZWU7CisJfQogCiAJaW5mby0+cGFyID0gZ2ZiZGV2OwogCi0JcmV0 ID0gY2lycnVzX2ZyYW1lYnVmZmVyX2luaXQoY2Rldi0+ZGV2LCAmZ2ZiZGV2LT5nZmIsICZtb2Rl X2NtZCwgZ29iaik7CisJZmIgPSBremFsbG9jKHNpemVvZigqZmIpLCBHRlBfS0VSTkVMKTsKKwlp ZiAoIWZiKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2RybV9nZW1fb2JqZWN0X3B1 dF91bmxvY2tlZDsKKwl9CisKKwlyZXQgPSBjaXJydXNfZnJhbWVidWZmZXJfaW5pdChjZGV2LT5k ZXYsIGZiLCAmbW9kZV9jbWQsIGdvYmopOwogCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJCWdv dG8gZXJyX2tmcmVlOwogCiAJZ2ZiZGV2LT5zeXNyYW0gPSBzeXNyYW07CiAJZ2ZiZGV2LT5zaXpl ID0gc2l6ZTsKLQotCWZiID0gJmdmYmRldi0+Z2ZiOwotCWlmICghZmIpIHsKLQkJRFJNX0lORk8o ImZiIGlzIE5VTExcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9CisJZ2ZiZGV2LT5nZmIgPSBm YjsKIAogCS8qIHNldHVwIGhlbHBlciAqLwogCWdmYmRldi0+aGVscGVyLmZiID0gZmI7CkBAIC0y NDEsMjQgKzI0NCwyNyBAQCBzdGF0aWMgaW50IGNpcnJ1c2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqaGVscGVyLAogCURSTV9JTkZPKCIgICBwaXRjaCBpcyAlZFxuIiwgZmItPnBpdGNo ZXNbMF0pOwogCiAJcmV0dXJuIDA7CisKK2Vycl9rZnJlZToKKwlrZnJlZShmYik7CitlcnJfZHJt X2dlbV9vYmplY3RfcHV0X3VubG9ja2VkOgorCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChn b2JqKTsKK2Vycl92ZnJlZToKKwl2ZnJlZShzeXNyYW0pOworCXJldHVybiByZXQ7CiB9CiAKIHN0 YXRpYyBpbnQgY2lycnVzX2ZiZGV2X2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CQlzdHJ1Y3QgY2lycnVzX2ZiZGV2ICpnZmJkZXYpCiB7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZ2ZiID0gJmdmYmRldi0+Z2ZiOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmdmYiA9IGdm YmRldi0+Z2ZiOwogCiAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSgmZ2ZiZGV2LT5oZWxw ZXIpOwogCi0JaWYgKGdmYi0+b2JqWzBdKSB7Ci0JCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tl ZChnZmItPm9ialswXSk7Ci0JCWdmYi0+b2JqWzBdID0gTlVMTDsKLQl9Ci0KIAl2ZnJlZShnZmJk ZXYtPnN5c3JhbSk7CiAJZHJtX2ZiX2hlbHBlcl9maW5pKCZnZmJkZXYtPmhlbHBlcik7Ci0JZHJt X2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZShnZmIpOwotCWRybV9mcmFtZWJ1ZmZlcl9j bGVhbnVwKGdmYik7CisJaWYgKGdmYikKKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dChnZmIpOwogCiAJ cmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19t b2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2RlLmMKaW5kZXggMzM2YmZk YTQwMTI1Li45MGE0ZTY0MWQzZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMv Y2lycnVzX21vZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2RlLmMK QEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW50IGNpcnJ1c19jcnRjX2RvX3NldF9iYXNlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlpZiAoJmNkZXYtPm1v ZGVfaW5mby5nZmJkZXYtPmdmYiA9PSBjcnRjLT5wcmltYXJ5LT5mYikgeworCWlmIChjZGV2LT5t b2RlX2luZm8uZ2ZiZGV2LT5nZmIgPT0gY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKIAkJLyogaWYgcHVz aGluZyBjb25zb2xlIGluIGttYXAgaXQgKi8KIAkJcmV0ID0gdHRtX2JvX2ttYXAoJmJvLT5ibywg MCwgYm8tPmJvLm51bV9wYWdlcywgJmJvLT5rbWFwKTsKIAkJaWYgKHJldCkKLS0gCjIuMTguMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==