From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/vkms: Fix race condition around accessing frame number Date: Mon, 3 Sep 2018 09:29:15 +0200 Message-ID: <20180903072915.GZ21634@phenom.ffwll.local> References: <20180823231634.GA17011@haneenDRM> <20180831084140.GO21634@phenom.ffwll.local> <20180901175352.GA14348@haneenDRM> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id B41E66E177 for ; Mon, 3 Sep 2018 07:29:19 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id y20-v6so33047edq.2 for ; Mon, 03 Sep 2018 00:29:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180901175352.GA14348@haneenDRM> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Haneen Mohammed Cc: rodrigosiqueiramelo@gmail.com, seanpaul@chromium.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBTZXAgMDEsIDIwMTggYXQgMDg6NTM6NTJQTSArMDMwMCwgSGFuZWVuIE1vaGFtbWVk IHdyb3RlOgo+IE9uIEZyaSwgQXVnIDMxLCAyMDE4IGF0IDEwOjQxOjQwQU0gKzAyMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBGcmksIEF1ZyAyNCwgMjAxOCBhdCAwMjoxNjozNEFNICsw MzAwLCBIYW5lZW4gTW9oYW1tZWQgd3JvdGU6Cj4gPiA+IGNydGNfc3RhdGUgaXMgYWNjZXNzZWQg YnkgYm90aCB2YmxhbmtfaGFuZGxlKCkgYW5kIHRoZSBvcmRlcmVkCj4gPiA+IHdvcmtfc3RydWN0 IGhhbmRsZSB2a21zX2NyY193b3JrX2hhbmRsZSgpIHRvIHJldHJpZXZlIGFuZCBvciB1cGRhdGUK PiA+ID4gdGhlIGZyYW1lIG51bWJlciBmb3IgY29tcHV0ZWQgQ1JDLgo+ID4gPiAKPiA+ID4gU2lu Y2Ugd29ya19zdHJ1Y3QgY2FuIGZhaWwsIGFkZCBmcmFtZV9lbmQgdG8gYWNjb3VudCBmb3IgbWlz c2luZyBmcmFtZQo+ID4gPiBudW1iZXJzLgo+ID4gPiAKPiA+ID4gdXNlIGF0b21pY190IHdpdHRo IGFwcHJvcHJpYXRlIGZsYWdzIGZvciBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBocnRpbWVyCj4g PiA+IGNhbGxiYWNrIGFuZCBvcmRlcmVkIHdvcmtfc3RydWN0IGhhbmRsZSBzaW5jZSBzcGlubG9j ayBjYW4ndCBiZSB1c2VkCj4gPiA+IHdpdGggd29ya19zdHJ1Y3QgaGFuZGxlIGFuZCBtdXRleCBj YW4ndCBiZSB1c2VkIHdpdGggaHJ0aW1lciBjYWxsYmFjay4KPiA+ID4gCj4gPiA+IFRoaXMgcGF0 Y2ggcGFzc2VzIHRoZSBmb2xsb3dpbmcgc3VidGVzdHMgZnJvbSBpZ3Qga21zX3BpcGVfY3JjX2Jh c2ljIHRlc3Q6Cj4gPiA+IGJhZC1zb3VyY2UsIHJlYWQtY3JjLXBpcGUtQSwgcmVhZC1jcmMtcGlw ZS1BLWZyYW1lLXNlcXVlbmNlLAo+ID4gPiBub25ibG9ja2luZy1jcmMtcGlwZS1BLCBub25ibG9j a2luZy1jcmMtcGlwZS1BLWZyYW1lLXNlcXVlbmNlCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBIYW5lZW4gTW9oYW1tZWQgPGhhbW9oYW1tZWQuc2FAZ21haWwuY29tPgo+ID4gCj4gPiBTbyBh dG9taWNfdCBpcyBwcm9iYWJseSB0aGUgZ3JlYXRlc3QgdHJhcCBpbiB0aGUgbGludXgga2VybmVs LiBJdCBzb3VuZHMKPiA+IGxpa2UgdGhlIHJpZ2h0IHRoaW5nLCBidXQgaW4gOTklIG9mIGFsbCBj YXNlIHlvdSB3YW50IHRvIHVzZSBpdCBpdCBpc24ndC4KPiA+IFRoZSB0cm91YmxlIGlzIHRoYXQg YXRvbWljX3QgaXMgX3ZlcnlfIHVub3JkZXJlZCwgdGhlIG9ubHkgdGhpbmcgaXQKPiA+IGd1YXJh bnRlZXMgaXMgdGhhdCBhdG9taWNfdCB0cmFuc2FjdGlvbnMgdG8gdGhlIF9zYW1lXyB2YXJpYWJs ZSBhcmUKPiA+IGNvbnNpc3RlbnQuIEJ1dCBhbnl0aGluZyBlbHNlIGNhbiBiZSByZW9yZGVyZWQg YXQgd2lsbC4KPiA+IAo+ID4gVGhpcyBpcyB2ZXJ5IGNvbmZ1c2luZyBzaW5jZSB0aGUgbmV3IEMr KyBhdG9taWMgc3RhbmRhcmRzIGhhcyBmdWxseQo+ID4gb3JkZXJlZCBhdG9taWNzIGFzIHRoZSBk ZWZhdWx0LCBhbmQgeW91IGV4cHJlc3NlZGx5IG5lZWQgdG8gYXNrIGZvciB0aGUKPiA+IHdlYWts eSBvcmRlcmVkIG9uZXMuIEluIGxpbnV4IHlvdSBuZWVkIHRvIHNwcmlua2xlIGVwaWMgYW1vdW50 cyBvZgo+ID4gc21iX2JhcnJpZXIqIGFuZCBzaW1pbGFyIHRoaW5ncyBhcm91bmQgdGhlbSB0byBt YWtlIGF0b21pY190IGJlaGF2ZSBsaWtlIGEKPiA+ICJub3JtYWwiIEMrKyBhdG9taWMgdHlwZS4K PiA+IAo+ID4gdGxkcjsgYXRvbWljX3QgaXMgZ29vZCBmb3Igc3BlY2lhbCByZWZjb3VudGluZyBu ZWVkcywgd2hlbiB0aGUgbm9ybWFsCj4gPiByZWZjb3VudF90IGRvZXNuJ3QgY3V0IGl0LiBOb3Qg bXVjaCBlbHNlLgo+ID4gCj4gPiBXaGF0IHVzdWFsbHkgc2hvdWxkIGJlIGRvbmU6Cj4gPiAtIFVz ZSBub3JtYWwgdTY0ICh0byBtYXRjaCB0aGUgdmJsYW5rIGNvdW50ZXIgc2l6ZSkgaW5zdGVhZCBv ZiBhdG9taWNfdAo+ID4gICBoZXJlLgo+ID4gLSBNYWtlIHN1cmUgYWxsIGFjY2VzcyBpcyBwcm90 ZWN0IGJ5IGFuIGFwcHJvcHJpYXRlIHNwaW5sb2NrLgo+ID4gCj4gCj4gSSBzZWUsIHRoYW5rcyBm b3IgdGhlIGV4cGxhbmF0aW9uIQo+IAo+IGhtIHdvdWxkIHRoZSBwYXRjaCBiZSBmaW5lIGlmIEkg anVzdCBzd2l0Y2ggYXRvbWljX3QgdG8gdTY0IHdpdGhvdXQKPiB1c2luZyBzcGlubG9jaz8gc2lu Y2UgdGhhdCB3b24ndCBiZSBwb3NzaWJsZSB3aXRoIHRoZSB3b3JrX3N0cnVjdC4KCldoeSBjYW4n dCB5b3UgdXNlIHRoZSBzcGluX2xvY2sgZnJvbSB0aGUgd29ya2VyPyBZb3UgbmVlZCB0aGUKc3Bp bl9sb2NrX2lycSB2YXJpYW50LCBwbHVzIGEgYml0IG9mIHBvaW50ZXIgY2hhc2luZywgYnV0IHNo b3VsZCBiZSBkb2FibGUKLi4uCgpDaGVlcnMsIERhbmllbAoKPiAKPiBUaGFua3MsCj4gSGFuZWVu Cj4gCj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcmMuYyAgfCAz MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19jcnRjLmMgfCAxMyArKysrKysrKysrKy0tCj4gPiA+ICBkcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX2Rydi5oICB8ICA2ICsrKystLQo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA0 NiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2NyYy5jCj4gPiA+IGluZGV4IGVkNDdkNjdjZWNkNi4uNGExYmE1Yjc4ODZhIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NyYy5jCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3JjLmMKPiA+ID4gQEAgLTM0LDYgKzM0LDE1IEBAIHN0 YXRpYyB1aW50MzJfdCBfdmttc19nZXRfY3JjKHN0cnVjdCB2a21zX2NyY19kYXRhICpjcmNfZGF0 YSkKPiA+ID4gIAlyZXR1cm4gY3JjOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICsvKioKPiA+ID4g KyAqIHZrbXNfY3JjX3dvcmtfaGFuZGxlIC0gb3JkZXJlZCB3b3JrX3N0cnVjdCB0byBjb21wdXRl IENSQwo+ID4gPiArICoKPiA+ID4gKyAqIEB3b3JrOiB3b3JrX3N0cnVjdAo+ID4gPiArICoKPiA+ ID4gKyAqIFdvcmsgaGFuZGxlciBmb3IgY29tcHV0aW5nIENSQ3MuIHdvcmtfc3RydWN0IHNjaGVk dWxlZCBpbgo+ID4gPiArICogYW4gb3JkZXJlZCB3b3JrcXVldWUgdGhhdCdzIHBlcmlvZGljYWxs eSBzY2hlZHVsZWQgdG8gcnVuIGJ5Cj4gPiA+ICsgKiBfdmJsYW5rX2hhbmRsZSgpIGFuZCBmbHVz aGVkIGF0IHZrbXNfYXRvbWljX2NydGNfZGVzdHJveV9zdGF0ZSgpLgo+ID4gPiArICovCj4gPiA+ ICB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ ID4gIHsKPiA+ID4gIAlzdHJ1Y3Qgdmttc19jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gY29udGFp bmVyX29mKHdvcmssCj4gPiA+IEBAIC00NSw4ICs1NCwxOCBAQCB2b2lkIHZrbXNfY3JjX3dvcmtf aGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ID4gIAkJCQkJCW91dHB1dCk7Cj4g PiA+ICAJc3RydWN0IHZrbXNfY3JjX2RhdGEgKnByaW1hcnlfY3JjID0gTlVMTDsKPiA+ID4gIAlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ID4gLQo+ID4gPiAgCXUzMiBjcmMzMiA9IDA7Cj4g PiA+ICsJdTMyIGZyYW1lX3N0YXJ0LCBmcmFtZV9lbmQ7Cj4gPiA+ICsKPiA+ID4gKwlmcmFtZV9z dGFydCA9IGF0b21pY19yZWFkKCZjcnRjX3N0YXRlLT5mcmFtZV9zdGFydCk7Cj4gPiA+ICsJZnJh bWVfZW5kID0gYXRvbWljX3JlYWQoJmNydGNfc3RhdGUtPmZyYW1lX2VuZCk7Cj4gPiA+ICsJLyog X3ZibGFua19oYW5kbGUoKSBoYXNuJ3QgdXBkYXRlZCBmcmFtZV9zdGFydCB5ZXQgKi8KPiA+ID4g KwlpZiAoIWZyYW1lX3N0YXJ0KSB7Cj4gPiAKPiA+IEkgdGhpbmsgaWYgd2UgZ28gd2l0aCB1NjQg d2UgY2FuIGlnbm9yZSB0aGUgaXNzdWVzIGZvciB3cmFwLWFycm91bmQsIHNpbmNlCj4gPiB0aGF0 IHdpbGwgc2ltcGx5IG5ldmVyIGhhcHBlbi4gQnV0IGEgY29tbWVudCB3b3VsZCBiZSBnb29kLgo+ ID4gCj4gPiBBc2lkZSBmcm9tIHRoZSBhdG9taWNfdCBpc3N1ZSBJIHRoaW5rIHRoaXMgbG9va3Mg Z29vZC4KPiA+IC1EYW5pZWwKPiA+IAo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsJfSBlbHNlIGlm IChmcmFtZV9zdGFydCA9PSBmcmFtZV9lbmQpIHsKPiA+ID4gKwkJYXRvbWljX3NldCgmY3J0Y19z dGF0ZS0+ZnJhbWVfc3RhcnQsIDApOwo+ID4gPiArCQlyZXR1cm47Cj4gPiA+ICsJfQo+ID4gPiAg Cj4gPiA+ICAJZHJtX2Zvcl9lYWNoX3BsYW5lKHBsYW5lLCAmdmRldi0+ZHJtKSB7Cj4gPiA+ICAJ CXN0cnVjdCB2a21zX3BsYW5lX3N0YXRlICp2cGxhbmVfc3RhdGU7Cj4gPiA+IEBAIC02Nyw3ICs4 NiwxNyBAQCB2b2lkIHZrbXNfY3JjX3dvcmtfaGFuZGxlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKPiA+ID4gIAlpZiAocHJpbWFyeV9jcmMpCj4gPiA+ICAJCWNyYzMyID0gX3ZrbXNfZ2V0X2Ny YyhwcmltYXJ5X2NyYyk7Cj4gPiA+ICAKPiA+ID4gLQlkcm1fY3J0Y19hZGRfY3JjX2VudHJ5KGNy dGMsIHRydWUsIGNydGNfc3RhdGUtPm5fZnJhbWUsICZjcmMzMik7Cj4gPiA+ICsJZnJhbWVfZW5k ID0gZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KGNydGMpOwo+ID4gPiArCj4gPiA+ICsJ LyogcXVldWVfd29yayBjYW4gZmFpbCB0byBzY2hlZHVsZSBjcmNfd29yazsgYWRkIGNyYyBmb3IK PiA+ID4gKwkgKiBtaXNzaW5nIGZyYW1lcwo+ID4gPiArCSAqLwo+ID4gPiArCXdoaWxlIChmcmFt ZV9zdGFydCA8PSBmcmFtZV9lbmQpCj4gPiA+ICsJCWRybV9jcnRjX2FkZF9jcmNfZW50cnkoY3J0 YywgdHJ1ZSwgZnJhbWVfc3RhcnQrKywgJmNyYzMyKTsKPiA+ID4gKwo+ID4gPiArCS8qIHRvIGF2 b2lkIHVzaW5nIHRoZSBzYW1lIHZhbHVlIGFnYWluICovCj4gPiA+ICsJYXRvbWljX3NldCgmY3J0 Y19zdGF0ZS0+ZnJhbWVfZW5kLCBmcmFtZV9lbmQpOwo+ID4gPiArCWF0b21pY19zZXQoJmNydGNf c3RhdGUtPmZyYW1lX3N0YXJ0LCAwKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgc3RhdGljIGlu dCB2a21zX2NyY19wYXJzZV9zb3VyY2UoY29uc3QgY2hhciAqc3JjX25hbWUsIGJvb2wgKmVuYWJs ZWQpCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBi L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPiA+IGluZGV4IDlkMGIxYTMyNWE3 OC4uYTE3MDY3N2FjZDQ2IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2NydGMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwo+ ID4gPiBAQCAtMjIsOCArMjIsMTcgQEAgc3RhdGljIHZvaWQgX3ZibGFua19oYW5kbGUoc3RydWN0 IHZrbXNfb3V0cHV0ICpvdXRwdXQpCj4gPiA+ICAJCURSTV9FUlJPUigidmttcyBmYWlsdXJlIG9u IGhhbmRsaW5nIHZibGFuayIpOwo+ID4gPiAgCj4gPiA+ICAJaWYgKHN0YXRlICYmIG91dHB1dC0+ Y3JjX2VuYWJsZWQpIHsKPiA+ID4gLQkJc3RhdGUtPm5fZnJhbWUgPSBkcm1fY3J0Y19hY2N1cmF0 ZV92YmxhbmtfY291bnQoY3J0Yyk7Cj4gPiA+IC0JCXF1ZXVlX3dvcmsob3V0cHV0LT5jcmNfd29y a3EsICZzdGF0ZS0+Y3JjX3dvcmspOwo+ID4gPiArCQl1MzIgZnJhbWUgPSBkcm1fY3J0Y19hY2N1 cmF0ZV92YmxhbmtfY291bnQoY3J0Yyk7Cj4gPiA+ICsKPiA+ID4gKwkJLyogdXBkYXRlIGZyYW1l X3N0YXJ0IG9ubHkgaWYgYSBxdWV1ZWQgdmttc19jcmNfd29ya19oYW5kbGUgaGFzCj4gPiA+ICsJ CSAqIHJlYWQgdGhlIGRhdGEKPiA+ID4gKwkJICovCj4gPiA+ICsJCWlmICghYXRvbWljX3JlYWQo JnN0YXRlLT5mcmFtZV9zdGFydCkpCj4gPiA+ICsJCQlhdG9taWNfc2V0KCZzdGF0ZS0+ZnJhbWVf c3RhcnQsIGZyYW1lKTsKPiA+ID4gKwo+ID4gPiArCQlyZXQgPSBxdWV1ZV93b3JrKG91dHB1dC0+ Y3JjX3dvcmtxLCAmc3RhdGUtPmNyY193b3JrKTsKPiA+ID4gKwkJaWYgKCFyZXQpCj4gPiA+ICsJ CQlEUk1fV0FSTigiZmFpbGVkIHRvIHF1ZXVlIHZrbXNfY3JjX3dvcmtfaGFuZGxlIik7Cj4gPiA+ ICAJfQo+ID4gPiAgCj4gPiA+ICAJc3Bpbl91bmxvY2soJm91dHB1dC0+bG9jayk7Cj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4gPiBpbmRleCAyMDE3YTJjY2M0M2QuLjRhMzk1NmEwNTQ5 ZSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPiA+IEBAIC0zOSwxMiAr MzksMTQgQEAgc3RydWN0IHZrbXNfcGxhbmVfc3RhdGUgewo+ID4gPiAgICogdmttc19jcnRjX3N0 YXRlIC0gRHJpdmVyIHNwZWNpZmljIENSVEMgc3RhdGUKPiA+ID4gICAqIEBiYXNlOiBiYXNlIENS VEMgc3RhdGUKPiA+ID4gICAqIEBjcmNfd29yazogd29yayBzdHJ1Y3QgdG8gY29tcHV0ZSBhbmQg YWRkIENSQyBlbnRyaWVzCj4gPiA+IC0gKiBAbl9mcmFtZTogZnJhbWUgbnVtYmVyIGZvciBjb21w dXRlZCBDUkMKPiA+ID4gKyAqIEBuX2ZyYW1lX3N0YXJ0OiBzdGFydCBmcmFtZSBudW1iZXIgZm9y IGNvbXB1dGVkIENSQwo+ID4gPiArICogQG5fZnJhbWVfZW5kOiBlbmQgZnJhbWUgbnVtYmVyIGZv ciBjb21wdXRlZCBDUkMKPiA+ID4gICAqLwo+ID4gPiAgc3RydWN0IHZrbXNfY3J0Y19zdGF0ZSB7 Cj4gPiA+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7Cj4gPiA+ICAJc3RydWN0IHdvcmtf c3RydWN0IGNyY193b3JrOwo+ID4gPiAtCXVuc2lnbmVkIGludCBuX2ZyYW1lOwo+ID4gPiArCWF0 b21pY190IGZyYW1lX3N0YXJ0Owo+ID4gPiArCWF0b21pY190IGZyYW1lX2VuZDsKPiA+ID4gIH07 Cj4gPiA+ICAKPiA+ID4gIHN0cnVjdCB2a21zX291dHB1dCB7Cj4gPiA+IC0tIAo+ID4gPiAyLjE3 LjEKPiA+ID4gCj4gPiAKPiA+IC0tIAo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gCkRh bmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9i bG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=