From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 4.4 48/56] fbdev: sm712fb: fix crashes during framebuffer writes by correctly mapping VRAM Date: Sat, 1 Jun 2019 09:25:52 -0400 Message-ID: <20190601132600.27427-48-sashal@kernel.org> References: <20190601132600.27427-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 44C6A89C56 for ; Sat, 1 Jun 2019 13:27:25 +0000 (UTC) In-Reply-To: <20190601132600.27427-1-sashal@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin , linux-fbdev@vger.kernel.org, Teddy Wang , Bartlomiej Zolnierkiewicz , dri-devel@lists.freedesktop.org, Yifeng Li , Sudip Mukherjee List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWlmZW5nIExpIDx0b21saUB0b21saS5tZT4KClsgVXBzdHJlYW0gY29tbWl0IDllMGU1 OTk5M2RmMDYwMWNkZGI5NWM0ZjZjNjFhYTNkNWU3NTNjMDAgXQoKT24gYSBUaGlua3BhZCBzMzAg KFBlbnRpdW0gSUlJIC8gaTQ0ME1YLCBMeW54M0RNKSwgcnVubmluZyBmYnRlc3Qgb3IgWAp3aWxs IGNyYXNoIHRoZSBtYWNoaW5lIGluc3RhbnRseSwgYmVjYXVzZSB0aGUgVlJBTS9mcmFtZWJ1ZmZl ciBpcyBub3QKbWFwcGVkIGNvcnJlY3RseS4KCk9uIFNNNzEyLCB0aGUgZnJhbWVidWZmZXIgc3Rh cnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYWRkcmVzcyBzcGFjZSwgYnV0ClNNNzIwJ3MgZnJhbWVi dWZmZXIgc3RhcnRzIGF0IHRoZSAxIE1pQiBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nLiBIb3dl dmVyLApzbTcxMmZiIGZhaWxzIHRvIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIGFzIGEgcmVzdWx0 LCB3cml0aW5nIHRvIHRoZQpmcmFtZWJ1ZmZlciB3aWxsIGRlc3Ryb3kgYWxsIHRoZSByZWdpc3Rl cnMgYW5kIGtpbGwgdGhlIHN5c3RlbSBpbW1lZGlhdGVseS4KQW5vdGhlciBwcm9ibGVtIGlzIHRo ZSBkcml2ZXIgYXNzdW1lcyA4IE1pQiBvZiBWUkFNIGZvciBTTTcyMCwgYnV0IHNvbWUKU003MjAg c3lzdGVtLCBzdWNoIGFzIHRoaXMgSUJNIFRoaW5rcGFkLCBvbmx5IGhhcyA0IE1pQiBvZiBWUkFN LgoKRml4IHRoaXMgcHJvYmxlbSBieSByZW1vdmluZyB0aGUgaGFyZGNvZGVkIFZSQU0gc2l6ZSwg YWRkaW5nIGEgZnVuY3Rpb24gdG8KcXVlcnkgdGhlIGFtb3VudCBvZiBWUkFNIGZyb20gcmVnaXN0 ZXIgTUNSNzYgb24gU003MjAsIGFuZCBhZGRpbmcgcHJvcGVyCmZyYW1lYnVmZmVyIG9mZnNldC4K ClBsZWFzZSBub3RlIHRoYXQgdGhlIG1lbW9yeSBtYXAgbWF5IGhhdmUgYWRkaXRpb25hbCBwcm9i bGVtcyBvbiBCaWctRW5kaWFuCnN5c3RlbSwgd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBmb3IgdGVz dGluZyBieSBteXNlbGYuIEJ1dCBJIGhpZ2hseSBzdXNwZWN0CnRoYXQgdGhlIG9yaWdpbmFsIGNv ZGUgaXMgYWxzbyBicm9rZW4gb24gQmlnLUVuZGlhbiBtYWNoaW5lcyBmb3IgU003MjAsIHNvCmF0 IGxlYXN0IHdlIGFyZSBub3QgbWFraW5nIHRoZSBwcm9ibGVtIHdvcnNlLiBNb3JlLCB0aGUgZHJp dmVyIGFsc28gYXNzdW1lZApTTTcxMC9TTTcxMiBoYXMgNCBNaUIgb2YgVlJBTSwgYnV0IGl0IGhh cyBhIDIgTWlCIHZlcnNpb24gYXMgd2VsbCwgYW5kIHVzZWQKaW4gZWFybGllciBsYXB0b3BzLCBz dWNoIGFzIElCTSBUaGlua3BhZCAyNDBYLCB0aGUgZHJpdmVyIHdvdWxkIHByb2JhYmx5CmNyYXNo IG9uIHRoZW0uIEkndmUgbmV2ZXIgc2VlbiBvbmUgb2YgdGhvc2UgbWFjaGluZXMgYW5kIGNhbm5v dCBmaXggaXQsIGJ1dApJIGhhdmUgZG9jdW1lbnRlZCB0aGVzZSBwcm9ibGVtcyBpbiB0aGUgY29t bWVudHMuCgpTaWduZWQtb2ZmLWJ5OiBZaWZlbmcgTGkgPHRvbWxpQHRvbWxpLm1lPgpUZXN0ZWQt Ynk6IFN1ZGlwIE11a2hlcmplZSA8c3VkaXBtLm11a2hlcmplZUBnbWFpbC5jb20+CkNjOiBUZWRk eSBXYW5nIDx0ZWRkeS53YW5nQHNpbGljb25tb3Rpb24uY29tPgpDYzogPHN0YWJsZUB2Z2VyLmtl cm5lbC5vcmc+ICAjIHY0LjQrClNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogWm9sbmllcmtpZXdp Y3ogPGIuem9sbmllcmtpZUBzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4g PHNhc2hhbEBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvc203MTIuaCAgIHwg IDUgLS0tLQogZHJpdmVycy92aWRlby9mYmRldi9zbTcxMmZiLmMgfCA0OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTIu aCBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTIuaAppbmRleCBhYWQxY2M0YmUzNGE5Li4yY2Jh MWU3M2VkMjRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyLmgKKysrIGIv ZHJpdmVycy92aWRlby9mYmRldi9zbTcxMi5oCkBAIC0xOSwxMSArMTksNiBAQAogI2RlZmluZSBT Q1JFRU5fWV9SRVMgICAgICA2MDAKICNkZWZpbmUgU0NSRUVOX0JQUCAgICAgICAgMTYKIAotLypB c3N1bWUgU003MTIgZ3JhcGhpY3MgY2hpcCBoYXMgNE1CIFZSQU0gKi8KLSNkZWZpbmUgU003MTJf VklERU9NRU1PUllTSVpFCSAgMHgwMDQwMDAwMAotLypBc3N1bWUgU003MjIgZ3JhcGhpY3MgY2hp cCBoYXMgOE1CIFZSQU0gKi8KLSNkZWZpbmUgU003MjJfVklERU9NRU1PUllTSVpFCSAgMHgwMDgw MDAwMAotCiAjZGVmaW5lIGRhY19yZWcJKDB4M2M4KQogI2RlZmluZSBkYWNfdmFsCSgweDNjOSkK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9zbTcxMmZiLmMgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3NtNzEyZmIuYwppbmRleCA1MTQ4NzY1ZjAwN2NmLi42MmRkZDc3OTJhZDIwIDEw MDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3NtNzEyZmIuYwpAQCAtMTMzOCw2ICsxMzM4LDExIEBAIHN0YXRpYyBpbnQgc210 Y19tYXBfc21lbShzdHJ1Y3Qgc210Y2ZiX2luZm8gKnNmYiwKIHsKIAlzZmItPmZiLT5maXguc21l bV9zdGFydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAwKTsKIAorCWlmIChzZmItPmNoaXBf aWQgPT0gMHg3MjApCisJCS8qIG9uIFNNNzIwLCB0aGUgZnJhbWVidWZmZXIgc3RhcnRzIGF0IHRo ZSAxIE1CIG9mZnNldCAqLworCQlzZmItPmZiLT5maXguc21lbV9zdGFydCArPSAweDAwMjAwMDAw OworCisJLyogWFhYOiBpcyBpdCBzYWZlIGZvciBTTTcyMCBvbiBCaWctRW5kaWFuPyAqLwogCWlm IChzZmItPmZiLT52YXIuYml0c19wZXJfcGl4ZWwgPT0gMzIpCiAJCXNmYi0+ZmItPmZpeC5zbWVt X3N0YXJ0ICs9IGJpZ19hZGRyOwogCkBAIC0xMzc1LDEyICsxMzgwLDQ1IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBzbTd4eF9pbml0X2h3KHZvaWQpCiAJb3V0Yl9wKDB4MTEsIDB4M2M1KTsKIH0KIAor c3RhdGljIHVfbG9uZyBzbTd4eF92cmFtX3Byb2JlKHN0cnVjdCBzbXRjZmJfaW5mbyAqc2ZiKQor eworCXU4IHZyYW07CisKKwlzd2l0Y2ggKHNmYi0+Y2hpcF9pZCkgeworCWNhc2UgMHg3MTA6CisJ Y2FzZSAweDcxMjoKKwkJLyoKKwkJICogQXNzdW1lIFNNNzEyIGdyYXBoaWNzIGNoaXAgaGFzIDRN QiBWUkFNLgorCQkgKgorCQkgKiBGSVhNRTogU003MTIgY2FuIGhhdmUgMk1CIFZSQU0sIHdoaWNo IGlzIHVzZWQgb24gZWFybGllcgorCQkgKiBsYXB0b3BzLCBzdWNoIGFzIElCTSBUaGlua3BhZCAy NDBYLiBUaGlzIGRyaXZlciB3b3VsZAorCQkgKiBwcm9iYWJseSBjcmFzaCBvbiB0aG9zZSBtYWNo aW5lcy4gSWYgYW55b25lIGdldHMgb25lIG9mCisJCSAqIHRob3NlIGFuZCBpcyB3aWxsaW5nIHRv IGhlbHAsIHJ1biAiZ2l0IGJsYW1lIiBhbmQgc2VuZCBtZQorCQkgKiBhbiBFLW1haWwuCisJCSAq LworCQlyZXR1cm4gMHgwMDQwMDAwMDsKKwljYXNlIDB4NzIwOgorCQlvdXRiX3AoMHg3NiwgMHgz YzQpOworCQl2cmFtID0gaW5iX3AoMHgzYzUpID4+IDY7CisKKwkJaWYgKHZyYW0gPT0gMHgwMCkK KwkJCXJldHVybiAweDAwODAwMDAwOyAgLyogOCBNQiAqLworCQllbHNlIGlmICh2cmFtID09IDB4 MDEpCisJCQlyZXR1cm4gMHgwMTAwMDAwMDsgIC8qIDE2IE1CICovCisJCWVsc2UgaWYgKHZyYW0g PT0gMHgwMikKKwkJCXJldHVybiAweDAwNDAwMDAwOyAgLyogaWxsZWdhbCwgZmFsbGJhY2sgdG8g NCBNQiAqLworCQllbHNlIGlmICh2cmFtID09IDB4MDMpCisJCQlyZXR1cm4gMHgwMDQwMDAwMDsg IC8qIDQgTUIgKi8KKwl9CisJcmV0dXJuIDA7ICAvKiB1bmtub3duIGhhcmR3YXJlICovCit9CisK IHN0YXRpYyBpbnQgc210Y2ZiX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJCSAg ICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogewogCXN0cnVjdCBzbXRjZmJfaW5m byAqc2ZiOwogCXN0cnVjdCBmYl9pbmZvICppbmZvOwotCXVfbG9uZyBzbWVtX3NpemUgPSAweDAw ODAwMDAwOwkvKiBkZWZhdWx0IDhNQiAqLworCXVfbG9uZyBzbWVtX3NpemU7CiAJaW50IGVycjsK IAl1bnNpZ25lZCBsb25nIG1taW9fYmFzZTsKIApAQCAtMTQzNywxMiArMTQ3NSwxNSBAQCBzdGF0 aWMgaW50IHNtdGNmYl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJbW1pb19iYXNl ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApOwogCXBjaV9yZWFkX2NvbmZpZ19ieXRlKHBk ZXYsIFBDSV9SRVZJU0lPTl9JRCwgJnNmYi0+Y2hpcF9yZXZfaWQpOwogCisJc21lbV9zaXplID0g c203eHhfdnJhbV9wcm9iZShzZmIpOworCWRldl9pbmZvKCZwZGV2LT5kZXYsICIlbHUgTWlCIG9m IFZSQU0gZGV0ZWN0ZWQuXG4iLAorCQkJCQlzbWVtX3NpemUgLyAxMDQ4NTc2KTsKKwogCXN3aXRj aCAoc2ZiLT5jaGlwX2lkKSB7CiAJY2FzZSAweDcxMDoKIAljYXNlIDB4NzEyOgogCQlzZmItPmZi LT5maXgubW1pb19zdGFydCA9IG1taW9fYmFzZSArIDB4MDA0MDAwMDA7CiAJCXNmYi0+ZmItPmZp eC5tbWlvX2xlbiA9IDB4MDA0MDAwMDA7Ci0JCXNtZW1fc2l6ZSA9IFNNNzEyX1ZJREVPTUVNT1JZ U0laRTsKIAkJc2ZiLT5sZmIgPSBpb3JlbWFwKG1taW9fYmFzZSwgbW1pb19hZGRyKTsKIAkJaWYg KCFzZmItPmxmYikgewogCQkJZGV2X2VycigmcGRldi0+ZGV2LApAQCAtMTQ3NCw4ICsxNTE1LDcg QEAgc3RhdGljIGludCBzbXRjZmJfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCWNh c2UgMHg3MjA6CiAJCXNmYi0+ZmItPmZpeC5tbWlvX3N0YXJ0ID0gbW1pb19iYXNlOwogCQlzZmIt PmZiLT5maXgubW1pb19sZW4gPSAweDAwMjAwMDAwOwotCQlzbWVtX3NpemUgPSBTTTcyMl9WSURF T01FTU9SWVNJWkU7Ci0JCXNmYi0+ZHBfcmVncyA9IGlvcmVtYXAobW1pb19iYXNlLCAweDAwYTAw MDAwKTsKKwkJc2ZiLT5kcF9yZWdzID0gaW9yZW1hcChtbWlvX2Jhc2UsIDB4MDAyMDAwMDAgKyBz bWVtX3NpemUpOwogCQlzZmItPmxmYiA9IHNmYi0+ZHBfcmVncyArIDB4MDAyMDAwMDA7CiAJCXNm Yi0+bW1pbyA9IChzbXRjX3JlZ2Jhc2VhZGRyZXNzID0KIAkJICAgIHNmYi0+ZHBfcmVncyArIDB4 MDAwYzAwMDApOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWw=