From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/3] dma_resv: prime lockdep annotations Date: Wed, 20 Nov 2019 11:51:56 +0100 Message-ID: <20191120105156.GJ30416@phenom.ffwll.local> References: <20191104173801.2972-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Steven Price Cc: Thomas Hellstrom , Tomeu Vizoso , Daniel Vetter , Intel Graphics Development , DRI Development , VMware Graphics , Gerd Hoffmann , Thomas Zimmermann , Daniel Vetter , Alex Deucher , Dave Airlie , Christian =?iso-8859-1?Q?K=F6nig?= , Ben Skeggs List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMTQsIDIwMTkgYXQgMTE6NTA6MjhBTSArMDAwMCwgU3RldmVuIFByaWNlIHdy b3RlOgo+IE9uIDExLzExLzIwMTkgMTU6NDIsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBN b24sIE5vdiAxMSwgMjAxOSBhdCAyOjExIFBNIFN0ZXZlbiBQcmljZSA8c3RldmVuLnByaWNlQGFy bS5jb20+IHdyb3RlOgo+ID4+Cj4gPj4gT24gMDQvMTEvMjAxOSAxNzozNywgRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+Pj4gRnVsbCBhdWRpdCBvZiBldmVyeW9uZToKPiA+Pj4KPiA+Pj4gLSBpOTE1 LCByYWRlb24sIGFtZGdwdSBzaG91bGQgYmUgY2xlYW4gcGVyIHRoZWlyIG1haW50YWluZXJzLgo+ ID4+Pgo+ID4+PiAtIHZyYW0gaGVscGVycyBzaG91bGQgYmUgZmluZSwgdGhleSBkb24ndCBkbyBj b21tYW5kIHN1Ym1pc3Npb24sIHNvCj4gPj4+ICAgcmVhbGx5IG5vIGJ1c2luZXNzIGhvbGRpbmcg c3RydWN0X211dGV4IHdoaWxlIGRvaW5nIGNvcHlfKl91c2VyLiBCdXQKPiA+Pj4gICBJIGhhdmVu J3QgY2hlY2tlZCB0aGVtIGFsbC4KPiA+Pj4KPiA+Pj4gLSBwYW5mcm9zdCBzZWVtcyB0byBkbWFf cmVzdl9sb2NrIG9ubHkgaW4gcGFuZnJvc3Rfam9iX3B1c2gsIHdoaWNoCj4gPj4+ICAgbG9va3Mg Y2xlYW4uCj4gPj4+Cj4gPj4+IC0gdjNkIGhvbGRzIGRtYV9yZXN2IGxvY2tzIGluIHRoZSB0YWls IG9mIGl0cyB2M2Rfc3VibWl0X2NsX2lvY3RsKCksCj4gPj4+ICAgY29weWluZyBmcm9tL3RvIHVz ZXJzcGFjZSBoYXBwZW5zIGFsbCBpbiB2M2RfbG9va3VwX2JvcyB3aGljaCBpcwo+ID4+PiAgIG91 dHNpZGUgb2YgdGhlIGNyaXRpY2FsIHNlY3Rpb24uCj4gPj4+Cj4gPj4+IC0gdm13Z2Z4IGhhcyBh IGJ1bmNoIG9mIGlvY3RscyB0aGF0IGRvIHRoZWlyIG93biBjb3B5XypfdXNlcjoKPiA+Pj4gICAt IHZtd19leGVjYnVmX3Byb2Nlc3M6IEZpcnN0IHRoaXMgZG9lcyBzb21lIGNvcGllcyBpbgo+ID4+ PiAgICAgdm13X2V4ZWNidWZfY21kYnVmKCkgYW5kIGFsc28gaW4gdGhlIHZtd19leGVjYnVmX3By b2Nlc3MoKSBpdHNlbGYuCj4gPj4+ICAgICBUaGVuIGNvbWVzIHRoZSB1c3VhbCB0dG0gcmVzZXJ2 ZS92YWxpZGF0ZSBzZXF1ZW5jZSwgdGhlbiBhY3R1YWwKPiA+Pj4gICAgIHN1Ym1pc3Npb24vZmVu Y2luZywgdGhlbiB1bnJlc2VydmluZywgYW5kIGZpbmFsbHkgc29tZSBtb3JlCj4gPj4+ICAgICBj b3B5X3RvX3VzZXIgaW4gdm13X2V4ZWNidWZfY29weV9mZW5jZV91c2VyLiBHbG9zc2luZyBvdmVy IHRvbnMgb2YKPiA+Pj4gICAgIGRldGFpbHMsIGJ1dCBsb29rcyBhbGwgc2FmZS4KPiA+Pj4gICAt IHZtd19mZW5jZV9ldmVudF9pb2N0bDogTm8gdHRtX3Jlc2VydmUvZG1hX3Jlc3ZfbG9jayBhbnl3 aGVyZSB0byBiZQo+ID4+PiAgICAgc2Vlbiwgc2VlbXMgdG8gb25seSBjcmVhdGUgYSBmZW5jZSBh bmQgY29weSBpdCBvdXQuCj4gPj4+ICAgLSBhIHBpbGUgb2Ygc21hbGxlciBpb2N0bCBpbiB2bXdn ZnhfaW9jdGwuYywgbm8gcmVzZXJ2YXRpb25zIHRvIGJlCj4gPj4+ICAgICBmb3VuZCB0aGVyZS4K PiA+Pj4gICBTdW1tYXJ5OiB2bXdnZnggc2VlbXMgdG8gYmUgZmluZSB0b28uCj4gPj4+Cj4gPj4+ IC0gdmlydGlvOiBUaGVyZSdzIHZpcnRpb19ncHVfZXhlY2J1ZmZlcl9pb2N0bCwgd2hpY2ggZG9l cyBhbGwgdGhlCj4gPj4+ICAgY29weWluZyBmcm9tIHVzZXJzcGFjZSBiZWZvcmUgZXZlbiBsb29r aW5nIHVwIG9iamVjdHMgdGhyb3VnaCB0aGVpcgo+ID4+PiAgIGhhbmRsZXMsIHNvIHNhZmUuIFBs dXMgdGhlIGdldHBhcmFtL2dldGNhcHMgaW9jdGwsIGFsc28gYm90aCBzYWZlLgo+ID4+Pgo+ID4+ PiAtIHF4bCBvbmx5IGhhcyBxeGxfZXhlY2J1ZmZlcl9pb2N0bCwgd2hpY2ggY2FsbHMgaW50bwo+ ID4+PiAgIHF4bF9wcm9jZXNzX3NpbmdsZV9jb21tYW5kLiBUaGVyZSdzIGEgbG92ZWx5IGNvbW1l bnQgYmVmb3JlIHRoZQo+ID4+PiAgIF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMgdGhhdCB0aGUg c2xvd3BhdGggc2hvdWxkIGJlIGNvcGllZCBmcm9tCj4gPj4+ICAgaTkxNSwgYnV0IEkgZ3Vlc3Mg dGhhdCBuZXZlciBoYXBwZW5lZC4gVHJ5IG5vdCB0byBiZSB1bmx1Y2t5IGFuZCBnZXQKPiA+Pj4g ICB5b3VyIENTIGRhdGEgZXZpY3RlZCBiZXR3ZWVuIHdoZW4gaXQncyB3cml0dGVuIGFuZCB0aGUg a2VybmVsIHRyaWVzCj4gPj4+ICAgdG8gcmVhZCBpdC4gVGhlIG9ubHkgb3RoZXIgY29weV9mcm9t X3VzZXIgaXMgZm9yIHJlbG9jcywgYnV0IHRob3NlCj4gPj4+ICAgYXJlIGRvbmUgYmVmb3JlIHF4 bF9yZWxlYXNlX3Jlc2VydmVfbGlzdCgpLCB3aGljaCBzZWVtcyB0byBiZSB0aGUKPiA+Pj4gICBv bmx5IHRoaW5nIHJlc2VydmluZyBidWZmZXJzIChpbiB0aGUgdHRtL2RtYV9yZXN2IHNlbnNlKSBp biB0aGF0Cj4gPj4+ICAgY29kZS4gU28gbG9va3Mgc2FmZS4KPiA+Pj4KPiA+Pj4gLSBBIGRlYnVn ZnMgZmlsZSBpbiBub3V2ZWF1X2RlYnVnZnNfcHN0YXRlX3NldCgpIGFuZCB0aGUgdXNpZiBpb2N0 bCBpbgo+ID4+PiAgIHVzaWZfaW9jdGwoKSBsb29rIHNhZmUuIG5vdXZlYXVfZ2VtX2lvY3RsX3B1 c2hidWYoKSBvdG9oIGJyZWFrcyB0aGlzCj4gPj4+ICAgZXZlcnl3aGVyZSBhbmQgbmVlZHMgdG8g YmUgZml4ZWQgdXAuCj4gPj4+Cj4gPj4+IHYyOiBUaG9tYXMgcG9pbnRlZCBhdCB0aGF0IHZtd2dm eCBjYWxscyBkbWFfcmVzdl9pbml0IHdoaWxlIGl0IGhvbGRzIGEKPiA+Pj4gZG1hX3Jlc3YgbG9j ayBvZiBhIGRpZmZlcmVudCBvYmplY3QgYWxyZWFkeS4gQ2hyaXN0aWFuIG1lbnRpb25lZCB0aGF0 Cj4gPj4+IHR0bSBjb3JlIGRvZXMgdGhpcyB0b28gZm9yIGdob3N0IG9iamVjdHMuIGludGVsLWdm eC1jaSBoaWdobGlnaHRlZAo+ID4+PiB0aGF0IGk5MTUgaGFzIHNpbWlsYXIgaXNzdWVzLgo+ID4+ Pgo+ID4+PiBVbmZvcnR1bmF0ZWx5IHdlIGNhbid0IGRvIHRoaXMgaW4gdGhlIHVzdWFsIG1vZHVs ZSBpbml0IGZ1bmN0aW9ucywKPiA+Pj4gYmVjYXVzZSBrZXJuZWwgdGhyZWFkcyBkb24ndCBoYXZl IGFuIC0+bW0gLSB3ZSBoYXZlIHRvIHdhaXQgYXJvdW5kIGZvcgo+ID4+PiBzb21lIHVzZXIgdGhy ZWFkIHRvIGRvIHRoaXMuCj4gPj4+Cj4gPj4+IFNvbHV0aW9uIGlzIHRvIHNwYXduIGEgd29ya2Vy IChidXQgb25seSBvbmNlKS4gSXQncyBob3JyaWJsZSwgYnV0IGl0Cj4gPj4+IHdvcmtzLgo+ID4+ Pgo+ID4+PiB2MzogV2UgY2FuIGFsbG9jYXRlIG1tISAoQ2hyaXMpLiBIb3JyaWJsZSB3b3JrZXIg aGFjayBvdXQsIGNsZWFuCj4gPj4+IGluaXRjYWxsIHNvbHV0aW9uIGluLgo+ID4+Pgo+ID4+PiB2 NDogQW5ub3RhdGUgd2l0aCBfX2luaXQgKFJvYiBIZXJyaW5nKQo+ID4+Pgo+ID4+PiBDYzogUm9i IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KPiA+Pj4gQ2M6IEFsZXggRGV1Y2hlciA8YWxleGFu ZGVyLmRldWNoZXJAYW1kLmNvbT4KPiA+Pj4gQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KPiA+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+ID4+PiBDYzogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2Uu ZGU+Cj4gPj4+IENjOiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgo+ID4+PiBDYzogVG9t ZXUgVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT4KPiA+Pj4gQ2M6IEVyaWMgQW5o b2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4gPj4+IENjOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRo YXQuY29tPgo+ID4+PiBDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Cj4gPj4+ IENjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Cj4gPj4+IENjOiAiVk13YXJlIEdy YXBoaWNzIiA8bGludXgtZ3JhcGhpY3MtbWFpbnRhaW5lckB2bXdhcmUuY29tPgo+ID4+PiBDYzog VGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgo+ID4+PiBSZXZpZXdlZC1i eTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+ID4+PiBSZXZp ZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPj4+IFRl c3RlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPj4+IFNp Z25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4+ PiAtLS0KPiA+Pj4gIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jIHwgMjQgKysrKysrKysrKysr KysrKysrKysrKysrCj4gPj4+ICAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQo+ID4+ Pgo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMgYi9kcml2ZXJz L2RtYS1idWYvZG1hLXJlc3YuYwo+ID4+PiBpbmRleCA3MDkwMDI1MTU1NTAuLmEwNWZmNTQyYmUy MiAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMKPiA+Pj4gKysr IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMKPiA+Pj4gQEAgLTM0LDYgKzM0LDcgQEAKPiA+ Pj4KPiA+Pj4gICNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgo+ID4+PiAgI2luY2x1ZGUgPGxp bnV4L2V4cG9ydC5oPgo+ID4+PiArI2luY2x1ZGUgPGxpbnV4L3NjaGVkL21tLmg+Cj4gPj4+Cj4g Pj4+ICAvKioKPiA+Pj4gICAqIERPQzogUmVzZXJ2YXRpb24gT2JqZWN0IE92ZXJ2aWV3Cj4gPj4+ IEBAIC05NSw2ICs5NiwyOSBAQCBzdGF0aWMgdm9pZCBkbWFfcmVzdl9saXN0X2ZyZWUoc3RydWN0 IGRtYV9yZXN2X2xpc3QgKmxpc3QpCj4gPj4+ICAgICAgIGtmcmVlX3JjdShsaXN0LCByY3UpOwo+ ID4+PiAgfQo+ID4+Pgo+ID4+PiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0xPQ0tERVApCj4gPj4+ ICtzdGF0aWMgdm9pZCBfX2luaXQgZG1hX3Jlc3ZfbG9ja2RlcCh2b2lkKQo+ID4+PiArewo+ID4+ PiArICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1tX2FsbG9jKCk7Cj4gPj4+ICsgICAgIHN0 cnVjdCBkbWFfcmVzdiBvYmo7Cj4gPj4+ICsKPiA+Pj4gKyAgICAgaWYgKCFtbSkKPiA+Pj4gKyAg ICAgICAgICAgICByZXR1cm47Cj4gPj4+ICsKPiA+Pj4gKyAgICAgZG1hX3Jlc3ZfaW5pdCgmb2Jq KTsKPiA+Pj4gKwo+ID4+PiArICAgICBkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7Cj4gPj4+ICsg ICAgIHd3X211dGV4X2xvY2soJm9iai5sb2NrLCBOVUxMKTsKPiA+Pj4gKyAgICAgZnNfcmVjbGFp bV9hY3F1aXJlKEdGUF9LRVJORUwpOwo+ID4+PiArICAgICBmc19yZWNsYWltX3JlbGVhc2UoR0ZQ X0tFUk5FTCk7Cj4gPj4+ICsgICAgIHd3X211dGV4X3VubG9jaygmb2JqLmxvY2spOwo+ID4+PiAr ICAgICB1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwo+ID4+PiArCj4gPj4KPiA+PiBOaXQ6IHRyYWls aW5nIHdoaXRlc3BhY2UKPiA+Pgo+ID4+PiArICAgICBtbXB1dChtbSk7Cj4gPj4+ICt9Cj4gPj4+ ICtzdWJzeXNfaW5pdGNhbGwoZG1hX3Jlc3ZfbG9ja2RlcCk7Cj4gPj4KPiA+PiBUaGlzIGV4cGVj dHMgYSBmdW5jdGlvbiByZXR1cm5pbmcgaW50LCBidXQgZG1hX3Jlc3ZfbG9ja2RlcCgpIGlzIHZv aWQuCj4gPj4gQ2F1c2luZzoKPiA+Pgo+ID4+IGRyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jOjEx OToxNzogZXJyb3I6IGluaXRpYWxpemF0aW9uIG9mIOKAmGluaXRjYWxsX3TigJkKPiA+PiB7YWth IOKAmGludCAoKikodm9pZCnigJl9IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSDigJh2 b2lkICgqKSh2b2lkKeKAmQo+ID4+IFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVz XQo+ID4+ICBzdWJzeXNfaW5pdGNhbGwoZG1hX3Jlc3ZfbG9ja2RlcCk7Cj4gPj4KPiA+PiBUaGUg YmVsb3cgZml4ZXMgaXQgZm9yIG1lLgo+ID4gCj4gPiBVaCwgc28gX3RoYXRfIHdhcyB3aGF0IHRo ZSAwZGF5IHRoaW5nIHdhcyBhbGwgYWJvdXQsIEkgdG90YWxseSBtaXNyZWFkCj4gPiB0aGF0IGNv bXBsZXRlbHkuIFRoYW5rcyBmb3IgdGhlIHBhdGNoLgo+ID4gCj4gPiBSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IAo+ID4gQXNpZGUsIGRvIHlv dSBuZWVkIGNvbW1pdCByaWdodHMgZm9yIHB1c2hpbmcgdGhpcyBraW5kIG9mIHN0dWZmPwo+IAo+ IEkgZ3Vlc3MgaXQncyBhYm91dCB0aW1lIEkgZ290IHJvdW5kIHRvIHJlcXVlc3RpbmcgdGhhdDoK PiAKPiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvZnJlZWRlc2t0b3AvZnJlZWRlc2t0 b3AvaXNzdWVzLzIwOAoKU2luY2UgdGhpcyBzZWVtcyBhIGJpdCBzdHVjayBpbiBwcm9jZXNzaW5n IEkgd2VudCBhaGVhZCBhbmQgbWVyZ2VkIHlvdXIKZml4IG1lYW53aGlsZS4KClRoYW5rcywgRGFu aWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWw= 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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 82E1DC432C0 for ; Wed, 20 Nov 2019 10:52:03 +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 611182230F for ; Wed, 20 Nov 2019 10:52:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 611182230F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 676396E157; Wed, 20 Nov 2019 10:52:02 +0000 (UTC) Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id C45E06E157 for ; Wed, 20 Nov 2019 10:52:00 +0000 (UTC) Received: by mail-wm1-x342.google.com with SMTP id u18so6489153wmc.3 for ; Wed, 20 Nov 2019 02:52:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=xL5Eqw96xI7zw7RPZvuRAm2r5piO3wu0r6X5TTeGLwM=; b=AQ1WCbSfvEk6XLOCYVwjT77K9ZYBaFC43/6VKw+7/wp59zdmcVJ5wrNqgmSd1/U3Qg kUZKv/GMkylR2HYNNBDgV20uW9SigMfgwtcoCSSPGnVGRacjpAZSDLMiXtVmStWKwLsh Z1Hk9A0Mtepq0F52u4BucnqawYhXv7DWXVwGbFlYVotU2tC/qz9GtPX5EeUxLm2DZAg4 hBGuZ/DmkVeFF6J7zivZB5tjL8soGYIT8lLY96/ZMDVm+5N+X3VjbYTBvFu4ksYd7MND I/SEGrNjfppGJOgLyURdPLHXKYAbLlpByGvkQjOVQ+g7wuPGcOrDlneYqleMgxvRx7TP +56A== X-Gm-Message-State: APjAAAUzhayIukEt2sqJq1a4eJucdfvoNPQYuRIb8VcRneCXPA2pM0JZ VxILWpRQSGidzIcEZDEJyd9jiQ== X-Google-Smtp-Source: APXvYqyV6dWqQUdjw7BP4831FzJ+8KidwmZTK+LGr6+H7VoluCCS54QHTv2jn3hIAgWsWrGt2i5pgQ== X-Received: by 2002:a1c:9ccd:: with SMTP id f196mr2425570wme.152.1574247119334; Wed, 20 Nov 2019 02:51:59 -0800 (PST) Received: from phenom.ffwll.local (212-51-149-96.fiber7.init7.net. [212.51.149.96]) by smtp.gmail.com with ESMTPSA id i7sm1592617wrs.38.2019.11.20.02.51.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Nov 2019 02:51:58 -0800 (PST) Date: Wed, 20 Nov 2019 11:51:56 +0100 From: Daniel Vetter To: Steven Price Message-ID: <20191120105156.GJ30416@phenom.ffwll.local> References: <20191104173801.2972-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 5.2.0-3-amd64 User-Agent: Mutt/1.12.2 (2019-09-21) X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=xL5Eqw96xI7zw7RPZvuRAm2r5piO3wu0r6X5TTeGLwM=; b=WNNg61d2vokQOiOxYXUllTtiwC+trhloesirvlQfCyIuUPtfufWmwogVOPCPUdogix t7O3bRLVRPNHmwUYNy32lLnQY9GBSQL+hsNcGUy7rruO5zcRi7pgBUGuratQ2Ig7ZIhl LzgOaMX6BzRoG0h6pUb0qEQT2RvepLdrvG6p4= Subject: Re: [Intel-gfx] [PATCH 1/3] dma_resv: prime lockdep annotations 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: , Cc: Thomas Hellstrom , Tomeu Vizoso , Daniel Vetter , Intel Graphics Development , DRI Development , VMware Graphics , Gerd Hoffmann , Thomas Zimmermann , Daniel Vetter , Alex Deucher , Dave Airlie , Christian =?iso-8859-1?Q?K=F6nig?= , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191120105156.SDwfz1IT5OsFcv4dIUfFy52UOQXVpk-oHhU3St5si8c@z> T24gVGh1LCBOb3YgMTQsIDIwMTkgYXQgMTE6NTA6MjhBTSArMDAwMCwgU3RldmVuIFByaWNlIHdy b3RlOgo+IE9uIDExLzExLzIwMTkgMTU6NDIsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBN b24sIE5vdiAxMSwgMjAxOSBhdCAyOjExIFBNIFN0ZXZlbiBQcmljZSA8c3RldmVuLnByaWNlQGFy bS5jb20+IHdyb3RlOgo+ID4+Cj4gPj4gT24gMDQvMTEvMjAxOSAxNzozNywgRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+Pj4gRnVsbCBhdWRpdCBvZiBldmVyeW9uZToKPiA+Pj4KPiA+Pj4gLSBpOTE1 LCByYWRlb24sIGFtZGdwdSBzaG91bGQgYmUgY2xlYW4gcGVyIHRoZWlyIG1haW50YWluZXJzLgo+ ID4+Pgo+ID4+PiAtIHZyYW0gaGVscGVycyBzaG91bGQgYmUgZmluZSwgdGhleSBkb24ndCBkbyBj b21tYW5kIHN1Ym1pc3Npb24sIHNvCj4gPj4+ICAgcmVhbGx5IG5vIGJ1c2luZXNzIGhvbGRpbmcg c3RydWN0X211dGV4IHdoaWxlIGRvaW5nIGNvcHlfKl91c2VyLiBCdXQKPiA+Pj4gICBJIGhhdmVu J3QgY2hlY2tlZCB0aGVtIGFsbC4KPiA+Pj4KPiA+Pj4gLSBwYW5mcm9zdCBzZWVtcyB0byBkbWFf cmVzdl9sb2NrIG9ubHkgaW4gcGFuZnJvc3Rfam9iX3B1c2gsIHdoaWNoCj4gPj4+ICAgbG9va3Mg Y2xlYW4uCj4gPj4+Cj4gPj4+IC0gdjNkIGhvbGRzIGRtYV9yZXN2IGxvY2tzIGluIHRoZSB0YWls IG9mIGl0cyB2M2Rfc3VibWl0X2NsX2lvY3RsKCksCj4gPj4+ICAgY29weWluZyBmcm9tL3RvIHVz ZXJzcGFjZSBoYXBwZW5zIGFsbCBpbiB2M2RfbG9va3VwX2JvcyB3aGljaCBpcwo+ID4+PiAgIG91 dHNpZGUgb2YgdGhlIGNyaXRpY2FsIHNlY3Rpb24uCj4gPj4+Cj4gPj4+IC0gdm13Z2Z4IGhhcyBh IGJ1bmNoIG9mIGlvY3RscyB0aGF0IGRvIHRoZWlyIG93biBjb3B5XypfdXNlcjoKPiA+Pj4gICAt IHZtd19leGVjYnVmX3Byb2Nlc3M6IEZpcnN0IHRoaXMgZG9lcyBzb21lIGNvcGllcyBpbgo+ID4+ PiAgICAgdm13X2V4ZWNidWZfY21kYnVmKCkgYW5kIGFsc28gaW4gdGhlIHZtd19leGVjYnVmX3By b2Nlc3MoKSBpdHNlbGYuCj4gPj4+ICAgICBUaGVuIGNvbWVzIHRoZSB1c3VhbCB0dG0gcmVzZXJ2 ZS92YWxpZGF0ZSBzZXF1ZW5jZSwgdGhlbiBhY3R1YWwKPiA+Pj4gICAgIHN1Ym1pc3Npb24vZmVu Y2luZywgdGhlbiB1bnJlc2VydmluZywgYW5kIGZpbmFsbHkgc29tZSBtb3JlCj4gPj4+ICAgICBj b3B5X3RvX3VzZXIgaW4gdm13X2V4ZWNidWZfY29weV9mZW5jZV91c2VyLiBHbG9zc2luZyBvdmVy IHRvbnMgb2YKPiA+Pj4gICAgIGRldGFpbHMsIGJ1dCBsb29rcyBhbGwgc2FmZS4KPiA+Pj4gICAt IHZtd19mZW5jZV9ldmVudF9pb2N0bDogTm8gdHRtX3Jlc2VydmUvZG1hX3Jlc3ZfbG9jayBhbnl3 aGVyZSB0byBiZQo+ID4+PiAgICAgc2Vlbiwgc2VlbXMgdG8gb25seSBjcmVhdGUgYSBmZW5jZSBh bmQgY29weSBpdCBvdXQuCj4gPj4+ICAgLSBhIHBpbGUgb2Ygc21hbGxlciBpb2N0bCBpbiB2bXdn ZnhfaW9jdGwuYywgbm8gcmVzZXJ2YXRpb25zIHRvIGJlCj4gPj4+ICAgICBmb3VuZCB0aGVyZS4K PiA+Pj4gICBTdW1tYXJ5OiB2bXdnZnggc2VlbXMgdG8gYmUgZmluZSB0b28uCj4gPj4+Cj4gPj4+ IC0gdmlydGlvOiBUaGVyZSdzIHZpcnRpb19ncHVfZXhlY2J1ZmZlcl9pb2N0bCwgd2hpY2ggZG9l cyBhbGwgdGhlCj4gPj4+ICAgY29weWluZyBmcm9tIHVzZXJzcGFjZSBiZWZvcmUgZXZlbiBsb29r aW5nIHVwIG9iamVjdHMgdGhyb3VnaCB0aGVpcgo+ID4+PiAgIGhhbmRsZXMsIHNvIHNhZmUuIFBs dXMgdGhlIGdldHBhcmFtL2dldGNhcHMgaW9jdGwsIGFsc28gYm90aCBzYWZlLgo+ID4+Pgo+ID4+ PiAtIHF4bCBvbmx5IGhhcyBxeGxfZXhlY2J1ZmZlcl9pb2N0bCwgd2hpY2ggY2FsbHMgaW50bwo+ ID4+PiAgIHF4bF9wcm9jZXNzX3NpbmdsZV9jb21tYW5kLiBUaGVyZSdzIGEgbG92ZWx5IGNvbW1l bnQgYmVmb3JlIHRoZQo+ID4+PiAgIF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMgdGhhdCB0aGUg c2xvd3BhdGggc2hvdWxkIGJlIGNvcGllZCBmcm9tCj4gPj4+ICAgaTkxNSwgYnV0IEkgZ3Vlc3Mg dGhhdCBuZXZlciBoYXBwZW5lZC4gVHJ5IG5vdCB0byBiZSB1bmx1Y2t5IGFuZCBnZXQKPiA+Pj4g ICB5b3VyIENTIGRhdGEgZXZpY3RlZCBiZXR3ZWVuIHdoZW4gaXQncyB3cml0dGVuIGFuZCB0aGUg a2VybmVsIHRyaWVzCj4gPj4+ICAgdG8gcmVhZCBpdC4gVGhlIG9ubHkgb3RoZXIgY29weV9mcm9t X3VzZXIgaXMgZm9yIHJlbG9jcywgYnV0IHRob3NlCj4gPj4+ICAgYXJlIGRvbmUgYmVmb3JlIHF4 bF9yZWxlYXNlX3Jlc2VydmVfbGlzdCgpLCB3aGljaCBzZWVtcyB0byBiZSB0aGUKPiA+Pj4gICBv bmx5IHRoaW5nIHJlc2VydmluZyBidWZmZXJzIChpbiB0aGUgdHRtL2RtYV9yZXN2IHNlbnNlKSBp biB0aGF0Cj4gPj4+ICAgY29kZS4gU28gbG9va3Mgc2FmZS4KPiA+Pj4KPiA+Pj4gLSBBIGRlYnVn ZnMgZmlsZSBpbiBub3V2ZWF1X2RlYnVnZnNfcHN0YXRlX3NldCgpIGFuZCB0aGUgdXNpZiBpb2N0 bCBpbgo+ID4+PiAgIHVzaWZfaW9jdGwoKSBsb29rIHNhZmUuIG5vdXZlYXVfZ2VtX2lvY3RsX3B1 c2hidWYoKSBvdG9oIGJyZWFrcyB0aGlzCj4gPj4+ICAgZXZlcnl3aGVyZSBhbmQgbmVlZHMgdG8g YmUgZml4ZWQgdXAuCj4gPj4+Cj4gPj4+IHYyOiBUaG9tYXMgcG9pbnRlZCBhdCB0aGF0IHZtd2dm eCBjYWxscyBkbWFfcmVzdl9pbml0IHdoaWxlIGl0IGhvbGRzIGEKPiA+Pj4gZG1hX3Jlc3YgbG9j ayBvZiBhIGRpZmZlcmVudCBvYmplY3QgYWxyZWFkeS4gQ2hyaXN0aWFuIG1lbnRpb25lZCB0aGF0 Cj4gPj4+IHR0bSBjb3JlIGRvZXMgdGhpcyB0b28gZm9yIGdob3N0IG9iamVjdHMuIGludGVsLWdm eC1jaSBoaWdobGlnaHRlZAo+ID4+PiB0aGF0IGk5MTUgaGFzIHNpbWlsYXIgaXNzdWVzLgo+ID4+ Pgo+ID4+PiBVbmZvcnR1bmF0ZWx5IHdlIGNhbid0IGRvIHRoaXMgaW4gdGhlIHVzdWFsIG1vZHVs ZSBpbml0IGZ1bmN0aW9ucywKPiA+Pj4gYmVjYXVzZSBrZXJuZWwgdGhyZWFkcyBkb24ndCBoYXZl IGFuIC0+bW0gLSB3ZSBoYXZlIHRvIHdhaXQgYXJvdW5kIGZvcgo+ID4+PiBzb21lIHVzZXIgdGhy ZWFkIHRvIGRvIHRoaXMuCj4gPj4+Cj4gPj4+IFNvbHV0aW9uIGlzIHRvIHNwYXduIGEgd29ya2Vy IChidXQgb25seSBvbmNlKS4gSXQncyBob3JyaWJsZSwgYnV0IGl0Cj4gPj4+IHdvcmtzLgo+ID4+ Pgo+ID4+PiB2MzogV2UgY2FuIGFsbG9jYXRlIG1tISAoQ2hyaXMpLiBIb3JyaWJsZSB3b3JrZXIg aGFjayBvdXQsIGNsZWFuCj4gPj4+IGluaXRjYWxsIHNvbHV0aW9uIGluLgo+ID4+Pgo+ID4+PiB2 NDogQW5ub3RhdGUgd2l0aCBfX2luaXQgKFJvYiBIZXJyaW5nKQo+ID4+Pgo+ID4+PiBDYzogUm9i IEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KPiA+Pj4gQ2M6IEFsZXggRGV1Y2hlciA8YWxleGFu ZGVyLmRldWNoZXJAYW1kLmNvbT4KPiA+Pj4gQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KPiA+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+ID4+PiBDYzogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2Uu ZGU+Cj4gPj4+IENjOiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgo+ID4+PiBDYzogVG9t ZXUgVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT4KPiA+Pj4gQ2M6IEVyaWMgQW5o b2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4gPj4+IENjOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRo YXQuY29tPgo+ID4+PiBDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Cj4gPj4+ IENjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Cj4gPj4+IENjOiAiVk13YXJlIEdy YXBoaWNzIiA8bGludXgtZ3JhcGhpY3MtbWFpbnRhaW5lckB2bXdhcmUuY29tPgo+ID4+PiBDYzog VGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgo+ID4+PiBSZXZpZXdlZC1i eTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+ID4+PiBSZXZp ZXdlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPj4+IFRl c3RlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPj4+IFNp Z25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4+ PiAtLS0KPiA+Pj4gIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jIHwgMjQgKysrKysrKysrKysr KysrKysrKysrKysrCj4gPj4+ICAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQo+ID4+ Pgo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMgYi9kcml2ZXJz L2RtYS1idWYvZG1hLXJlc3YuYwo+ID4+PiBpbmRleCA3MDkwMDI1MTU1NTAuLmEwNWZmNTQyYmUy MiAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMKPiA+Pj4gKysr IGIvZHJpdmVycy9kbWEtYnVmL2RtYS1yZXN2LmMKPiA+Pj4gQEAgLTM0LDYgKzM0LDcgQEAKPiA+ Pj4KPiA+Pj4gICNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgo+ID4+PiAgI2luY2x1ZGUgPGxp bnV4L2V4cG9ydC5oPgo+ID4+PiArI2luY2x1ZGUgPGxpbnV4L3NjaGVkL21tLmg+Cj4gPj4+Cj4g Pj4+ICAvKioKPiA+Pj4gICAqIERPQzogUmVzZXJ2YXRpb24gT2JqZWN0IE92ZXJ2aWV3Cj4gPj4+ IEBAIC05NSw2ICs5NiwyOSBAQCBzdGF0aWMgdm9pZCBkbWFfcmVzdl9saXN0X2ZyZWUoc3RydWN0 IGRtYV9yZXN2X2xpc3QgKmxpc3QpCj4gPj4+ICAgICAgIGtmcmVlX3JjdShsaXN0LCByY3UpOwo+ ID4+PiAgfQo+ID4+Pgo+ID4+PiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0xPQ0tERVApCj4gPj4+ ICtzdGF0aWMgdm9pZCBfX2luaXQgZG1hX3Jlc3ZfbG9ja2RlcCh2b2lkKQo+ID4+PiArewo+ID4+ PiArICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IG1tX2FsbG9jKCk7Cj4gPj4+ICsgICAgIHN0 cnVjdCBkbWFfcmVzdiBvYmo7Cj4gPj4+ICsKPiA+Pj4gKyAgICAgaWYgKCFtbSkKPiA+Pj4gKyAg ICAgICAgICAgICByZXR1cm47Cj4gPj4+ICsKPiA+Pj4gKyAgICAgZG1hX3Jlc3ZfaW5pdCgmb2Jq KTsKPiA+Pj4gKwo+ID4+PiArICAgICBkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7Cj4gPj4+ICsg ICAgIHd3X211dGV4X2xvY2soJm9iai5sb2NrLCBOVUxMKTsKPiA+Pj4gKyAgICAgZnNfcmVjbGFp bV9hY3F1aXJlKEdGUF9LRVJORUwpOwo+ID4+PiArICAgICBmc19yZWNsYWltX3JlbGVhc2UoR0ZQ X0tFUk5FTCk7Cj4gPj4+ICsgICAgIHd3X211dGV4X3VubG9jaygmb2JqLmxvY2spOwo+ID4+PiAr ICAgICB1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwo+ID4+PiArCj4gPj4KPiA+PiBOaXQ6IHRyYWls aW5nIHdoaXRlc3BhY2UKPiA+Pgo+ID4+PiArICAgICBtbXB1dChtbSk7Cj4gPj4+ICt9Cj4gPj4+ ICtzdWJzeXNfaW5pdGNhbGwoZG1hX3Jlc3ZfbG9ja2RlcCk7Cj4gPj4KPiA+PiBUaGlzIGV4cGVj dHMgYSBmdW5jdGlvbiByZXR1cm5pbmcgaW50LCBidXQgZG1hX3Jlc3ZfbG9ja2RlcCgpIGlzIHZv aWQuCj4gPj4gQ2F1c2luZzoKPiA+Pgo+ID4+IGRyaXZlcnMvZG1hLWJ1Zi9kbWEtcmVzdi5jOjEx OToxNzogZXJyb3I6IGluaXRpYWxpemF0aW9uIG9mIOKAmGluaXRjYWxsX3TigJkKPiA+PiB7YWth IOKAmGludCAoKikodm9pZCnigJl9IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSDigJh2 b2lkICgqKSh2b2lkKeKAmQo+ID4+IFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVz XQo+ID4+ICBzdWJzeXNfaW5pdGNhbGwoZG1hX3Jlc3ZfbG9ja2RlcCk7Cj4gPj4KPiA+PiBUaGUg YmVsb3cgZml4ZXMgaXQgZm9yIG1lLgo+ID4gCj4gPiBVaCwgc28gX3RoYXRfIHdhcyB3aGF0IHRo ZSAwZGF5IHRoaW5nIHdhcyBhbGwgYWJvdXQsIEkgdG90YWxseSBtaXNyZWFkCj4gPiB0aGF0IGNv bXBsZXRlbHkuIFRoYW5rcyBmb3IgdGhlIHBhdGNoLgo+ID4gCj4gPiBSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IAo+ID4gQXNpZGUsIGRvIHlv dSBuZWVkIGNvbW1pdCByaWdodHMgZm9yIHB1c2hpbmcgdGhpcyBraW5kIG9mIHN0dWZmPwo+IAo+ IEkgZ3Vlc3MgaXQncyBhYm91dCB0aW1lIEkgZ290IHJvdW5kIHRvIHJlcXVlc3RpbmcgdGhhdDoK PiAKPiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvZnJlZWRlc2t0b3AvZnJlZWRlc2t0 b3AvaXNzdWVzLzIwOAoKU2luY2UgdGhpcyBzZWVtcyBhIGJpdCBzdHVjayBpbiBwcm9jZXNzaW5n IEkgd2VudCBhaGVhZCBhbmQgbWVyZ2VkIHlvdXIKZml4IG1lYW53aGlsZS4KClRoYW5rcywgRGFu aWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=