From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: [PATCH v4 4/5] drm/amdgpu: use bulk moves for efficient VM LRU handling (v4) Date: Fri, 17 Aug 2018 18:08:00 +0800 Message-ID: <1534500481-15123-5-git-send-email-ray.huang@amd.com> References: <1534500481-15123-1-git-send-email-ray.huang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534500481-15123-1-git-send-email-ray.huang@amd.com> 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, amd-gfx@lists.freedesktop.org Cc: Huang Rui , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org SSBjb250aW51ZSB0byB3b3JrIGZvciBidWxrIG1vdmluZyB0aGF0IGJhc2VkIG9uIHRoZSBwcm9w b3NhbCBieSBDaHJpc3RpYW4uCgpCYWNrZ3JvdW5kOgphbWRncHUgZHJpdmVyIHdpbGwgbW92ZSBh bGwgUEQvUFQgYW5kIFBlclZNIEJPcyBpbnRvIGlkbGUgbGlzdC4gVGhlbiBtb3ZlIGFsbCBvZgp0 aGVtIG9uIHRoZSBlbmQgb2YgTFJVIGxpc3Qgb25lIGJ5IG9uZS4gVGh1cywgdGhhdCBjYXVzZSBz byBtYW55IEJPcyBtb3ZlZCB0bwp0aGUgZW5kIG9mIHRoZSBMUlUsIGFuZCBpbXBhY3QgcGVyZm9y bWFuY2Ugc2VyaW91c2x5LgoKVGhlbiBDaHJpc3RpYW4gcHJvdmlkZWQgYSB3b3JrYXJvdW5kIHRv IG5vdCBtb3ZlIFBEL1BUIEJPcyBvbiBMUlUgd2l0aCBiZWxvdwpwYXRjaDoKImRybS9hbWRncHU6 IGJhbmQgYWlkIHZhbGlkYXRpbmcgVk0gUFRzIgpDb21taXQgMGJiZjMyMDI2Y2Y1YmE0MWU5OTIy YjMwZTI2ZTFiZWQxZWNkMzhhZQoKSG93ZXZlciwgdGhlIGZpbmFsIHNvbHV0aW9uIHNob3VsZCBi dWxrIG1vdmUgYWxsIFBEL1BUIGFuZCBQZXJWTSBCT3Mgb24gdGhlIExSVQppbnN0ZWFkIG9mIG9u ZSBieSBvbmUuCgpXaGVuZXZlciBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKCkgaXMgY2FsbGVk IGFuZCB3ZSBoYXZlIEJPcyB3aGljaCBuZWVkIHRvIGJlCnZhbGlkYXRlZCB3ZSBtb3ZlIGFsbCBC T3MgdG9nZXRoZXIgdG8gdGhlIGVuZCBvZiB0aGUgTFJVIHdpdGhvdXQgZHJvcHBpbmcgdGhlCmxv Y2sgZm9yIHRoZSBMUlUuCgpXaGlsZSBkb2luZyBzbyB3ZSBub3RlIHRoZSBiZWdpbm5pbmcgYW5k IGVuZCBvZiB0aGlzIGJsb2NrIGluIHRoZSBMUlUgbGlzdC4KCk5vdyB3aGVuIGFtZGdwdV92bV92 YWxpZGF0ZV9wdF9ib3MoKSBpcyBjYWxsZWQgYW5kIHdlIGRvbid0IGhhdmUgYW55dGhpbmcgdG8g ZG8sCndlIGRvbid0IG1vdmUgZXZlcnkgQk8gb25lIGJ5IG9uZSwgYnV0IGluc3RlYWQgY3V0IHRo ZSBMUlUgbGlzdCBpbnRvIHBpZWNlcyBzbwp0aGF0IHdlIGJ1bGsgbW92ZSBldmVyeXRoaW5nIHRv IHRoZSBlbmQgaW4ganVzdCBvbmUgb3BlcmF0aW9uLgoKVGVzdCBkYXRhOgorLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKwp8ICAgICAgICAgICAgICB8VGhlIFRhbG9zICAgICAgICB8Q2xwZWFr KE9DTCl8QnVzU3BlZWRSZWFkYmFjayhPQ0wpICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAg ICAgICB8UHJpbmNpcGxlKFZ1bGthbil8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8MC4zMTkgbXMoMWspIDAuMzE0 IG1zKDJLKSAwLjMwOCBtcyg0SykgfAp8IE9yaWdpbmFsICAgICB8ICAxNDcuNyBGUFMgICAgICB8 ICA3Ni44NiB1cyB8MC4zMDcgbXMoOEspIDAuMzEwIG1zKDE2SykgICAgICAgICAgICAgfAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IE9yaWduaWFsICsgV0F8ICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8MC4yNTQgbXMoMUspIDAuMjQxIG1zKDJLKSAgICAgICAgICAgICAgfAp8 KGRvbid0IG1vdmUgICB8ICAxNjIuMSBGUFMgICAgICB8ICA0Mi4xNSB1cyB8MC4yMzAgbXMoNEsp IDAuMjIzIG1zKDhLKSAwLjIwNCBtcygxNkspfAp8UFQgQk9zIG9uIExSVSl8ICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IEJ1bGsgbW92ZSAgICB8ICAxNjMuMSBG UFMgICAgICB8ICA0MC41MiB1cyB8MC4yNDQgbXMoMUspIDAuMjUyIG1zKDJLKSAwLjIxMyBtcyg0 SykgfAp8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8MC4yMTQg bXMoOEspIDAuMjI1IG1zKDE2SykgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwoKQWZ0ZXIgdGVzdCB0aGVtIHdpdGggYWJvdmUgdGhyZWUgYmVuY2htYXJrcyBpbmNs dWRlIHZ1bGthbiBhbmQgb3BlbmNsLiBXZSBjYW4Kc2VlIHRoZSB2aXNpYmxlIGltcHJvdmVtZW50 IHRoYW4gb3JpZ2luYWwsIGFuZCBldmVuIGJldHRlciB0aGFuIG9yaWdpbmFsIHdpdGgKd29ya2Fy b3VuZC4KCnYyOiBtb3ZlIGFsbCBCT3MgaW5jbHVkZSBpZGxlLCByZWxvY2F0ZWQsIGFuZCBtb3Zl ZCBsaXN0IHRvIHRoZSBlbmQgb2YgTFJVIGFuZApwdXQgdGhlbSB0b2dldGhlci4KdjM6IHJlbW92 ZSB1bnVzZWQgcGFyYW1ldGVyIGFuZCB1c2UgbGlzdF9mb3JfZWFjaF9lbnRyeSBpbnN0ZWFkIG9m IHRoZSBvbmUgd2l0aApzYXZlIGVudHJ5Lgp2NDogbW92ZSB0aGUgYW1kZ3B1X3ZtX21vdmVfdG9f bHJ1X3RhaWwgYWZ0ZXIgY29tbWFuZCBzdWJtaXNzaW9uLCBhdCB0aGF0IHRpbWUsCmFsbCBibyB3 aWxsIGJlIGJhY2sgb24gaWRsZSBsaXN0LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJh eS5odWFuZ0BhbWQuY29tPgpUZXN0ZWQtYnk6IE1pa2UgTG90aGlhbiA8bWlrZUBmaXJlYnVybi5j by51az4KVGVzdGVkLWJ5OiBEaWV0ZXIgTsO8dHplbCA8RGlldGVyQG51ZXR6ZWwtaGguZGU+CkFj a2VkLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIHwgMTEgKysrKysrCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oIHwgMTEgKysr KystCiAzIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKaW5kZXggNTAyYjk0Zi4uOWZiZGYw MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTEyNjAsNiArMTI2 MCwxNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zdWJtaXQoc3RydWN0IGFtZGdwdV9jc19wYXJz ZXIgKnAsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIGFtZGdwdV9jc192bV9tb3ZlX29u X2xydShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKKwkJCQkgICAgIHN0cnVjdCBhbWRncHVf Y3NfcGFyc2VyICpwKQoreworCXN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gcC0+ZmlscC0+ ZHJpdmVyX3ByaXY7CisJc3RydWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYtPnZtOworCisJaWYg KHZtLT52YWxpZGF0ZWQpCisJCWFtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsKGFkZXYsIHZtKTsK K30KKwogaW50IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtMTMxMCw2ICsxMzIwLDcgQEAgaW50IGFtZGdwdV9j c19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbHApCiAKIAlyID0gYW1kZ3B1X2NzX3N1Ym1pdCgmcGFyc2VyLCBjcyk7CiAKKwlhbWRn cHVfY3Nfdm1fbW92ZV9vbl9scnUoYWRldiwgJnBhcnNlcik7CiBvdXQ6CiAJYW1kZ3B1X2NzX3Bh cnNlcl9maW5pKCZwYXJzZXIsIHIsIHJlc2VydmVkX2J1ZmZlcnMpOwogCXJldHVybiByOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwppbmRleCA5Yzg0NzcwLi4wMzdjZmJjIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwpAQCAtMjY4LDYgKzI2OCw1MyBA QCB2b2lkIGFtZGdwdV92bV9nZXRfcGRfYm8oc3RydWN0IGFtZGdwdV92bSAqdm0sCiB9CiAKIC8q KgorICogYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWxfYnlfbGlzdCAtIG1vdmUgb25lIGxpc3Qg b2YgQk9zIHRvIGVuZCBvZiBMUlUKKyAqCisgKiBAdm06IHZtIHByb3ZpZGluZyB0aGUgQk9zCisg KiBAbGlzdDogdGhlIGxpc3QgdGhhdCBzdG9yZWQgQk9zCisgKgorICogTW92ZSBvbmUgbGlzdCBv ZiBCT3MgdG8gdGhlIGVuZCBvZiBMUlUgYW5kIHVwZGF0ZSB0aGUgcG9zaXRpb25zLgorICovCitz dGF0aWMgdm9pZAorYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWxfYnlfbGlzdChzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X3Zt X2JvX2Jhc2UgKmJvX2Jhc2U7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX2Jhc2UsIGxpc3Qs IHZtX3N0YXR1cykgeworCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGJvX2Jhc2UtPmJvOworCisJ CWlmICghYm8tPnBhcmVudCkKKwkJCWNvbnRpbnVlOworCisJCXR0bV9ib19tb3ZlX3RvX2xydV90 YWlsKCZiby0+dGJvLCAmdm0tPmxydV9idWxrX21vdmUpOworCQlpZiAoYm8tPnNoYWRvdykKKwkJ CXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+c2hhZG93LT50Ym8sCisJCQkJCQkmdm0tPmxy dV9idWxrX21vdmUpOworCX0KK30KKworLyoqCisgKiBhbWRncHVfdm1fbW92ZV90b19scnVfdGFp bCAtIG1vdmUgYWxsIEJPcyB0byB0aGUgZW5kIG9mIExSVQorICoKKyAqIEBhZGV2OiBhbWRncHUg ZGV2aWNlIHBvaW50ZXIKKyAqIEB2bTogdm0gcHJvdmlkaW5nIHRoZSBCT3MKKyAqCisgKiBNb3Zl IGFsbCBCT3MgdG8gdGhlIGVuZCBvZiBMUlUgYW5kIHJlbWVtYmVyIHRoZWlyIHBvc2l0aW9ucyB0 byBwdXQgdGhlbQorICogdG9nZXRoZXIuCisgKi8KK3ZvaWQgYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1 X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJc3RydWN0IGFtZGdwdV92bSAq dm0pCit7CisJc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSBhZGV2LT5tbWFuLmJkZXYuZ2xv YjsKKworCW1lbXNldCgmdm0tPmxydV9idWxrX21vdmUsIDAsIHNpemVvZih2bS0+bHJ1X2J1bGtf bW92ZSkpOworCisJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJYW1kZ3B1X3ZtX21vdmVf dG9fbHJ1X3RhaWxfYnlfbGlzdCh2bSwgJnZtLT5pZGxlKTsKKwlzcGluX3VubG9jaygmZ2xvYi0+ bHJ1X2xvY2spOworfQorCisvKioKICAqIGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3MgLSB2YWxp ZGF0ZSB0aGUgcGFnZSB0YWJsZSBCT3MKICAqCiAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2lu dGVyCkBAIC0yODgsNiArMzM1LDcgQEAgaW50IGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3Moc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCXN0cnVjdCBh bWRncHVfdm1fYm9fYmFzZSAqYm9fYmFzZSwgKnRtcDsKIAlpbnQgciA9IDA7CiAKKwl2bS0+dmFs aWRhdGVkID0gZmFsc2U7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJvX2Jhc2UsIHRtcCwg JnZtLT5ldmljdGVkLCB2bV9zdGF0dXMpIHsKIAkJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBib19i YXNlLT5ibzsKIApAQCAtMjk1LDE0ICszNDMsOSBAQCBpbnQgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0 X2JvcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJ CQlyID0gdmFsaWRhdGUocGFyYW0sIGJvKTsKIAkJCWlmIChyKQogCQkJCWJyZWFrOwotCi0JCQlz cGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKLQkJCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZi by0+dGJvLCBOVUxMKTsKLQkJCWlmIChiby0+c2hhZG93KQotCQkJCXR0bV9ib19tb3ZlX3RvX2xy dV90YWlsKCZiby0+c2hhZG93LT50Ym8sIE5VTEwpOwotCQkJc3Bpbl91bmxvY2soJmdsb2ItPmxy dV9sb2NrKTsKIAkJfQogCisJCXZtLT52YWxpZGF0ZWQgPSB0cnVlOwogCQlpZiAoYm8tPnRiby50 eXBlICE9IHR0bV9ib190eXBlX2tlcm5lbCkgewogCQkJc3Bpbl9sb2NrKCZ2bS0+bW92ZWRfbG9j ayk7CiAJCQlsaXN0X21vdmUoJmJvX2Jhc2UtPnZtX3N0YXR1cywgJnZtLT5tb3ZlZCk7CkBAIC0z MTIsMjAgKzM1NSwxNCBAQCBpbnQgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sCiAJCX0KIAl9CiAKLQlzcGlu X2xvY2soJmdsb2ItPmxydV9sb2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX2Jhc2UsICZ2 bS0+aWRsZSwgdm1fc3RhdHVzKSB7Ci0JCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+ Ym87Ci0KLQkJaWYgKCFiby0+cGFyZW50KQotCQkJY29udGludWU7CisJaWYgKHZtLT52YWxpZGF0 ZWQpCisJCXJldHVybiAwOwogCi0JCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+dGJvLCBO VUxMKTsKLQkJaWYgKGJvLT5zaGFkb3cpCi0JCQl0dG1fYm9fbW92ZV90b19scnVfdGFpbCgmYm8t PnNoYWRvdy0+dGJvLCBOVUxMKTsKLQl9CisJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJ dHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbCgmdm0tPmxydV9idWxrX21vdmUpOwogCXNwaW5fdW5s b2NrKCZnbG9iLT5scnVfbG9jayk7CiAKLQlyZXR1cm4gcjsKKwlyZXR1cm4gMDsKIH0KIAogLyoq CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCmluZGV4IDY3YTE1ZDQuLjg1ZDU3 YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCkBAIC0yOSw2ICsyOSw3 IEBACiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CiAjaW5jbHVkZSA8ZHJtL2dwdV9zY2hlZHVs ZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9i b19kcml2ZXIuaD4KIAogI2luY2x1ZGUgImFtZGdwdV9zeW5jLmgiCiAjaW5jbHVkZSAiYW1kZ3B1 X3JpbmcuaCIKQEAgLTIyNiw2ICsyMjcsMTEgQEAgc3RydWN0IGFtZGdwdV92bSB7CiAKIAkvKiBT b21lIGJhc2ljIGluZm8gYWJvdXQgdGhlIHRhc2sgKi8KIAlzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5m byB0YXNrX2luZm87CisKKwkvKiBTdG9yZSBwb3NpdGlvbnMgb2YgZ3JvdXAgb2YgQk9zICovCisJ c3RydWN0IHR0bV9scnVfYnVsa19tb3ZlIGxydV9idWxrX21vdmU7CisJLyogbWFyayB3aGV0aGVy IGhhcyBibyB2YWxpZGF0ZWQgb24gZXZpY3RlZCBsaXN0ICovCisJYm9vbAkJCXZhbGlkYXRlZDsK IH07CiAKIHN0cnVjdCBhbWRncHVfdm1fbWFuYWdlciB7CkBAIC0zMzAsOCArMzM2LDExIEBAIGJv b2wgYW1kZ3B1X3ZtX25lZWRfcGlwZWxpbmVfc3luYyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs CiB2b2lkIGFtZGdwdV92bV9jaGVja19jb21wdXRlX2J1ZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldik7CiAKIHZvaWQgYW1kZ3B1X3ZtX2dldF90YXNrX2luZm8oc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsIHVuc2lnbmVkIGludCBwYXNpZCwKLQkJCSBzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5m byAqdGFza19pbmZvKTsKKwkJCSAgICAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gKnRhc2tfaW5m byk7CiAKIHZvaWQgYW1kZ3B1X3ZtX3NldF90YXNrX2luZm8oc3RydWN0IGFtZGdwdV92bSAqdm0p OwogCit2b2lkIGFtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LAorCQkJCXN0cnVjdCBhbWRncHVfdm0gKnZtKTsKKwogI2VuZGlmCi0tIAoyLjcuNAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==