From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: [PATCH v2] drm/vkms: Fix race condition around accessing frame number Date: Tue, 4 Sep 2018 00:18:17 +0300 Message-ID: <20180903211743.GA2773@haneenDRM> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-x241.google.com (mail-qt0-x241.google.com [IPv6:2607:f8b0:400d:c0d::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6ED046E2BF for ; Mon, 3 Sep 2018 21:18:21 +0000 (UTC) Received: by mail-qt0-x241.google.com with SMTP id d4-v6so1821454qtn.13 for ; Mon, 03 Sep 2018 14:18:21 -0700 (PDT) Content-Disposition: inline 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 Cc: seanpaul@chromium.org, rodrigosiqueiramelo@gmail.com, hamohammed.sa@gmail.com List-Id: dri-devel@lists.freedesktop.org Y3J0Y19zdGF0ZSBpcyBhY2Nlc3NlZCBieSBib3RoIHZibGFua19oYW5kbGUoKSBhbmQgdGhlIG9y ZGVyZWQKd29ya19zdHJ1Y3QgaGFuZGxlIHZrbXNfY3JjX3dvcmtfaGFuZGxlKCkgdG8gcmV0cmll dmUgYW5kIG9yIHVwZGF0ZQp0aGUgZnJhbWUgbnVtYmVyIGZvciBjb21wdXRlZCBDUkMuCgpTaW5j ZSB3b3JrX3N0cnVjdCBjYW4gZmFpbCwgYWRkIGZyYW1lX2VuZCB0byBhY2NvdW50IGZvciBtaXNz aW5nIGZyYW1lCm51bWJlcnMuCgpVc2UgKGZyYW1lX1tzdGFydC9lbmRdKSBmb3Igc3luY2hyb25p emF0aW9uIGJldHdlZW4gaHJ0aW1lciBjYWxsYmFjawphbmQgb3JkZXJlZCB3b3JrX3N0cnVjdCBo YW5kbGUuCgpUaGlzIHBhdGNoIHBhc3NlcyB0aGUgZm9sbG93aW5nIHN1YnRlc3RzIGZyb20gaWd0 IGttc19waXBlX2NyY19iYXNpYyB0ZXN0OgpiYWQtc291cmNlLCByZWFkLWNyYy1waXBlLUEsIHJl YWQtY3JjLXBpcGUtQS1mcmFtZS1zZXF1ZW5jZSwKbm9uYmxvY2tpbmctY3JjLXBpcGUtQSwgbm9u YmxvY2tpbmctY3JjLXBpcGUtQS1mcmFtZS1zZXF1ZW5jZQoKU2lnbmVkLW9mZi1ieTogSGFuZWVu IE1vaGFtbWVkIDxoYW1vaGFtbWVkLnNhQGdtYWlsLmNvbT4KLS0tCnYyOgotIHVzZSB1NjQgd2l0 aCBzcGlubG9jayBpbnN0ZWFkIG9mIGF0b21pY190Ci0gYWRkIG91dCBsYWJlbCBmb3IgY29tbW9u IGV4aXQgcm91dGluZSBAdmttc19jcmNfd29ya19oYW5kbGUoKQoKIGRyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfY3JjLmMgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGRy aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jIHwgMTYgKysrKysrKysrKysrLS0KIGRyaXZl cnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggIHwgIDggKysrKystLQogMyBmaWxlcyBjaGFuZ2Vk LCA1NCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5j CmluZGV4IGVkNDdkNjdjZWNkNi4uNjhkYjQyZjE1MDg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdmttcy92a21zX2NyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3Jj LmMKQEAgLTM0LDYgKzM0LDE1IEBAIHN0YXRpYyB1aW50MzJfdCBfdmttc19nZXRfY3JjKHN0cnVj dCB2a21zX2NyY19kYXRhICpjcmNfZGF0YSkKIAlyZXR1cm4gY3JjOwogfQogCisvKioKKyAqIHZr bXNfY3JjX3dvcmtfaGFuZGxlIC0gb3JkZXJlZCB3b3JrX3N0cnVjdCB0byBjb21wdXRlIENSQwor ICoKKyAqIEB3b3JrOiB3b3JrX3N0cnVjdAorICoKKyAqIFdvcmsgaGFuZGxlciBmb3IgY29tcHV0 aW5nIENSQ3MuIHdvcmtfc3RydWN0IHNjaGVkdWxlZCBpbgorICogYW4gb3JkZXJlZCB3b3JrcXVl dWUgdGhhdCdzIHBlcmlvZGljYWxseSBzY2hlZHVsZWQgdG8gcnVuIGJ5CisgKiBfdmJsYW5rX2hh bmRsZSgpIGFuZCBmbHVzaGVkIGF0IHZrbXNfYXRvbWljX2NydGNfZGVzdHJveV9zdGF0ZSgpLgor ICovCiB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IHsKIAlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gY29udGFpbmVyX29mKHdv cmssCkBAIC00NSw4ICs1NCwxOCBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKIAkJCQkJCW91dHB1dCk7CiAJc3RydWN0IHZrbXNfY3JjX2RhdGEg KnByaW1hcnlfY3JjID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKLQogCXUzMiBj cmMzMiA9IDA7CisJdTY0IGZyYW1lX3N0YXJ0LCBmcmFtZV9lbmQ7CisJdW5zaWduZWQgbG9uZyBm bGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZvdXQtPnN0YXRlX2xvY2ssIGZsYWdzKTsKKwlm cmFtZV9zdGFydCA9IGNydGNfc3RhdGUtPmZyYW1lX3N0YXJ0OworCWZyYW1lX2VuZCA9IGNydGNf c3RhdGUtPmZyYW1lX2VuZDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZvdXQtPnN0YXRlX2xv Y2ssIGZsYWdzKTsKKworCS8qIF92YmxhbmtfaGFuZGxlKCkgaGFzbid0IHVwZGF0ZWQgZnJhbWVf c3RhcnQgeWV0ICovCisJaWYgKCFmcmFtZV9zdGFydCB8fCBmcmFtZV9zdGFydCA9PSBmcmFtZV9l bmQpCisJCWdvdG8gb3V0OwogCiAJZHJtX2Zvcl9lYWNoX3BsYW5lKHBsYW5lLCAmdmRldi0+ZHJt KSB7CiAJCXN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2cGxhbmVfc3RhdGU7CkBAIC02Nyw3ICs4 NiwyMCBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAlpZiAocHJpbWFyeV9jcmMpCiAJCWNyYzMyID0gX3ZrbXNfZ2V0X2NyYyhwcmltYXJ5X2Ny Yyk7CiAKLQlkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KGNydGMsIHRydWUsIGNydGNfc3RhdGUtPm5f ZnJhbWUsICZjcmMzMik7CisJZnJhbWVfZW5kID0gZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2Nv dW50KGNydGMpOworCisJLyogcXVldWVfd29yayBjYW4gZmFpbCB0byBzY2hlZHVsZSBjcmNfd29y azsgYWRkIGNyYyBmb3IKKwkgKiBtaXNzaW5nIGZyYW1lcworCSAqLworCXdoaWxlIChmcmFtZV9z dGFydCA8PSBmcmFtZV9lbmQpCisJCWRybV9jcnRjX2FkZF9jcmNfZW50cnkoY3J0YywgdHJ1ZSwg ZnJhbWVfc3RhcnQrKywgJmNyYzMyKTsKKworb3V0OgorCS8qIHRvIGF2b2lkIHVzaW5nIHRoZSBz YW1lIHZhbHVlIGZvciBmcmFtZSBudW1iZXIgYWdhaW4gKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgm b3V0LT5zdGF0ZV9sb2NrLCBmbGFncyk7CisJY3J0Y19zdGF0ZS0+ZnJhbWVfZW5kID0gZnJhbWVf ZW5kOworCWNydGNfc3RhdGUtPmZyYW1lX3N0YXJ0ID0gMDsKKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZvdXQtPnN0YXRlX2xvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIGludCB2a21zX2NyY19w YXJzZV9zb3VyY2UoY29uc3QgY2hhciAqc3JjX25hbWUsIGJvb2wgKmVuYWJsZWQpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfY3J0Yy5jCmluZGV4IDlkMGIxYTMyNWE3OC4uMTc3YmJjYjM4MzA2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX2NydGMuYwpAQCAtMjIsOCArMjIsMTkgQEAgc3RhdGljIHZvaWQgX3ZibGFu a19oYW5kbGUoc3RydWN0IHZrbXNfb3V0cHV0ICpvdXRwdXQpCiAJCURSTV9FUlJPUigidmttcyBm YWlsdXJlIG9uIGhhbmRsaW5nIHZibGFuayIpOwogCiAJaWYgKHN0YXRlICYmIG91dHB1dC0+Y3Jj X2VuYWJsZWQpIHsKLQkJc3RhdGUtPm5fZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0ZV92Ymxhbmtf Y291bnQoY3J0Yyk7Ci0JCXF1ZXVlX3dvcmsob3V0cHV0LT5jcmNfd29ya3EsICZzdGF0ZS0+Y3Jj X3dvcmspOworCQl1NjQgZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0ZV92YmxhbmtfY291bnQoY3J0 Yyk7CisKKwkJLyogdXBkYXRlIGZyYW1lX3N0YXJ0IG9ubHkgaWYgYSBxdWV1ZWQgdmttc19jcmNf d29ya19oYW5kbGUoKQorCQkgKiBoYXMgcmVhZCB0aGUgZGF0YQorCQkgKi8KKwkJc3Bpbl9sb2Nr KCZvdXRwdXQtPnN0YXRlX2xvY2spOworCQlpZiAoIXN0YXRlLT5mcmFtZV9zdGFydCkKKwkJCXN0 YXRlLT5mcmFtZV9zdGFydCA9IGZyYW1lOworCQlzcGluX3VubG9jaygmb3V0cHV0LT5zdGF0ZV9s b2NrKTsKKworCQlyZXQgPSBxdWV1ZV93b3JrKG91dHB1dC0+Y3JjX3dvcmtxLCAmc3RhdGUtPmNy Y193b3JrKTsKKwkJaWYgKCFyZXQpCisJCQlEUk1fV0FSTigiZmFpbGVkIHRvIHF1ZXVlIHZrbXNf Y3JjX3dvcmtfaGFuZGxlIik7CiAJfQogCiAJc3Bpbl91bmxvY2soJm91dHB1dC0+bG9jayk7CkBA IC0yMTEsNiArMjIyLDcgQEAgaW50IHZrbXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZ2 a21zX2NydGNfaGVscGVyX2Z1bmNzKTsKIAogCXNwaW5fbG9ja19pbml0KCZ2a21zX291dC0+bG9j ayk7CisJc3Bpbl9sb2NrX2luaXQoJnZrbXNfb3V0LT5zdGF0ZV9sb2NrKTsKIAogCXZrbXNfb3V0 LT5jcmNfd29ya3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgidmttc19jcmNfd29ya3EiLCAw KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKaW5kZXggMjAxN2EyY2NjNDNkLi44MGFmNmQzYTY1 ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaApAQCAtMzksMTIgKzM5LDE0IEBAIHN0cnVjdCB2 a21zX3BsYW5lX3N0YXRlIHsKICAqIHZrbXNfY3J0Y19zdGF0ZSAtIERyaXZlciBzcGVjaWZpYyBD UlRDIHN0YXRlCiAgKiBAYmFzZTogYmFzZSBDUlRDIHN0YXRlCiAgKiBAY3JjX3dvcms6IHdvcmsg c3RydWN0IHRvIGNvbXB1dGUgYW5kIGFkZCBDUkMgZW50cmllcwotICogQG5fZnJhbWU6IGZyYW1l IG51bWJlciBmb3IgY29tcHV0ZWQgQ1JDCisgKiBAbl9mcmFtZV9zdGFydDogc3RhcnQgZnJhbWUg bnVtYmVyIGZvciBjb21wdXRlZCBDUkMKKyAqIEBuX2ZyYW1lX2VuZDogZW5kIGZyYW1lIG51bWJl ciBmb3IgY29tcHV0ZWQgQ1JDCiAgKi8KIHN0cnVjdCB2a21zX2NydGNfc3RhdGUgewogCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSBiYXNlOwogCXN0cnVjdCB3b3JrX3N0cnVjdCBjcmNfd29yazsKLQl1 bnNpZ25lZCBpbnQgbl9mcmFtZTsKKwl1NjQgZnJhbWVfc3RhcnQ7CisJdTY0IGZyYW1lX2VuZDsK IH07CiAKIHN0cnVjdCB2a21zX291dHB1dCB7CkBAIC01OSw2ICs2MSw4IEBAIHN0cnVjdCB2a21z X291dHB1dCB7CiAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmNyY193b3JrcTsKIAkvKiBwcm90 ZWN0cyBjb25jdXJyZW50IGFjY2VzcyB0byBjcmNfZGF0YSAqLwogCXNwaW5sb2NrX3QgbG9jazsK KwkvKiBwcm90ZWN0cyBjb25jdXJyZW50IGFjY2VzcyB0byBjcnRjX3N0YXRlICovCisJc3Bpbmxv Y2tfdCBzdGF0ZV9sb2NrOwogfTsKIAogc3RydWN0IHZrbXNfZGV2aWNlIHsKLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==