From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 5.2 37/59] drm/vgem: fix cache synchronization on arm/arm64 Date: Tue, 6 Aug 2019 17:32:57 -0400 Message-ID: <20190806213319.19203-37-sashal@kernel.org> References: <20190806213319.19203-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 76EA16E566 for ; Tue, 6 Aug 2019 21:34:31 +0000 (UTC) In-Reply-To: <20190806213319.19203-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: Rob Clark , Daniel Vetter , Sean Paul , dri-devel@lists.freedesktop.org, Sasha Levin List-Id: dri-devel@lists.freedesktop.org RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgoKWyBVcHN0cmVhbSBjb21t aXQgN2U5ZTVlYWQ1NWJlYWNjMTExMTZiM2ZiOTBiMGRlNmU3Y2Y1NWE2OSBdCgpkcm1fY2ZsdXNo X3BhZ2VzKCkgaXMgbm8tb3Agb24gYXJtL2FybTY0LiAgQnV0IGluc3RlYWQgd2UgY2FuIHVzZQpk bWFfc3luYyBBUEkuCgpGaXhlcyBmYWlsdXJlcyB3LyB2Z2VtX3Rlc3QuCgpBY2tlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogUm9iIENs YXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNl YW5wYXVsQGNocm9taXVtLm9yZz4KTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Au b3JnL3BhdGNoL21zZ2lkLzIwMTkwNzE3MjExNTQyLjMwNDgyLTEtcm9iZGNsYXJrQGdtYWlsLmNv bQpTaWduZWQtb2ZmLWJ5OiBTYXNoYSBMZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQogZHJp dmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuYyB8IDEzMCArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jCmluZGV4IDExYThmOTliYTE4YzUuLmZjMDQ4MDNm ZjQwMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuYwpAQCAtNDcsMTAgKzQ3LDE2IEBAIHN0YXRp YyBzdHJ1Y3QgdmdlbV9kZXZpY2UgewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3Jt OwogfSAqdmdlbV9kZXZpY2U7CiAKK3N0YXRpYyB2b2lkIHN5bmNfYW5kX3VucGluKHN0cnVjdCBk cm1fdmdlbV9nZW1fb2JqZWN0ICpibyk7CitzdGF0aWMgc3RydWN0IHBhZ2UgKipwaW5fYW5kX3N5 bmMoc3RydWN0IGRybV92Z2VtX2dlbV9vYmplY3QgKmJvKTsKKwogc3RhdGljIHZvaWQgdmdlbV9n ZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IGRy bV92Z2VtX2dlbV9vYmplY3QgKnZnZW1fb2JqID0gdG9fdmdlbV9ibyhvYmopOwogCisJaWYgKCFv YmotPmltcG9ydF9hdHRhY2gpCisJCXN5bmNfYW5kX3VucGluKHZnZW1fb2JqKTsKKwogCWt2ZnJl ZSh2Z2VtX29iai0+cGFnZXMpOwogCW11dGV4X2Rlc3Ryb3koJnZnZW1fb2JqLT5wYWdlc19sb2Nr KTsKIApAQCAtNzgsNDAgKzg0LDE1IEBAIHN0YXRpYyB2bV9mYXVsdF90IHZnZW1fZ2VtX2ZhdWx0 KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOwogCiAJbXV0 ZXhfbG9jaygmb2JqLT5wYWdlc19sb2NrKTsKKwlpZiAoIW9iai0+cGFnZXMpCisJCXBpbl9hbmRf c3luYyhvYmopOwogCWlmIChvYmotPnBhZ2VzKSB7CiAJCWdldF9wYWdlKG9iai0+cGFnZXNbcGFn ZV9vZmZzZXRdKTsKIAkJdm1mLT5wYWdlID0gb2JqLT5wYWdlc1twYWdlX29mZnNldF07CiAJCXJl dCA9IDA7CiAJfQogCW11dGV4X3VubG9jaygmb2JqLT5wYWdlc19sb2NrKTsKLQlpZiAocmV0KSB7 Ci0JCXN0cnVjdCBwYWdlICpwYWdlOwotCi0JCXBhZ2UgPSBzaG1lbV9yZWFkX21hcHBpbmdfcGFn ZSgKLQkJCQkJZmlsZV9pbm9kZShvYmotPmJhc2UuZmlscCktPmlfbWFwcGluZywKLQkJCQkJcGFn ZV9vZmZzZXQpOwotCQlpZiAoIUlTX0VSUihwYWdlKSkgewotCQkJdm1mLT5wYWdlID0gcGFnZTsK LQkJCXJldCA9IDA7Ci0JCX0gZWxzZSBzd2l0Y2ggKFBUUl9FUlIocGFnZSkpIHsKLQkJCWNhc2Ug LUVOT1NQQzoKLQkJCWNhc2UgLUVOT01FTToKLQkJCQlyZXQgPSBWTV9GQVVMVF9PT007Ci0JCQkJ YnJlYWs7Ci0JCQljYXNlIC1FQlVTWToKLQkJCQlyZXQgPSBWTV9GQVVMVF9SRVRSWTsKLQkJCQli cmVhazsKLQkJCWNhc2UgLUVGQVVMVDoKLQkJCWNhc2UgLUVJTlZBTDoKLQkJCQlyZXQgPSBWTV9G QVVMVF9TSUdCVVM7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJCVdBUk5fT04oUFRSX0VS UihwYWdlKSk7Ci0JCQkJcmV0ID0gVk1fRkFVTFRfU0lHQlVTOwotCQkJCWJyZWFrOwotCQl9CiAK LQl9CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMjc3LDMyICsyNTgsOTMgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmdlbV9kcml2ZXJfZm9wcyA9IHsKIAkucmVsZWFzZQk9 IGRybV9yZWxlYXNlLAogfTsKIAotc3RhdGljIHN0cnVjdCBwYWdlICoqdmdlbV9waW5fcGFnZXMo c3RydWN0IGRybV92Z2VtX2dlbV9vYmplY3QgKmJvKQorLyogQ2FsbGVkIHVuZGVyIHBhZ2VzX2xv Y2ssIGV4Y2VwdCBpbiBmcmVlIHBhdGggKHdoZXJlIGl0IGNhbid0IHJhY2UpOiAqLworc3RhdGlj IHZvaWQgc3luY19hbmRfdW5waW4oc3RydWN0IGRybV92Z2VtX2dlbV9vYmplY3QgKmJvKQogewot CW11dGV4X2xvY2soJmJvLT5wYWdlc19sb2NrKTsKLQlpZiAoYm8tPnBhZ2VzX3Bpbl9jb3VudCsr ID09IDApIHsKLQkJc3RydWN0IHBhZ2UgKipwYWdlczsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gYm8tPmJhc2UuZGV2OworCisJaWYgKGJvLT50YWJsZSkgeworCQlkbWFfc3luY19zZ19mb3Jf Y3B1KGRldi0+ZGV2LCBiby0+dGFibGUtPnNnbCwKKwkJCQliby0+dGFibGUtPm5lbnRzLCBETUFf QklESVJFQ1RJT05BTCk7CisJCXNnX2ZyZWVfdGFibGUoYm8tPnRhYmxlKTsKKwkJa2ZyZWUoYm8t PnRhYmxlKTsKKwkJYm8tPnRhYmxlID0gTlVMTDsKKwl9CisKKwlpZiAoYm8tPnBhZ2VzKSB7CisJ CWRybV9nZW1fcHV0X3BhZ2VzKCZiby0+YmFzZSwgYm8tPnBhZ2VzLCB0cnVlLCB0cnVlKTsKKwkJ Ym8tPnBhZ2VzID0gTlVMTDsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqKnBpbl9hbmRf c3luYyhzdHJ1Y3QgZHJtX3ZnZW1fZ2VtX29iamVjdCAqYm8pCit7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGJvLT5iYXNlLmRldjsKKwlpbnQgbnBhZ2VzID0gYm8tPmJhc2Uuc2l6ZSA+PiBQ QUdFX1NISUZUOworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisJc3RydWN0IHNnX3RhYmxlICpzZ3Q7 CisKKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmJvLT5wYWdlc19sb2NrKSk7CisKKwlwYWdl cyA9IGRybV9nZW1fZ2V0X3BhZ2VzKCZiby0+YmFzZSk7CisJaWYgKElTX0VSUihwYWdlcykpIHsK KwkJYm8tPnBhZ2VzX3Bpbl9jb3VudC0tOworCQltdXRleF91bmxvY2soJmJvLT5wYWdlc19sb2Nr KTsKKwkJcmV0dXJuIHBhZ2VzOworCX0KIAotCQlwYWdlcyA9IGRybV9nZW1fZ2V0X3BhZ2VzKCZi by0+YmFzZSk7Ci0JCWlmIChJU19FUlIocGFnZXMpKSB7Ci0JCQliby0+cGFnZXNfcGluX2NvdW50 LS07Ci0JCQltdXRleF91bmxvY2soJmJvLT5wYWdlc19sb2NrKTsKLQkJCXJldHVybiBwYWdlczsK LQkJfQorCXNndCA9IGRybV9wcmltZV9wYWdlc190b19zZyhwYWdlcywgbnBhZ2VzKTsKKwlpZiAo SVNfRVJSKHNndCkpIHsKKwkJZGV2X2VycihkZXYtPmRldiwKKwkJCSJmYWlsZWQgdG8gYWxsb2Nh dGUgc2d0OiAlbGRcbiIsCisJCQlQVFJfRVJSKGJvLT50YWJsZSkpOworCQlkcm1fZ2VtX3B1dF9w YWdlcygmYm8tPmJhc2UsIHBhZ2VzLCBmYWxzZSwgZmFsc2UpOworCQltdXRleF91bmxvY2soJmJv LT5wYWdlc19sb2NrKTsKKwkJcmV0dXJuIEVSUl9DQVNUKGJvLT50YWJsZSk7CisJfQorCisJLyoK KwkgKiBGbHVzaCB0aGUgb2JqZWN0IGZyb20gdGhlIENQVSBjYWNoZSBzbyB0aGF0IGltcG9ydGVy cworCSAqIGNhbiByZWx5IG9uIGNvaGVyZW50IGluZGlyZWN0IGFjY2VzcyB2aWEgdGhlIGV4cG9y dGVkCisJICogZG1hLWFkZHJlc3MuCisJICovCisJZG1hX3N5bmNfc2dfZm9yX2RldmljZShkZXYt PmRldiwgc2d0LT5zZ2wsCisJCQlzZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7CisKKwli by0+cGFnZXMgPSBwYWdlczsKKwliby0+dGFibGUgPSBzZ3Q7CisKKwlyZXR1cm4gcGFnZXM7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqKnZnZW1fcGluX3BhZ2VzKHN0cnVjdCBkcm1fdmdlbV9n ZW1fb2JqZWN0ICpibykKK3sKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwogCi0JCWJvLT5wYWdlcyA9 IHBhZ2VzOworCW11dGV4X2xvY2soJmJvLT5wYWdlc19sb2NrKTsKKwlpZiAoYm8tPnBhZ2VzX3Bp bl9jb3VudCsrID09IDAgJiYgIWJvLT5wYWdlcykgeworCQlwYWdlcyA9IHBpbl9hbmRfc3luYyhi byk7CisJfSBlbHNlIHsKKwkJV0FSTl9PTighYm8tPnBhZ2VzKTsKKwkJcGFnZXMgPSBiby0+cGFn ZXM7CiAJfQogCW11dGV4X3VubG9jaygmYm8tPnBhZ2VzX2xvY2spOwogCi0JcmV0dXJuIGJvLT5w YWdlczsKKwlyZXR1cm4gcGFnZXM7CiB9CiAKIHN0YXRpYyB2b2lkIHZnZW1fdW5waW5fcGFnZXMo c3RydWN0IGRybV92Z2VtX2dlbV9vYmplY3QgKmJvKQogeworCS8qCisJICogV2Ugc2hvdWxkbid0 IGhpdCB0aGlzIGZvciBpbXBvcnRlZCBibydzLi4gaW4gdGhlIGltcG9ydAorCSAqIGNhc2Ugd2Ug ZG9uJ3Qgb3duIHRoZSBzY2F0dGVyLXRhYmxlCisJICovCisJV0FSTl9PTihiby0+YmFzZS5pbXBv cnRfYXR0YWNoKTsKKwogCW11dGV4X2xvY2soJmJvLT5wYWdlc19sb2NrKTsKIAlpZiAoLS1iby0+ cGFnZXNfcGluX2NvdW50ID09IDApIHsKLQkJZHJtX2dlbV9wdXRfcGFnZXMoJmJvLT5iYXNlLCBi by0+cGFnZXMsIHRydWUsIHRydWUpOwotCQliby0+cGFnZXMgPSBOVUxMOworCQlXQVJOX09OKCFi by0+dGFibGUpOworCQlzeW5jX2FuZF91bnBpbihibyk7CiAJfQogCW11dGV4X3VubG9jaygmYm8t PnBhZ2VzX2xvY2spOwogfQpAQCAtMzEwLDE4ICszNTIsMTIgQEAgc3RhdGljIHZvaWQgdmdlbV91 bnBpbl9wYWdlcyhzdHJ1Y3QgZHJtX3ZnZW1fZ2VtX29iamVjdCAqYm8pCiBzdGF0aWMgaW50IHZn ZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBkcm1f dmdlbV9nZW1fb2JqZWN0ICpibyA9IHRvX3ZnZW1fYm8ob2JqKTsKLQlsb25nIG5fcGFnZXMgPSBv YmotPnNpemUgPj4gUEFHRV9TSElGVDsKIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwogCiAJcGFnZXMg PSB2Z2VtX3Bpbl9wYWdlcyhibyk7CiAJaWYgKElTX0VSUihwYWdlcykpCiAJCXJldHVybiBQVFJf RVJSKHBhZ2VzKTsKIAotCS8qIEZsdXNoIHRoZSBvYmplY3QgZnJvbSB0aGUgQ1BVIGNhY2hlIHNv IHRoYXQgaW1wb3J0ZXJzIGNhbiByZWx5Ci0JICogb24gY29oZXJlbnQgaW5kaXJlY3QgYWNjZXNz IHZpYSB0aGUgZXhwb3J0ZWQgZG1hLWFkZHJlc3MuCi0JICovCi0JZHJtX2NsZmx1c2hfcGFnZXMo cGFnZXMsIG5fcGFnZXMpOwotCiAJcmV0dXJuIDA7CiB9CiAKLS0gCjIuMjAuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs