From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Brooks Subject: [PATCH 9/9] drm/amdgpu: Reduce lock contention when evicting from visible VRAM Date: Fri, 23 Jun 2017 13:39:40 -0400 Message-ID: <1498239580-17360-10-git-send-email-john@fastquake.com> References: <1498239580-17360-1-git-send-email-john@fastquake.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1498239580-17360-1-git-send-email-john@fastquake.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: amd-gfx@lists.freedesktop.org, =?UTF-8?q?Michel=20D=C3=A4nzer?= , =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org UGVyZm9ybWluZyBleHBlbnNpdmUgQk8gbW92ZXMgYXN5bmNocm9ub3VzbHkgcmVkdWNlcyB0aGUg ZGlyZWN0IGJ1cmRlbiBvbgp0aGUgQ1MgcGF0aCwgYnV0IGl0IGNhbiBzdGlsbCBpbmRpcmVjdGx5 IGNhdXNlIG9jY2FzaW9uYWwgc3RhbGxzIGJlY2F1c2UKdGhlIHdvcmtlciBtYXkgcmVzZXJ2ZSB0 aGUgQk8gZm9yIGEgbG9uZyB0aW1lIGR1cmluZyBldmljdGlvbnMsIGFuZCBpZiB0aGlzCmNvaW5j aWRlcyB3aXRoIGl0IGJlaW5nIG5lZWRlZCBieSBDUywgdGhlIENTIHBhdGggd2lsbCBoYXZlIHRv IHdhaXQuCgpJbnN0ZWFkIG9mIHJlc2VydmluZyB0aGUgQk8gYW5kIGtlZXBpbmcgaXQgcmVzZXJ2 ZWQgd2hpbGUgd2Ugd2FpdCBmb3IKdHRtX2JvX3ZhbGlkYXRlKCkgdG8gbW92ZSBpdCBhbmQgcGVy Zm9ybSBhbnkgZXZpY3Rpb25zLCB3ZSBjYW4gYWZmb3JkIHRvIGJlCm1vcmUgc3VyZ2ljYWwgYW5k IHJlLWltcGxlbWVudCB0aGUgdHRtX2JvX3ZhbGlkYXRlKCkgcGF0aCBpbiB0aGUgd29ya2VyCmZ1 bmN0aW9uIHdpdGggc29tZSBjaGFuZ2VzIHRvIG1ha2UgaXQgZnJpZW5kbGllciB0byBvdGhlciB0 aHJlYWRzLgoKU3BlY2lmaWNhbGx5LCBpZiBldmljdGlvbnMgYXJlIG5lZWRlZCB3aGVuIG1vdmlu ZyBhIEJPIHRvIHZpc2libGUgVlJBTSwKdW5yZXNlcnZlIHRoZSBCTyB3aGlsZSBwZXJmb3JtaW5n IHRoZW0sIHNvIGFzIHRvIG5vdCBibG9jayBvdGhlciB0YXNrcyBmb3IKdG9vIGxvbmcuIEFsc28s IHNsZWVwIGZvciBhbiBpbnRlcnZhbCBiZXR3ZWVuIGVhY2ggZXZpY3Rpb24gc28gdGhhdCB0aGUK d29ya2VyIGRvZXNuJ3QgaG9nIGxydV9sb2NrLgoKU2lnbmVkLW9mZi1ieTogSm9obiBCcm9va3Mg PGpvaG5AZmFzdHF1YWtlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfb2JqZWN0LmMgfCA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICB8IDM0ICsrKysrKystLS0tLQogaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCAgICAgICAgICAgIHwgMTMgKysrKysKIGluY2x1 ZGUvZHJtL3R0bS90dG1fcGxhY2VtZW50LmggICAgICAgICAgICB8ICA2ICsrCiA0IGZpbGVzIGNo YW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKaW5kZXggYTY5NDQxZC4uODU0ZTAzNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwpAQCAtMzM3LDEwICsz MzcsMTYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2JvX21vdmVfdmlzX3ZyYW1fd29ya19mdW5jKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGNvbnRhaW5l cl9vZih3b3JrLCBzdHJ1Y3QgYW1kZ3B1X2JvLAogCQkJCQkgICAgbW92ZV92aXNfdnJhbV93b3Jr KTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+dGJv LmJkZXYpOworCXN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKKwlzdHJ1Y3QgdHRtX21l bV9yZWcgbWVtOworCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gJmJvLT50Ym8u YmRldi0+bWFuW1RUTV9QTF9WUkFNXTsKIAl1NjQgaW5pdGlhbF9ieXRlc19tb3ZlZCwgYnl0ZXNf bW92ZWQ7CiAJdWludDMyX3Qgb2xkX21lbTsKKwl1aW50MzJfdCBuZXdfZmxhZ3M7CiAJaW50IHI7 CiAKKwltZW0ubW1fbm9kZSA9IE5VTEw7CisKIAlzcGluX2xvY2soJmFkZXYtPm1tX3N0YXRzLmxv Y2spOwogCWlmIChhZGV2LT5tbV9zdGF0cy5hY2N1bV91c192aXMgPD0gMCB8fAogCSAgICBhZGV2 LT5tbV9zdGF0cy5hY2N1bV91cyA8PSAwKSB7CkBAIC0zNTksMTcgKzM2NSw5NyBAQCBzdGF0aWMg dm9pZCBhbWRncHVfYm9fbW92ZV92aXNfdnJhbV93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQogCQlnb3RvIG91dDsKIAogCWFtZGdwdV90dG1fcGxhY2VtZW50X2Zyb21fZG9tYWlu KGJvLCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKTsKKwlwbGFjZW1lbnQgPSBiby0+cGxhY2VtZW50 OworCisJaWYgKHR0bV9ib19tZW1fY29tcGF0KCZwbGFjZW1lbnQsICZiby0+dGJvLm1lbSwgJm5l d19mbGFncykpCisJCWdvdG8gb3V0OworCisJbWVtLm51bV9wYWdlcyA9IGJvLT50Ym8ubnVtX3Bh Z2VzOworCW1lbS5zaXplID0gbWVtLm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOworCW1lbS5wYWdl X2FsaWdubWVudCA9IGJvLT50Ym8ubWVtLnBhZ2VfYWxpZ25tZW50OworCW1lbS5idXMuaW9fcmVz ZXJ2ZWRfdm0gPSBmYWxzZTsKKwltZW0uYnVzLmlvX3Jlc2VydmVkX2NvdW50ID0gMDsKKworCXBs YWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAwOworCiAJb2xkX21lbSA9IGJvLT50Ym8ubWVt Lm1lbV90eXBlOwogCWluaXRpYWxfYnl0ZXNfbW92ZWQgPSBhdG9taWM2NF9yZWFkKCZhZGV2LT5u dW1fYnl0ZXNfbW92ZWQpOwotCXR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1l bnQsIGZhbHNlLCBmYWxzZSk7CisKKwlyID0gdHRtX2JvX21lbV9zcGFjZSgmYm8tPnRibywgJnBs YWNlbWVudCwgJm1lbSwgZmFsc2UsIGZhbHNlKTsKKwlpZiAociA9PSAtRU5PTUVNKSB7CisJCS8q IFVucmVzZXJ2ZSB0aGUgQk8gd2hpbGUgd2UgbWFrZSBzcGFjZSBmb3IgaXQgKi8KKwkJc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+dGJvLmJkZXY7CisKKwkJYW1kZ3B1X2JvX3VucmVz ZXJ2ZShibyk7CisJCWRvIHsKKwkJCXIgPSAoKm1hbi0+ZnVuYy0+Z2V0X25vZGUpKG1hbiwgTlVM TCwKKwkJCQkJCSAgICZwbGFjZW1lbnQucGxhY2VtZW50WzBdLAorCQkJCQkJICAgJm1lbSk7CisJ CQlpZiAodW5saWtlbHkociAhPSAwKSkKKwkJCQlyZXR1cm47CisKKwkJCWlmIChtZW0ubW1fbm9k ZSkKKwkJCQlicmVhazsKKworCQkJciA9IHR0bV9tZW1fZXZpY3RfZmlyc3QoYmRldiwgVFRNX1BM X1ZSQU0sCisJCQkJCQkmcGxhY2VtZW50LnBsYWNlbWVudFswXSwgZmFsc2UsCisJCQkJCQlmYWxz ZSk7CisJCQlpZiAodW5saWtlbHkociAhPSAwKSkKKwkJCQlyZXR1cm47CisKKwkJCS8qIFNsZWVw IHRvIGdpdmUgb3RoZXIgdGhyZWFkcyB0aGUgb3Bwb3J0dW5pdHkgdG8gZ3JhYgorCQkJICogbHJ1 X2xvY2sKKwkJCSAqLworCQkJbXNsZWVwKDIwKTsKKwkJfSB3aGlsZSAoMSk7CisKKwkJaWYgKCFr cmVmX3JlYWQoJmJvLT50Ym8ua3JlZikpIHsKKwkJCS8qIFRoZSBCTyB3YXMgZGVsZXRlZCBzaW5j ZSB3ZSBsYXN0IGhlbGQgaXQuIEFib3J0LiAqLworCQkJaWYgKG1lbS5tbV9ub2RlKQorCQkJCSgq bWFuLT5mdW5jLT5wdXRfbm9kZSkobWFuLCAmbWVtKTsKKwkJCXJldHVybjsKKwkJfQorCisJCXIg PSBhbWRncHVfYm9fcmVzZXJ2ZShibywgdHJ1ZSk7CisJCWlmIChyICE9IDApIHsKKwkJCWlmICht ZW0ubW1fbm9kZSkKKwkJCQkoKm1hbi0+ZnVuYy0+cHV0X25vZGUpKG1hbiwgJm1lbSk7CisJCQly ZXR1cm47CisJCX0KKworCQltZW0ubWVtX3R5cGUgPSBUVE1fUExfVlJBTTsKKworCQlyID0gdHRt X2JvX2FkZF9tb3ZlX2ZlbmNlKCZiby0+dGJvLCBtYW4sICZtZW0pOworCQlpZiAodW5saWtlbHko ciAhPSAwKSkKKwkJCWdvdG8gb3V0OworCisJCW1lbS5wbGFjZW1lbnQgPSBUVE1fUExfRkxBR19W UkFNOworCQltZW0ucGxhY2VtZW50IHw9IChwbGFjZW1lbnQucGxhY2VtZW50WzBdLmZsYWdzICYK KwkJCQkgIG1hbi0+YXZhaWxhYmxlX2NhY2hpbmcpOworCQltZW0ucGxhY2VtZW50IHw9IHR0bV9i b19zZWxlY3RfY2FjaGluZyhtYW4sCisJCQkJCQkgICAgICAgYm8tPnRiby5tZW0ucGxhY2VtZW50 LAorCQkJCQkJICAgICAgIG1lbS5wbGFjZW1lbnQpOworCQl0dG1fZmxhZ19tYXNrZWQoJm1lbS5w bGFjZW1lbnQsIHBsYWNlbWVudC5wbGFjZW1lbnRbMF0uZmxhZ3MsCisJCQkJflRUTV9QTF9NQVNL X01FTVRZUEUpOworCX0gZWxzZSBpZiAodW5saWtlbHkociAhPSAwKSkgeworCQlnb3RvIG91dDsK Kwl9CisKKwlyID0gdHRtX2JvX2hhbmRsZV9tb3ZlX21lbSgmYm8tPnRibywgJm1lbSwgZmFsc2Us IGZhbHNlLCBmYWxzZSk7CisKIAlieXRlc19tb3ZlZCA9IGF0b21pYzY0X3JlYWQoJmFkZXYtPm51 bV9ieXRlc19tb3ZlZCkgLQogCQkJCSAgICBpbml0aWFsX2J5dGVzX21vdmVkOwogCWFtZGdwdV9j c19yZXBvcnRfbW92ZWRfYnl0ZXMoYWRldiwgYnl0ZXNfbW92ZWQsIGJ5dGVzX21vdmVkKTsKIAor CWlmICh1bmxpa2VseShyICE9IDApKQorCQlnb3RvIG91dDsKKwogCWlmIChiby0+dGJvLm1lbS5t ZW1fdHlwZSAhPSBvbGRfbWVtKQogCQliby0+bGFzdF9jc19tb3ZlX2ppZmZpZXMgPSBqaWZmaWVz OwogCiBvdXQ6CisJaWYgKHIgJiYgbWVtLm1tX25vZGUpCisJCXR0bV9ib19tZW1fcHV0KCZiby0+ dGJvLCAmbWVtKTsKIAlhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKIH0KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv LmMKaW5kZXggYTZkN2ZjYi4uZjc4M2FhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC0yNjgsMTAg KzI2OCwxMCBAQCBzdGF0aWMgaW50IHR0bV9ib19hZGRfdHRtKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sIGJvb2wgemVyb19hbGxvYykKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50 IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKLQkJ CQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtLAotCQkJCSAgYm9vbCBldmljdCwgYm9vbCBpbnRl cnJ1cHRpYmxlLAotCQkJCSAgYm9vbCBub193YWl0X2dwdSkKK2ludCB0dG1fYm9faGFuZGxlX21v dmVfbWVtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCisJCQkgICBzdHJ1Y3QgdHRtX21l bV9yZWcgKm1lbSwKKwkJCSAgIGJvb2wgZXZpY3QsIGJvb2wgaW50ZXJydXB0aWJsZSwKKwkJCSAg IGJvb2wgbm9fd2FpdF9ncHUpCiB7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+ YmRldjsKIAlib29sIG9sZF9pc19wY2kgPSB0dG1fbWVtX3JlZ19pc19wY2koYmRldiwgJmJvLT5t ZW0pOwpAQCAtMzczLDYgKzM3Myw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21l bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCiAJcmV0dXJuIHJldDsKIH0KK0VYUE9S VF9TWU1CT0wodHRtX2JvX2hhbmRsZV9tb3ZlX21lbSk7CiAKIC8qKgogICogQ2FsbCBibzo6cmVz ZXJ2ZWQuCkBAIC02OTUsMTEgKzY5NiwxMSBAQCBib29sIHR0bV9ib19ldmljdGlvbl92YWx1YWJs ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogfQogRVhQT1JUX1NZTUJPTCh0dG1fYm9f ZXZpY3Rpb25fdmFsdWFibGUpOwogCi1zdGF0aWMgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCQkJdWludDMyX3QgbWVtX3R5cGUsCi0JCQkJY29u c3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCi0JCQkJYm9vbCBpbnRlcnJ1cHRpYmxlLAotCQkJ CWJvb2wgbm9fd2FpdF9ncHUpCitpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKKwkJCXVpbnQzMl90IG1lbV90eXBlLAorCQkJY29uc3Qgc3RydWN0IHR0 bV9wbGFjZSAqcGxhY2UsCisJCQlib29sIGludGVycnVwdGlibGUsCisJCQlib29sIG5vX3dhaXRf Z3B1KQogewogCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gYmRldi0+Z2xvYjsKIAlzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bbWVtX3R5cGVdOwpAQCAt NzUzLDYgKzc1NCw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKIAlrcmVmX3B1dCgmYm8tPmxpc3Rfa3JlZiwgdHRtX2JvX3JlbGVh c2VfbGlzdCk7CiAJcmV0dXJuIHJldDsKIH0KK0VYUE9SVF9TWU1CT0wodHRtX21lbV9ldmljdF9m aXJzdCk7CiAKIHZvaWQgdHRtX2JvX21lbV9wdXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCiB7CkBAIC03NjYsOSArNzY4LDkgQEAgRVhQT1JU X1NZTUJPTCh0dG1fYm9fbWVtX3B1dCk7CiAvKioKICAqIEFkZCB0aGUgbGFzdCBtb3ZlIGZlbmNl IHRvIHRoZSBCTyBhbmQgcmVzZXJ2ZSBhIG5ldyBzaGFyZWQgc2xvdC4KICAqLwotc3RhdGljIGlu dCB0dG1fYm9fYWRkX21vdmVfZmVuY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKLQkJ CQkgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCi0JCQkJIHN0cnVjdCB0dG1fbWVt X3JlZyAqbWVtKQoraW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAorCQkJICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKKwkJCSAg c3RydWN0IHR0bV9tZW1fcmVnICptZW0pCiB7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJ aW50IHJldDsKQEAgLTc5MCw2ICs3OTIsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9m ZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCiAJcmV0dXJuIDA7CiB9CitFWFBP UlRfU1lNQk9MKHR0bV9ib19hZGRfbW92ZV9mZW5jZSk7CiAKIC8qKgogICogUmVwZWF0ZWRseSBl dmljdCBtZW1vcnkgZnJvbSB0aGUgTFJVIGZvciBAbWVtX3R5cGUgdW50aWwgd2UgY3JlYXRlIGVu b3VnaApAQCAtODIxLDkgKzgyNCw5IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFj ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCXJldHVybiB0dG1fYm9fYWRkX21vdmVf ZmVuY2UoYm8sIG1hbiwgbWVtKTsKIH0KIAotc3RhdGljIHVpbnQzMl90IHR0bV9ib19zZWxlY3Rf Y2FjaGluZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKLQkJCQkgICAgICB1aW50 MzJfdCBjdXJfcGxhY2VtZW50LAotCQkJCSAgICAgIHVpbnQzMl90IHByb3Bvc2VkX3BsYWNlbWVu dCkKK3VpbnQzMl90IHR0bV9ib19zZWxlY3RfY2FjaGluZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbiwKKwkJCSAgICAgICB1aW50MzJfdCBjdXJfcGxhY2VtZW50LAorCQkJICAgICAg IHVpbnQzMl90IHByb3Bvc2VkX3BsYWNlbWVudCkKIHsKIAl1aW50MzJfdCBjYWNoaW5nID0gcHJv cG9zZWRfcGxhY2VtZW50ICYgVFRNX1BMX01BU0tfQ0FDSElORzsKIAl1aW50MzJfdCByZXN1bHQg PSBwcm9wb3NlZF9wbGFjZW1lbnQgJiB+VFRNX1BMX01BU0tfQ0FDSElORzsKQEAgLTg0NSw2ICs4 NDgsNyBAQCBzdGF0aWMgdWludDMyX3QgdHRtX2JvX3NlbGVjdF9jYWNoaW5nKHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuLAogCiAJcmV0dXJuIHJlc3VsdDsKIH0KK0VYUE9SVF9TWU1C T0wodHRtX2JvX3NlbGVjdF9jYWNoaW5nKTsKIAogc3RhdGljIGJvb2wgdHRtX2JvX210X2NvbXBh dGlibGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAJCQkJIHVpbnQzMl90IG1l bV90eXBlLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKaW5kZXggOTkwZDUyOS4uM2JmMjY3YyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAorKysgYi9pbmNsdWRlL2Ry bS90dG0vdHRtX2JvX2RyaXZlci5oCkBAIC03MzAsNiArNzMwLDExIEBAIGV4dGVybiBpbnQgdHRt X2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCWJvb2wgaW50 ZXJydXB0aWJsZSwKIAkJCQlib29sIG5vX3dhaXRfZ3B1KTsKIAorZXh0ZXJuIGludCB0dG1fbWVt X2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAorCQkJICAgICAgIHVpbnQz Ml90IG1lbV90eXBlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAor CQkJICAgICAgIGJvb2wgaW50ZXJydXB0aWJsZSwgYm9vbCBub193YWl0X2dwdSk7CisKIGV4dGVy biB2b2lkIHR0bV9ib19tZW1fcHV0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCQkg ICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7CiBleHRlcm4gdm9pZCB0dG1fYm9fbWVtX3B1dF9s b2NrZWQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKQEAgLTc0MCw2ICs3NDUsMTQgQEAg ZXh0ZXJuIGludCB0dG1fYm9fZ2xvYmFsX2luaXQoc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNl ICpyZWYpOwogCiBleHRlcm4gaW50IHR0bV9ib19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldik7CiAKK2V4dGVybiBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAorCQkJCSAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0s CisJCQkJICBib29sIGV2aWN0LCBib29sIGludGVycnVwdGlibGUsCisJCQkJICBib29sIG5vX3dh aXRfZ3B1KTsKK2V4dGVybiBpbnQgdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCisJCQkJIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAor CQkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7CisKIC8qKgogICogdHRtX2JvX2RldmljZV9p bml0CiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9wbGFjZW1lbnQuaCBiL2lu Y2x1ZGUvZHJtL3R0bS90dG1fcGxhY2VtZW50LmgKaW5kZXggZTg4YThlMy4uNjQ1NTIxNCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9wbGFjZW1lbnQuaAorKysgYi9pbmNsdWRlL2Ry bS90dG0vdHRtX3BsYWNlbWVudC5oCkBAIC0xMDUsNCArMTA1LDEwIEBAIHN0cnVjdCB0dG1fcGxh Y2VtZW50IHsKIAljb25zdCBzdHJ1Y3QgdHRtX3BsYWNlCSpidXN5X3BsYWNlbWVudDsKIH07CiAK K3N0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcjsKKworZXh0ZXJuIHVpbnQzMl90IHR0bV9ib19z ZWxlY3RfY2FjaGluZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKKwkJCQkgICAg ICB1aW50MzJfdCBjdXJfcGxhY2VtZW50LAorCQkJCSAgICAgIHVpbnQzMl90IHByb3Bvc2VkX3Bs YWNlbWVudCk7CisKICNlbmRpZgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=