From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 1/5] drm/i915: Use a ctor for TYPESAFE_BY_RCU i915_request Date: Thu, 21 Nov 2019 16:30:08 +0000 Message-ID: <12aea9ee-d485-e445-b39a-4e2b41b0a19c@linux.intel.com> References: <20191121135131.338984-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0C0C6F4AB for ; Thu, 21 Nov 2019 16:30:12 +0000 (UTC) In-Reply-To: <20191121135131.338984-1-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIxLzExLzIwMTkgMTM6NTEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBcyB3ZSBzdGFydCBw ZWVraW5nIGludG8gcmVxdWVzdHMgZm9yIGxvbmdlciBhbmQgbG9uZ2VyLCBlLmcuCj4gaW5jb3Jw b3JhdGluZyB1c2Ugb2Ygc3BpbmxvY2tzIHdoZW4gb25seSBwcm90ZWN0ZWQgYnkgYW4KPiByY3Vf cmVhZF9sb2NrKCksIHdlIG5lZWQgdG8gYmUgY2FyZWZ1bCBpbiBob3cgd2UgcmVzZXQgdGhlIHJl cXVlc3Qgd2hlbgo+IHJlY3ljbGluZyBhbmQgbmVlZCB0byBwcmVzZXJ2ZSBhbnkgYmFycmllcnMg dGhhdCBtYXkgc3RpbGwgYmUgaW4gdXNlIGFzCj4gdGhlIHJlcXVlc3QgaXMgcmVzZXQgZm9yIHJl dXNlLgoKSG93IGRvIHlvdSB0ZWxsIHdoaWNoIG1lbWJlcnMgc2hvdWxkIGJlIGxlZnQgdW50b3Vj aGVkIG9uIHJlcXVlc3RfY3JlYXRlPwoKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVz dC5jICAgfCAzNyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgfCAgNiArKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zY2hlZHVsZXIuaCB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c3dfZmVuY2UuYyAgfCAgOCArKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuaCAgfCAgMiArKwo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGluZGV4 IDAwMDExZjk1MzNiNi4uNWU1YmQ3ZDU3MTM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZXF1ZXN0LmMKPiBAQCAtMjE0LDcgKzIxNCw3IEBAIHN0YXRpYyB2b2lkIHJlbW92ZV9mcm9tX2Vu Z2luZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIAkJc3Bpbl9sb2NrKCZlbmdpbmUtPmFj dGl2ZS5sb2NrKTsKPiAgIAkJbG9ja2VkID0gZW5naW5lOwo+ICAgCX0KPiAtCWxpc3RfZGVsKCZy cS0+c2NoZWQubGluayk7Cj4gKwlsaXN0X2RlbF9pbml0KCZycS0+c2NoZWQubGluayk7Cj4gICAJ c3Bpbl91bmxvY2tfaXJxKCZsb2NrZWQtPmFjdGl2ZS5sb2NrKTsKPiAgIH0KPiAgIAo+IEBAIC01 ODYsNiArNTg2LDE5IEBAIHJlcXVlc3RfYWxsb2Nfc2xvdyhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUg KnRsLCBnZnBfdCBnZnApCj4gICAJcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZ2xvYmFsLnNsYWJf cmVxdWVzdHMsIGdmcCk7Cj4gICB9Cj4gICAKPiArc3RhdGljIHZvaWQgX19pOTE1X3JlcXVlc3Rf Y3Rvcih2b2lkICphcmcpCj4gK3sKPiArCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0gYXJnOwo+ ICsKPiArCXNwaW5fbG9ja19pbml0KCZycS0+bG9jayk7Cj4gKwlpOTE1X3NjaGVkX25vZGVfaW5p dCgmcnEtPnNjaGVkKTsKPiArCWk5MTVfc3dfZmVuY2VfaW5pdCgmcnEtPnN1Ym1pdCwgc3VibWl0 X25vdGlmeSk7Cj4gKwlpOTE1X3N3X2ZlbmNlX2luaXQoJnJxLT5zZW1hcGhvcmUsIHNlbWFwaG9y ZV9ub3RpZnkpOwo+ICsKPiArCUlOSVRfTElTVF9IRUFEKCZycS0+ZXhlY3V0ZV9jYik7Cj4gKwly cS0+ZmlsZV9wcml2ID0gTlVMTDsKPiArfQo+ICsKPiAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgo+ ICAgX19pOTE1X3JlcXVlc3RfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgZ2ZwX3Qg Z2ZwKQo+ICAgewo+IEBAIC02NTUsMjQgKzY2OCwyMCBAQCBfX2k5MTVfcmVxdWVzdF9jcmVhdGUo c3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBnZnBfdCBnZnApCj4gICAKPiAgIAlycS0+cmN1c3Rh dGUgPSBnZXRfc3RhdGVfc3luY2hyb25pemVfcmN1KCk7IC8qIGFjdHMgYXMgc21wX21iKCkgKi8K PiAgIAo+IC0Jc3Bpbl9sb2NrX2luaXQoJnJxLT5sb2NrKTsKPiAgIAlkbWFfZmVuY2VfaW5pdCgm cnEtPmZlbmNlLCAmaTkxNV9mZW5jZV9vcHMsICZycS0+bG9jaywKPiAgIAkJICAgICAgIHRsLT5m ZW5jZV9jb250ZXh0LCBzZXFubyk7Cj4gICAKPiAgIAkvKiBXZSBidW1wIHRoZSByZWYgZm9yIHRo ZSBmZW5jZSBjaGFpbiAqLwo+IC0JaTkxNV9zd19mZW5jZV9pbml0KCZpOTE1X3JlcXVlc3RfZ2V0 KHJxKS0+c3VibWl0LCBzdWJtaXRfbm90aWZ5KTsKPiAtCWk5MTVfc3dfZmVuY2VfaW5pdCgmaTkx NV9yZXF1ZXN0X2dldChycSktPnNlbWFwaG9yZSwgc2VtYXBob3JlX25vdGlmeSk7Cj4gKwlpOTE1 X3N3X2ZlbmNlX3JlaW5pdCgmaTkxNV9yZXF1ZXN0X2dldChycSktPnN1Ym1pdCk7Cj4gKwlpOTE1 X3N3X2ZlbmNlX3JlaW5pdCgmaTkxNV9yZXF1ZXN0X2dldChycSktPnNlbWFwaG9yZSk7Cj4gICAK PiAtCWk5MTVfc2NoZWRfbm9kZV9pbml0KCZycS0+c2NoZWQpOwo+ICsJaTkxNV9zY2hlZF9ub2Rl X3JlaW5pdCgmcnEtPnNjaGVkKTsKPiAgIAo+ICAgCS8qIE5vIHphbGxvYywgbXVzdCBjbGVhciB3 aGF0IHdlIG5lZWQgYnkgaGFuZCAqLwo+IC0JcnEtPmZpbGVfcHJpdiA9IE5VTEw7Cj4gICAJcnEt PmJhdGNoID0gTlVMTDsKPiAgIAlycS0+Y2FwdHVyZV9saXN0ID0gTlVMTDsKPiAgIAlycS0+Zmxh Z3MgPSAwOwo+ICAgCj4gLQlJTklUX0xJU1RfSEVBRCgmcnEtPmV4ZWN1dGVfY2IpOwoKRm9yIGlu c3RhbmNlIHRoaXMgbWVtYmVyIGlzIG5vdyB1bnRvdWNoZWQuIEhvdyBkbyB3ZSBhc3NlcnQgaXQg aXMgaW4gdGhlIApjb3JyZWN0IHN0YXRlIGJlZm9yZSBpdCBnZXRzIHVzZWQgd2l0aCB0aGUgbmV3 IHJlcXVlc3Q/IFdoYXQgaWYgaXQgaGFzIApkYW5nbGluZyBzdGF0ZT8KClNhbWUgcXVlc3Rpb24g Zm9yIHJxLT5maWxlX3ByaXY/IFdlIGhhdmUgdG8gYmUgc3VyZSBpdCBpcyBub3QgcmVhZCBhbmQg CmFjdGVkIHVwb24gYmVmb3JlIGl0IGlzIHNldCwgcmlnaHQ/CgpTd19mZW5jZSBsb29rcyBva2F5 LiBTY2hlZF9ub2RlIGFzIHdlbGwgc2luY2UgaXQgc2VlbXMgdG8gaGF2ZSBhIGZpbmkgCndoaWNo IGNsZWFucyBpdCB1cC4KClJlZ2FyZHMsCgpUdnJ0a28KCj4gLQo+ICAgCS8qCj4gICAJICogUmVz ZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWly ZWQgdG8KPiAgIAkgKiBldmVudHVhbGx5IGVtaXQgdGhpcyByZXF1ZXN0LiBUaGlzIGlzIHRvIGd1 YXJhbnRlZSB0aGF0IHRoZQo+IEBAIC0xNTMzLDEwICsxNTQyLDE0IEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9nbG9iYWxfcmVxdWVzdCBnbG9iYWwgPSB7IHsKPiAgIAo+ICAgaW50IF9faW5pdCBpOTE1 X2dsb2JhbF9yZXF1ZXN0X2luaXQodm9pZCkKPiAgIHsKPiAtCWdsb2JhbC5zbGFiX3JlcXVlc3Rz ID0gS01FTV9DQUNIRShpOTE1X3JlcXVlc3QsCj4gLQkJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04g fAo+IC0JCQkJCSAgU0xBQl9SRUNMQUlNX0FDQ09VTlQgfAo+IC0JCQkJCSAgU0xBQl9UWVBFU0FG RV9CWV9SQ1UpOwo+ICsJZ2xvYmFsLnNsYWJfcmVxdWVzdHMgPQo+ICsJCWttZW1fY2FjaGVfY3Jl YXRlKCJpOTE1X3JlcXVlc3QiLAo+ICsJCQkJICBzaXplb2Yoc3RydWN0IGk5MTVfcmVxdWVzdCks Cj4gKwkJCQkgIF9fYWxpZ25vZl9fKHN0cnVjdCBpOTE1X3JlcXVlc3QpLAo+ICsJCQkJICBTTEFC X0hXQ0FDSEVfQUxJR04gfAo+ICsJCQkJICBTTEFCX1JFQ0xBSU1fQUNDT1VOVCB8Cj4gKwkJCQkg IFNMQUJfVFlQRVNBRkVfQllfUkNVLAo+ICsJCQkJICBfX2k5MTVfcmVxdWVzdF9jdG9yKTsKPiAg IAlpZiAoIWdsb2JhbC5zbGFiX3JlcXVlc3RzKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+IGluZGV4IDE5NDI0NjU0OGM0ZC4u YTVhNmRiZTZhNTNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4g QEAgLTM4Nyw2ICszODcsMTAgQEAgdm9pZCBpOTE1X3NjaGVkX25vZGVfaW5pdChzdHJ1Y3QgaTkx NV9zY2hlZF9ub2RlICpub2RlKQo+ICAgCUlOSVRfTElTVF9IRUFEKCZub2RlLT5zaWduYWxlcnNf bGlzdCk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJm5vZGUtPndhaXRlcnNfbGlzdCk7Cj4gICAJSU5J VF9MSVNUX0hFQUQoJm5vZGUtPmxpbmspOwo+ICt9Cj4gKwo+ICt2b2lkIGk5MTVfc2NoZWRfbm9k ZV9yZWluaXQoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSkKPiArewo+ICAgCW5vZGUtPmF0 dHIucHJpb3JpdHkgPSBJOTE1X1BSSU9SSVRZX0lOVkFMSUQ7Cj4gICAJbm9kZS0+c2VtYXBob3Jl cyA9IDA7Cj4gICAJbm9kZS0+ZmxhZ3MgPSAwOwo+IEBAIC00ODEsNiArNDg1LDcgQEAgdm9pZCBp OTE1X3NjaGVkX25vZGVfZmluaShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlKQo+ICAgCQlp ZiAoZGVwLT5mbGFncyAmIEk5MTVfREVQRU5ERU5DWV9BTExPQykKPiAgIAkJCWk5MTVfZGVwZW5k ZW5jeV9mcmVlKGRlcCk7Cj4gICAJfQo+ICsJSU5JVF9MSVNUX0hFQUQoJm5vZGUtPnNpZ25hbGVy c19saXN0KTsKPiAgIAo+ICAgCS8qIFJlbW92ZSBvdXJzZWx2ZXMgZnJvbSBldmVyeW9uZSB3aG8g ZGVwZW5kcyB1cG9uIHVzICovCj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGRlcCwgdG1w LCAmbm9kZS0+d2FpdGVyc19saXN0LCB3YWl0X2xpbmspIHsKPiBAQCAtNDkxLDYgKzQ5Niw3IEBA IHZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zpbmkoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSkK PiAgIAkJaWYgKGRlcC0+ZmxhZ3MgJiBJOTE1X0RFUEVOREVOQ1lfQUxMT0MpCj4gICAJCQlpOTE1 X2RlcGVuZGVuY3lfZnJlZShkZXApOwo+ICAgCX0KPiArCUlOSVRfTElTVF9IRUFEKCZub2RlLT53 YWl0ZXJzX2xpc3QpOwo+ICAgCj4gICAJc3Bpbl91bmxvY2tfaXJxKCZzY2hlZHVsZV9sb2NrKTsK PiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKPiBpbmRleCAwN2QyNDNh Y2Y1NTMuLmQxZGM0ZWZlZjc3YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3NjaGVkdWxlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVs ZXIuaAo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICAJCQkJCSBzY2hlZC5saW5rKQo+ICAgCj4gICB2 b2lkIGk5MTVfc2NoZWRfbm9kZV9pbml0KHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUpOwo+ ICt2b2lkIGk5MTVfc2NoZWRfbm9kZV9yZWluaXQoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9k ZSk7Cj4gICAKPiAgIGJvb2wgX19pOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVuY3koc3RydWN0 IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiAgIAkJCQkgICAgICBzdHJ1Y3QgaTkxNV9zY2hlZF9u b2RlICpzaWduYWwsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwo+IGluZGV4IDZh ODhkYjI5MTI1Mi4uZWFjYzZjNWNlMGZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc3dfZmVuY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuYwo+IEBAIC0yMjcsNiArMjI3LDE0IEBAIHZvaWQgX19pOTE1X3N3X2ZlbmNlX2luaXQo c3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAo+ICAgCWZlbmNlLT5mbGFncyA9ICh1bnNpZ25l ZCBsb25nKWZuOwo+ICAgfQo+ICAgCj4gK3ZvaWQgaTkxNV9zd19mZW5jZV9yZWluaXQoc3RydWN0 IGk5MTVfc3dfZmVuY2UgKmZlbmNlKQo+ICt7Cj4gKwlkZWJ1Z19mZW5jZV9pbml0KGZlbmNlKTsK PiArCj4gKwlhdG9taWNfc2V0KCZmZW5jZS0+cGVuZGluZywgMSk7Cj4gKwlmZW5jZS0+ZXJyb3Ig PSAwOwo+ICt9Cj4gKwo+ICAgdm9pZCBpOTE1X3N3X2ZlbmNlX2NvbW1pdChzdHJ1Y3QgaTkxNV9z d19mZW5jZSAqZmVuY2UpCj4gICB7Cj4gICAJZGVidWdfZmVuY2VfYWN0aXZhdGUoZmVuY2UpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKPiBpbmRleCBhYjdkNThiZDBiOWQuLjFl OTBkOWE1MWJkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2Zl bmNlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKPiBAQCAt NTQsNiArNTQsOCBAQCBkbyB7CQkJCQkJCQlcCj4gICAJX19pOTE1X3N3X2ZlbmNlX2luaXQoKGZl bmNlKSwgKGZuKSwgTlVMTCwgTlVMTCkKPiAgICNlbmRpZgo+ICAgCj4gK3ZvaWQgaTkxNV9zd19m ZW5jZV9yZWluaXQoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlKTsKPiArCj4gICAjaWZkZWYg Q09ORklHX0RSTV9JOTE1X1NXX0ZFTkNFX0RFQlVHX09CSkVDVFMKPiAgIHZvaWQgaTkxNV9zd19m ZW5jZV9maW5pKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSk7Cj4gICAjZWxzZQo+IApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HK_RANDOM_FROM,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33E09C432C0 for ; Thu, 21 Nov 2019 16:30:15 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0BCAF20692 for ; Thu, 21 Nov 2019 16:30:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0BCAF20692 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7ED376F4A9; Thu, 21 Nov 2019 16:30:14 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0C0C6F4AB for ; Thu, 21 Nov 2019 16:30:12 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Nov 2019 08:30:12 -0800 X-IronPort-AV: E=Sophos;i="5.69,226,1571727600"; d="scan'208";a="201175932" Received: from aburk3x-mobl1.ger.corp.intel.com (HELO [10.252.19.231]) ([10.252.19.231]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/AES256-SHA; 21 Nov 2019 08:30:10 -0800 To: Chris Wilson , intel-gfx@lists.freedesktop.org References: <20191121135131.338984-1-chris@chris-wilson.co.uk> From: Tvrtko Ursulin Organization: Intel Corporation UK Plc Message-ID: <12aea9ee-d485-e445-b39a-4e2b41b0a19c@linux.intel.com> Date: Thu, 21 Nov 2019 16:30:08 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191121135131.338984-1-chris@chris-wilson.co.uk> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 1/5] drm/i915: Use a ctor for TYPESAFE_BY_RCU i915_request X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191121163008.BNjwi2HDqcyURXdEdsd4I40kOrETaC3m0YYvYKkBU9w@z> Ck9uIDIxLzExLzIwMTkgMTM6NTEsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBcyB3ZSBzdGFydCBw ZWVraW5nIGludG8gcmVxdWVzdHMgZm9yIGxvbmdlciBhbmQgbG9uZ2VyLCBlLmcuCj4gaW5jb3Jw b3JhdGluZyB1c2Ugb2Ygc3BpbmxvY2tzIHdoZW4gb25seSBwcm90ZWN0ZWQgYnkgYW4KPiByY3Vf cmVhZF9sb2NrKCksIHdlIG5lZWQgdG8gYmUgY2FyZWZ1bCBpbiBob3cgd2UgcmVzZXQgdGhlIHJl cXVlc3Qgd2hlbgo+IHJlY3ljbGluZyBhbmQgbmVlZCB0byBwcmVzZXJ2ZSBhbnkgYmFycmllcnMg dGhhdCBtYXkgc3RpbGwgYmUgaW4gdXNlIGFzCj4gdGhlIHJlcXVlc3QgaXMgcmVzZXQgZm9yIHJl dXNlLgoKSG93IGRvIHlvdSB0ZWxsIHdoaWNoIG1lbWJlcnMgc2hvdWxkIGJlIGxlZnQgdW50b3Vj aGVkIG9uIHJlcXVlc3RfY3JlYXRlPwoKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVz dC5jICAgfCAzNyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgfCAgNiArKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zY2hlZHVsZXIuaCB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c3dfZmVuY2UuYyAgfCAgOCArKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuaCAgfCAgMiArKwo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGluZGV4 IDAwMDExZjk1MzNiNi4uNWU1YmQ3ZDU3MTM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZXF1ZXN0LmMKPiBAQCAtMjE0LDcgKzIxNCw3IEBAIHN0YXRpYyB2b2lkIHJlbW92ZV9mcm9tX2Vu Z2luZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIAkJc3Bpbl9sb2NrKCZlbmdpbmUtPmFj dGl2ZS5sb2NrKTsKPiAgIAkJbG9ja2VkID0gZW5naW5lOwo+ICAgCX0KPiAtCWxpc3RfZGVsKCZy cS0+c2NoZWQubGluayk7Cj4gKwlsaXN0X2RlbF9pbml0KCZycS0+c2NoZWQubGluayk7Cj4gICAJ c3Bpbl91bmxvY2tfaXJxKCZsb2NrZWQtPmFjdGl2ZS5sb2NrKTsKPiAgIH0KPiAgIAo+IEBAIC01 ODYsNiArNTg2LDE5IEBAIHJlcXVlc3RfYWxsb2Nfc2xvdyhzdHJ1Y3QgaW50ZWxfdGltZWxpbmUg KnRsLCBnZnBfdCBnZnApCj4gICAJcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZ2xvYmFsLnNsYWJf cmVxdWVzdHMsIGdmcCk7Cj4gICB9Cj4gICAKPiArc3RhdGljIHZvaWQgX19pOTE1X3JlcXVlc3Rf Y3Rvcih2b2lkICphcmcpCj4gK3sKPiArCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxID0gYXJnOwo+ ICsKPiArCXNwaW5fbG9ja19pbml0KCZycS0+bG9jayk7Cj4gKwlpOTE1X3NjaGVkX25vZGVfaW5p dCgmcnEtPnNjaGVkKTsKPiArCWk5MTVfc3dfZmVuY2VfaW5pdCgmcnEtPnN1Ym1pdCwgc3VibWl0 X25vdGlmeSk7Cj4gKwlpOTE1X3N3X2ZlbmNlX2luaXQoJnJxLT5zZW1hcGhvcmUsIHNlbWFwaG9y ZV9ub3RpZnkpOwo+ICsKPiArCUlOSVRfTElTVF9IRUFEKCZycS0+ZXhlY3V0ZV9jYik7Cj4gKwly cS0+ZmlsZV9wcml2ID0gTlVMTDsKPiArfQo+ICsKPiAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgo+ ICAgX19pOTE1X3JlcXVlc3RfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgZ2ZwX3Qg Z2ZwKQo+ICAgewo+IEBAIC02NTUsMjQgKzY2OCwyMCBAQCBfX2k5MTVfcmVxdWVzdF9jcmVhdGUo c3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBnZnBfdCBnZnApCj4gICAKPiAgIAlycS0+cmN1c3Rh dGUgPSBnZXRfc3RhdGVfc3luY2hyb25pemVfcmN1KCk7IC8qIGFjdHMgYXMgc21wX21iKCkgKi8K PiAgIAo+IC0Jc3Bpbl9sb2NrX2luaXQoJnJxLT5sb2NrKTsKPiAgIAlkbWFfZmVuY2VfaW5pdCgm cnEtPmZlbmNlLCAmaTkxNV9mZW5jZV9vcHMsICZycS0+bG9jaywKPiAgIAkJICAgICAgIHRsLT5m ZW5jZV9jb250ZXh0LCBzZXFubyk7Cj4gICAKPiAgIAkvKiBXZSBidW1wIHRoZSByZWYgZm9yIHRo ZSBmZW5jZSBjaGFpbiAqLwo+IC0JaTkxNV9zd19mZW5jZV9pbml0KCZpOTE1X3JlcXVlc3RfZ2V0 KHJxKS0+c3VibWl0LCBzdWJtaXRfbm90aWZ5KTsKPiAtCWk5MTVfc3dfZmVuY2VfaW5pdCgmaTkx NV9yZXF1ZXN0X2dldChycSktPnNlbWFwaG9yZSwgc2VtYXBob3JlX25vdGlmeSk7Cj4gKwlpOTE1 X3N3X2ZlbmNlX3JlaW5pdCgmaTkxNV9yZXF1ZXN0X2dldChycSktPnN1Ym1pdCk7Cj4gKwlpOTE1 X3N3X2ZlbmNlX3JlaW5pdCgmaTkxNV9yZXF1ZXN0X2dldChycSktPnNlbWFwaG9yZSk7Cj4gICAK PiAtCWk5MTVfc2NoZWRfbm9kZV9pbml0KCZycS0+c2NoZWQpOwo+ICsJaTkxNV9zY2hlZF9ub2Rl X3JlaW5pdCgmcnEtPnNjaGVkKTsKPiAgIAo+ICAgCS8qIE5vIHphbGxvYywgbXVzdCBjbGVhciB3 aGF0IHdlIG5lZWQgYnkgaGFuZCAqLwo+IC0JcnEtPmZpbGVfcHJpdiA9IE5VTEw7Cj4gICAJcnEt PmJhdGNoID0gTlVMTDsKPiAgIAlycS0+Y2FwdHVyZV9saXN0ID0gTlVMTDsKPiAgIAlycS0+Zmxh Z3MgPSAwOwo+ICAgCj4gLQlJTklUX0xJU1RfSEVBRCgmcnEtPmV4ZWN1dGVfY2IpOwoKRm9yIGlu c3RhbmNlIHRoaXMgbWVtYmVyIGlzIG5vdyB1bnRvdWNoZWQuIEhvdyBkbyB3ZSBhc3NlcnQgaXQg aXMgaW4gdGhlIApjb3JyZWN0IHN0YXRlIGJlZm9yZSBpdCBnZXRzIHVzZWQgd2l0aCB0aGUgbmV3 IHJlcXVlc3Q/IFdoYXQgaWYgaXQgaGFzIApkYW5nbGluZyBzdGF0ZT8KClNhbWUgcXVlc3Rpb24g Zm9yIHJxLT5maWxlX3ByaXY/IFdlIGhhdmUgdG8gYmUgc3VyZSBpdCBpcyBub3QgcmVhZCBhbmQg CmFjdGVkIHVwb24gYmVmb3JlIGl0IGlzIHNldCwgcmlnaHQ/CgpTd19mZW5jZSBsb29rcyBva2F5 LiBTY2hlZF9ub2RlIGFzIHdlbGwgc2luY2UgaXQgc2VlbXMgdG8gaGF2ZSBhIGZpbmkgCndoaWNo IGNsZWFucyBpdCB1cC4KClJlZ2FyZHMsCgpUdnJ0a28KCj4gLQo+ICAgCS8qCj4gICAJICogUmVz ZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWly ZWQgdG8KPiAgIAkgKiBldmVudHVhbGx5IGVtaXQgdGhpcyByZXF1ZXN0LiBUaGlzIGlzIHRvIGd1 YXJhbnRlZSB0aGF0IHRoZQo+IEBAIC0xNTMzLDEwICsxNTQyLDE0IEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9nbG9iYWxfcmVxdWVzdCBnbG9iYWwgPSB7IHsKPiAgIAo+ICAgaW50IF9faW5pdCBpOTE1 X2dsb2JhbF9yZXF1ZXN0X2luaXQodm9pZCkKPiAgIHsKPiAtCWdsb2JhbC5zbGFiX3JlcXVlc3Rz ID0gS01FTV9DQUNIRShpOTE1X3JlcXVlc3QsCj4gLQkJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04g fAo+IC0JCQkJCSAgU0xBQl9SRUNMQUlNX0FDQ09VTlQgfAo+IC0JCQkJCSAgU0xBQl9UWVBFU0FG RV9CWV9SQ1UpOwo+ICsJZ2xvYmFsLnNsYWJfcmVxdWVzdHMgPQo+ICsJCWttZW1fY2FjaGVfY3Jl YXRlKCJpOTE1X3JlcXVlc3QiLAo+ICsJCQkJICBzaXplb2Yoc3RydWN0IGk5MTVfcmVxdWVzdCks Cj4gKwkJCQkgIF9fYWxpZ25vZl9fKHN0cnVjdCBpOTE1X3JlcXVlc3QpLAo+ICsJCQkJICBTTEFC X0hXQ0FDSEVfQUxJR04gfAo+ICsJCQkJICBTTEFCX1JFQ0xBSU1fQUNDT1VOVCB8Cj4gKwkJCQkg IFNMQUJfVFlQRVNBRkVfQllfUkNVLAo+ICsJCQkJICBfX2k5MTVfcmVxdWVzdF9jdG9yKTsKPiAg IAlpZiAoIWdsb2JhbC5zbGFiX3JlcXVlc3RzKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuYwo+IGluZGV4IDE5NDI0NjU0OGM0ZC4u YTVhNmRiZTZhNTNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4g QEAgLTM4Nyw2ICszODcsMTAgQEAgdm9pZCBpOTE1X3NjaGVkX25vZGVfaW5pdChzdHJ1Y3QgaTkx NV9zY2hlZF9ub2RlICpub2RlKQo+ICAgCUlOSVRfTElTVF9IRUFEKCZub2RlLT5zaWduYWxlcnNf bGlzdCk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJm5vZGUtPndhaXRlcnNfbGlzdCk7Cj4gICAJSU5J VF9MSVNUX0hFQUQoJm5vZGUtPmxpbmspOwo+ICt9Cj4gKwo+ICt2b2lkIGk5MTVfc2NoZWRfbm9k ZV9yZWluaXQoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSkKPiArewo+ICAgCW5vZGUtPmF0 dHIucHJpb3JpdHkgPSBJOTE1X1BSSU9SSVRZX0lOVkFMSUQ7Cj4gICAJbm9kZS0+c2VtYXBob3Jl cyA9IDA7Cj4gICAJbm9kZS0+ZmxhZ3MgPSAwOwo+IEBAIC00ODEsNiArNDg1LDcgQEAgdm9pZCBp OTE1X3NjaGVkX25vZGVfZmluaShzdHJ1Y3QgaTkxNV9zY2hlZF9ub2RlICpub2RlKQo+ICAgCQlp ZiAoZGVwLT5mbGFncyAmIEk5MTVfREVQRU5ERU5DWV9BTExPQykKPiAgIAkJCWk5MTVfZGVwZW5k ZW5jeV9mcmVlKGRlcCk7Cj4gICAJfQo+ICsJSU5JVF9MSVNUX0hFQUQoJm5vZGUtPnNpZ25hbGVy c19saXN0KTsKPiAgIAo+ICAgCS8qIFJlbW92ZSBvdXJzZWx2ZXMgZnJvbSBldmVyeW9uZSB3aG8g ZGVwZW5kcyB1cG9uIHVzICovCj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGRlcCwgdG1w LCAmbm9kZS0+d2FpdGVyc19saXN0LCB3YWl0X2xpbmspIHsKPiBAQCAtNDkxLDYgKzQ5Niw3IEBA IHZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zpbmkoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSkK PiAgIAkJaWYgKGRlcC0+ZmxhZ3MgJiBJOTE1X0RFUEVOREVOQ1lfQUxMT0MpCj4gICAJCQlpOTE1 X2RlcGVuZGVuY3lfZnJlZShkZXApOwo+ICAgCX0KPiArCUlOSVRfTElTVF9IRUFEKCZub2RlLT53 YWl0ZXJzX2xpc3QpOwo+ICAgCj4gICAJc3Bpbl91bmxvY2tfaXJxKCZzY2hlZHVsZV9sb2NrKTsK PiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKPiBpbmRleCAwN2QyNDNh Y2Y1NTMuLmQxZGM0ZWZlZjc3YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3NjaGVkdWxlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVs ZXIuaAo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICAJCQkJCSBzY2hlZC5saW5rKQo+ICAgCj4gICB2 b2lkIGk5MTVfc2NoZWRfbm9kZV9pbml0KHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUpOwo+ ICt2b2lkIGk5MTVfc2NoZWRfbm9kZV9yZWluaXQoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9k ZSk7Cj4gICAKPiAgIGJvb2wgX19pOTE1X3NjaGVkX25vZGVfYWRkX2RlcGVuZGVuY3koc3RydWN0 IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiAgIAkJCQkgICAgICBzdHJ1Y3QgaTkxNV9zY2hlZF9u b2RlICpzaWduYWwsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3dfZmVuY2UuYwo+IGluZGV4IDZh ODhkYjI5MTI1Mi4uZWFjYzZjNWNlMGZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc3dfZmVuY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3df ZmVuY2UuYwo+IEBAIC0yMjcsNiArMjI3LDE0IEBAIHZvaWQgX19pOTE1X3N3X2ZlbmNlX2luaXQo c3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlLAo+ICAgCWZlbmNlLT5mbGFncyA9ICh1bnNpZ25l ZCBsb25nKWZuOwo+ICAgfQo+ICAgCj4gK3ZvaWQgaTkxNV9zd19mZW5jZV9yZWluaXQoc3RydWN0 IGk5MTVfc3dfZmVuY2UgKmZlbmNlKQo+ICt7Cj4gKwlkZWJ1Z19mZW5jZV9pbml0KGZlbmNlKTsK PiArCj4gKwlhdG9taWNfc2V0KCZmZW5jZS0+cGVuZGluZywgMSk7Cj4gKwlmZW5jZS0+ZXJyb3Ig PSAwOwo+ICt9Cj4gKwo+ICAgdm9pZCBpOTE1X3N3X2ZlbmNlX2NvbW1pdChzdHJ1Y3QgaTkxNV9z d19mZW5jZSAqZmVuY2UpCj4gICB7Cj4gICAJZGVidWdfZmVuY2VfYWN0aXZhdGUoZmVuY2UpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKPiBpbmRleCBhYjdkNThiZDBiOWQuLjFl OTBkOWE1MWJkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2Zl bmNlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N3X2ZlbmNlLmgKPiBAQCAt NTQsNiArNTQsOCBAQCBkbyB7CQkJCQkJCQlcCj4gICAJX19pOTE1X3N3X2ZlbmNlX2luaXQoKGZl bmNlKSwgKGZuKSwgTlVMTCwgTlVMTCkKPiAgICNlbmRpZgo+ICAgCj4gK3ZvaWQgaTkxNV9zd19m ZW5jZV9yZWluaXQoc3RydWN0IGk5MTVfc3dfZmVuY2UgKmZlbmNlKTsKPiArCj4gICAjaWZkZWYg Q09ORklHX0RSTV9JOTE1X1NXX0ZFTkNFX0RFQlVHX09CSkVDVFMKPiAgIHZvaWQgaTkxNV9zd19m ZW5jZV9maW5pKHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSk7Cj4gICAjZWxzZQo+IApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=