From: Alex Williamson Subject: Re: [PATCH v5 5/5] drm/i915/gvt: Adding interface so user space can get the dma-buf Date: Tue, 23 May 2017 13:25:38 -0600 Message-ID: <20170523132538.0da06043@w520.home> References: <1495535521-2120-1-git-send-email-xiaoguang.chen@intel.com> <1495535521-2120-6-git-send-email-xiaoguang.chen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1495535521-2120-6-git-send-email-xiaoguang.chen@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Xiaoguang Chen Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, zhiyuan.lv@intel.com, intel-gvt-dev@lists.freedesktop.org, kraxel@redhat.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMyBNYXkgMjAxNyAxODozMjowMSArMDgwMApYaWFvZ3VhbmcgQ2hlbiA8eGlhb2d1 YW5nLmNoZW5AaW50ZWwuY29tPiB3cm90ZToKCj4gVXNlciBzcGFjZSB3aWxsIHRyeSB0byBjcmVh dGUgYSBtYW5hZ2VtZW50IGZkIGZvciB0aGUgZG1hLWJ1ZiBvcGVyYXRpb24uCj4gVXNpbmcgdGhp cyBtYW5hZ2VtZW50IGZkIHVzZXIgY2FuIHF1ZXJ5IHRoZSBwbGFuZSBpbmZvcm1hdGlvbiBhbmQg Y3JlYXRlCj4gYSBkbWEtYnVmIGZkIGlmIG5lY2Vzc2FyeS4KPiBHVlQtZyB3aWxsIGhhbmRsZSB0 aGUgbGlmZSBjeWNsZSBvZiB0aGUgbWFuYWdlbWVudCBmZCBhbmQgd2lsbCBhbGlnbiB0aGUKPiBs aWZlIGN5Y2xlIG9mIHRoZSBmZCB3aXRoIHRoZSB2ZmlvIGRldmljZS4KPiBVc2VyIHNwYWNlIHNo b3VsZCBoYW5kbGUgdGhlIGxpZmUgY3ljbGUgb2YgdGhlIGNyZWF0ZWQgZG1hLWJ1ZiBmZCBjbG9z ZQo+IHRoZSBkbWEtYnVmIGZkIHRpbWVseSB3aGVuIGZpbmlzaGluZyB1c2UuCgpUaGUgdXNlciBj YW5ub3QgYmUgZXhwZWN0ZWQgdG8gZG8gdGhpcywgZWFjaCBkbWFidWYgZmQgYWxzbyBuZWVkcyB0 bwp0YWtlIGEgcmVmZXJlbmNlIHRvIHRoZSB2ZmlvIGRldmljZS4gIFlvdSdsbCBuZWVkIHRvIGZp bmQgYSB3YXkgdG8gaG9vawppbnRvIHRoZSBkbWFidWYgcmVsZWFzZSBmdW5jdGlvbi4KIAo+IFNp Z25lZC1vZmYtYnk6IFhpYW9ndWFuZyBDaGVuIDx4aWFvZ3VhbmcuY2hlbkBpbnRlbC5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kbWFidWYuYyAgICAgfCAgMjUgKysrKy0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RtYWJ1Zi5oICAgICB8ICAyMSAtLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9mYl9kZWNvZGVyLmggfCAgIDIgLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMgICAgICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2d2dC5oICAgICAgICB8ICAgNCArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQva3ZtZ3QuYyAgICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiAgaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaCAgICAgICAgICAgICB8ICA1MCArKysrKysr KysrKysrKystCj4gIDcgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDM2IGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVm LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVmLmMKPiBpbmRleCA0MTU0NTNiLi5h NzJiODZlZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RtYWJ1Zi5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2RtYWJ1Zi5jCj4gQEAgLTI5LDYgKzI5 LDcgQEAKPiAgCj4gICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Cj4gICNpbmNsdWRlIDxkcm0v ZHJtUC5oPgo+ICsjaW5jbHVkZSA8bGludXgvdmZpby5oPgo+ICAKPiAgI2luY2x1ZGUgImk5MTVf ZHJ2LmgiCj4gICNpbmNsdWRlICJndnQuaCIKPiBAQCAtNDUsOSArNDYsOSBAQCBzdGF0aWMgc3Ry dWN0IHNnX3RhYmxlICppbnRlbF92Z3B1X2dlbV9nZXRfcGFnZXMoCj4gIAlpbnQgaSwgcmV0Owo+ ICAJZ2VuOF9wdGVfdCBfX2lvbWVtICpndHRfZW50cmllczsKPiAgCXVuc2lnbmVkIGludCBmYl9n bWEgPSAwLCBmYl9zaXplID0gMDsKPiAtCXN0cnVjdCBpbnRlbF92Z3B1X3BsYW5lX2luZm8gKnBs YW5lX2luZm87Cj4gKwlzdHJ1Y3QgcGxhbmVfaW5mbyAqcGxhbmVfaW5mbzsKPiAgCj4gLQlwbGFu ZV9pbmZvID0gKHN0cnVjdCBpbnRlbF92Z3B1X3BsYW5lX2luZm8gKilvYmotPmd2dF9wbGFuZV9p bmZvOwo+ICsJcGxhbmVfaW5mbyA9IChzdHJ1Y3QgcGxhbmVfaW5mbyAqKW9iai0+Z3Z0X3BsYW5l X2luZm87Cj4gIAlpZiAoV0FSTl9PTighcGxhbmVfaW5mbykpCj4gIAkJcmV0dXJuIEVSUl9QVFIo LUVJTlZBTCk7Cj4gIAo+IEBAIC04MSw5ICs4Miw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUg KmludGVsX3ZncHVfZ2VtX2dldF9wYWdlcygKPiAgc3RhdGljIHZvaWQgaW50ZWxfdmdwdV9nZW1f cHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJc3RydWN0IHNn X3RhYmxlICpwYWdlcykKPiAgewo+IC0Jc3RydWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyAqcGxh bmVfaW5mbzsKPiArCXN0cnVjdCBwbGFuZV9pbmZvICpwbGFuZV9pbmZvOwo+ICAKPiAtCXBsYW5l X2luZm8gPSAoc3RydWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyAqKW9iai0+Z3Z0X3BsYW5lX2lu Zm87Cj4gKwlwbGFuZV9pbmZvID0gKHN0cnVjdCBwbGFuZV9pbmZvICopb2JqLT5ndnRfcGxhbmVf aW5mbzsKPiAgCWlmIChXQVJOX09OKCFwbGFuZV9pbmZvKSkKPiAgCQlyZXR1cm47Cj4gIAo+IEBA IC05OCw3ICs5OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9v cHMgaW50ZWxfdmdwdV9nZW1fb3BzID0gewo+ICB9Owo+ICAKPiAgc3RhdGljIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICppbnRlbF92Z3B1X2NyZWF0ZV9nZW0oc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAtCQlzdHJ1Y3QgaW50ZWxfdmdwdV9wbGFuZV9pbmZvICppbmZvKQo+ICsJCXN0cnVj dCBwbGFuZV9pbmZvICppbmZvKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqcHJp ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 Cj4gQEAgLTE0MSwxNCArMTQyLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqaW50ZWxfdmdwdV9jcmVhdGVfZ2VtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlyZXR1 cm4gb2JqOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyAq aW50ZWxfdmdwdV9nZXRfcGxhbmVfaW5mbygKPiArc3RhdGljIHN0cnVjdCBwbGFuZV9pbmZvICpp bnRlbF92Z3B1X2dldF9wbGFuZV9pbmZvKAo+ICAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAkJc3RydWN0IGludGVsX3ZncHUgKnZncHUsIHVpbnQzMl90IHBsYW5lX2lkKQo+ICB7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJ c3RydWN0IGludGVsX3ZncHVfcHJpbWFyeV9wbGFuZV9mb3JtYXQgKnA7Cj4gIAlzdHJ1Y3QgaW50 ZWxfdmdwdV9jdXJzb3JfcGxhbmVfZm9ybWF0ICpjOwo+IC0Jc3RydWN0IGludGVsX3ZncHVfcGxh bmVfaW5mbyAqaW5mbzsKPiArCXN0cnVjdCBwbGFuZV9pbmZvICppbmZvOwo+ICAJc3RydWN0IGlu dGVsX3ZncHVfcGlwZV9mb3JtYXQgKnBpcGU7Cj4gIAo+ICAJaW5mbyA9IGttYWxsb2Moc2l6ZW9m KCppbmZvKSwgR0ZQX0tFUk5FTCk7Cj4gQEAgLTE1OSw3ICsxNjAsNyBAQCBzdGF0aWMgc3RydWN0 IGludGVsX3ZncHVfcGxhbmVfaW5mbyAqaW50ZWxfdmdwdV9nZXRfcGxhbmVfaW5mbygKPiAgCWlm IChwaXBlID09IE5VTEwpCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+IC0JaWYgKHBsYW5lX2lkID09 IElOVEVMX0dWVF9QTEFORV9QUklNQVJZKSB7Cj4gKwlpZiAocGxhbmVfaWQgPT0gVkZJT19QUklN QVJZX1BMQU5FKSB7Cj4gIAkJcCA9ICZwaXBlLT5wcmltYXJ5Owo+ICAJCWlmIChwICE9IE5VTEwp IHsKPiAgCQkJaW5mby0+c3RhcnQgPSBwLT5iYXNlOwo+IEBAIC0xNzUsNyArMTc2LDcgQEAgc3Rh dGljIHN0cnVjdCBpbnRlbF92Z3B1X3BsYW5lX2luZm8gKmludGVsX3ZncHVfZ2V0X3BsYW5lX2lu Zm8oCj4gIAkJCWd2dF92Z3B1X2VycigiaW52YWxpZCBwcmltYXJ5IHBsYW5lXG4iKTsKPiAgCQkJ cmV0dXJuIE5VTEw7Cj4gIAkJfQo+IC0JfSBlbHNlIGlmIChwbGFuZV9pZCA9PSBJTlRFTF9HVlRf UExBTkVfQ1VSU09SKSB7Cj4gKwl9IGVsc2UgaWYgKHBsYW5lX2lkID09IFZGSU9fQ1VSU09SX1BM QU5FKSB7Cj4gIAkJYyA9ICZwaXBlLT5jdXJzb3I7Cj4gIAkJaWYgKGMgIT0gTlVMTCkgewo+ICAJ CQlpbmZvLT5zdGFydCA9IGMtPmJhc2U7Cj4gQEAgLTIyOCw3ICsyMjksNyBAQCBzdGF0aWMgc3Ry dWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyAqaW50ZWxfdmdwdV9nZXRfcGxhbmVfaW5mbygKPiAg aW50IGludGVsX3ZncHVfcXVlcnlfcGxhbmUoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIHZvaWQg KmFyZ3MpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmdmdwdS0+Z3Z0LT5kZXZf cHJpdi0+ZHJtOwo+IC0Jc3RydWN0IGludGVsX3ZncHVfcGxhbmVfaW5mbyAqaW5mbyA9IGFyZ3M7 Cj4gKwlzdHJ1Y3QgcGxhbmVfaW5mbyAqaW5mbyA9IGFyZ3M7Cj4gIAo+ICAJaW5mbyA9IGludGVs X3ZncHVfZ2V0X3BsYW5lX2luZm8oZGV2LCB2Z3B1LCBpbmZvLT5wbGFuZV9pZCk7Cj4gIAlpZiAo aW5mbyA9PSBOVUxMKQo+IEBAIC0yNDIsOCArMjQzLDggQEAgaW50IGludGVsX3ZncHVfY3JlYXRl X2RtYWJ1ZihzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwgdm9pZCAqYXJncykKPiAgCXN0cnVjdCBk bWFfYnVmICpkbWFidWY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2Z3B1LT5ndnQtPmRldl9wcml2LT5kcm07Cj4gLQlz dHJ1Y3QgaW50ZWxfdmdwdV9kbWFidWYgKmd2dF9kbWFidWYgPSBhcmdzOwo+IC0Jc3RydWN0IGlu dGVsX3ZncHVfcGxhbmVfaW5mbyAqaW5mbzsKPiArCXN0cnVjdCBkbWFidWZfaW5mbyAqZ3Z0X2Rt YWJ1ZiA9IGFyZ3M7Cj4gKwlzdHJ1Y3QgcGxhbmVfaW5mbyAqaW5mbzsKPiAgCWludCByZXQ7Cj4g IAo+ICAJaW5mbyA9IGludGVsX3ZncHVfZ2V0X3BsYW5lX2luZm8oZGV2LCB2Z3B1LAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZG1hYnVmLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvZG1hYnVmLmgKPiBpbmRleCA0MzU2MmFmLi5lNDliZDRmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9kbWFidWYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9kbWFidWYuaAo+IEBAIC0yNiwyNyArMjYsNiBAQAo+ICAjaWZuZGVmIF9H VlRfRE1BQlVGX0hfCj4gICNkZWZpbmUgX0dWVF9ETUFCVUZfSF8KPiAgCj4gLXN0cnVjdCBpbnRl bF92Z3B1X3BsYW5lX2luZm8gewo+IC0JdWludDMyX3QgcGxhbmVfaWQ7Cj4gLQl1aW50MzJfdCBk cm1fZm9ybWF0Owo+IC0JdWludDMyX3Qgd2lkdGg7Cj4gLQl1aW50MzJfdCBoZWlnaHQ7Cj4gLQl1 aW50MzJfdCBzdHJpZGU7Cj4gLQl1aW50MzJfdCBzdGFydDsKPiAtCXVpbnQzMl90IHhfcG9zOwo+ IC0JdWludDMyX3QgeV9wb3M7Cj4gLQl1aW50MzJfdCBzaXplOwo+IC0JdWludDY0X3QgZHJtX2Zv cm1hdF9tb2Q7Cj4gLX07Cj4gLQo+IC0jZGVmaW5lIElOVEVMX1ZHUFVfUVVFUllfUExBTkUJCTAK PiAtI2RlZmluZSBJTlRFTF9WR1BVX0dFTkVSQVRFX0RNQUJVRgkxCj4gLQo+IC1zdHJ1Y3QgaW50 ZWxfdmdwdV9kbWFidWYgewo+IC0JdWludDMyX3QgZmQ7Cj4gLQlzdHJ1Y3QgaW50ZWxfdmdwdV9w bGFuZV9pbmZvIHBsYW5lX2luZm87Cj4gLX07Cj4gLQo+ICBpbnQgaW50ZWxfdmdwdV9xdWVyeV9w bGFuZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwgdm9pZCAqYXJncyk7Cj4gIGludCBpbnRlbF92 Z3B1X2NyZWF0ZV9kbWFidWYoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIHZvaWQgKmFyZ3MpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2ZiX2RlY29kZXIuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9mYl9kZWNvZGVyLmgKPiBpbmRleCAxZmQ1OTdmLi45 NjI0OGVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9mYl9kZWNvZGVy LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZmJfZGVjb2Rlci5oCj4gQEAgLTgx LDggKzgxLDYgQEAKPiAgI2RlZmluZSBfU1BSSVRFX09GRlNFVF9TVEFSVF9YX01BU0sJKDB4MWZm ZiA8PCBfU1BSSVRFX09GRlNFVF9TVEFSVF9YX1NISUZUKQo+ICAjZGVmaW5lIF9TUFJJVEVfT0ZG U0VUX1NUQVJUX1lfTUFTSwkoMHhmZmYgPDwgX1NQUklURV9PRkZTRVRfU1RBUlRfWV9TSElGVCkK PiAgCj4gLSNkZWZpbmUgSU5URUxfR1ZUX1BMQU5FX1BSSU1BUlkJCTEKPiAtI2RlZmluZSBJTlRF TF9HVlRfUExBTkVfQ1VSU09SCQkyCj4gICNkZWZpbmUgSU5URUxfR1ZUX1BMQU5FX1NQUklURQkJ Mwo+ICAKPiAgZW51bSBHVlRfRkJfRVZFTlQgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKPiBpbmRl eCAyMDMyOTE3Li5kYmMzZjg2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2 dC9ndnQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYwo+IEBAIC01NCw2 ICs1NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZ3Z0X29wcyBpbnRlbF9ndnRfb3Bz ID0gewo+ICAJLnZncHVfcmVzZXQgPSBpbnRlbF9ndnRfcmVzZXRfdmdwdSwKPiAgCS52Z3B1X2Fj dGl2YXRlID0gaW50ZWxfZ3Z0X2FjdGl2YXRlX3ZncHUsCj4gIAkudmdwdV9kZWFjdGl2YXRlID0g aW50ZWxfZ3Z0X2RlYWN0aXZhdGVfdmdwdSwKPiArCS52Z3B1X3F1ZXJ5X3BsYW5lID0gaW50ZWxf dmdwdV9xdWVyeV9wbGFuZSwKPiArCS52Z3B1X2NyZWF0ZV9kbWFidWYgPSBpbnRlbF92Z3B1X2Ny ZWF0ZV9kbWFidWYsCj4gIH07Cj4gIAo+ICAvKioKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2d2dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCj4gaW5k ZXggNzYzYThjNS4uMGJlNDIyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvZ3Z0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmgKPiBAQCAtMTg1 LDggKzE4NSwxMCBAQCBzdHJ1Y3QgaW50ZWxfdmdwdSB7Cj4gIAkJc3RydWN0IGt2bSAqa3ZtOwo+ ICAJCXN0cnVjdCB3b3JrX3N0cnVjdCByZWxlYXNlX3dvcms7Cj4gIAkJYXRvbWljX3QgcmVsZWFz ZWQ7Cj4gKwkJc3RydWN0IHZmaW9fZGV2aWNlICp2ZmlvX2RldmljZTsKPiAgCX0gdmRldjsKPiAg I2VuZGlmCj4gKwlpbnQgZG1hYnVmX21ncl9mZDsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9n dnRfZ20gewo+IEBAIC00NjcsNiArNDY5LDggQEAgc3RydWN0IGludGVsX2d2dF9vcHMgewo+ICAJ dm9pZCAoKnZncHVfcmVzZXQpKHN0cnVjdCBpbnRlbF92Z3B1ICopOwo+ICAJdm9pZCAoKnZncHVf YWN0aXZhdGUpKHN0cnVjdCBpbnRlbF92Z3B1ICopOwo+ICAJdm9pZCAoKnZncHVfZGVhY3RpdmF0 ZSkoc3RydWN0IGludGVsX3ZncHUgKik7Cj4gKwlpbnQgKCp2Z3B1X3F1ZXJ5X3BsYW5lKShzdHJ1 Y3QgaW50ZWxfdmdwdSAqdmdwdSwgdm9pZCAqKTsKPiArCWludCAoKnZncHVfY3JlYXRlX2RtYWJ1 Zikoc3RydWN0IGludGVsX3ZncHUgKnZncHUsIHZvaWQgKik7Cj4gIH07Cj4gIAo+ICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQva3ZtZ3QuYwo+IGluZGV4IDM4OWYwNzIuLjc2NWQ3NDIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQva3ZtZ3QuYwo+IEBAIC00MSw2ICs0MSw3IEBACj4gICNpbmNsdWRlIDxsaW51 eC9rdm1faG9zdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvdmZpby5oPgo+ICAjaW5jbHVkZSA8bGlu dXgvbWRldi5oPgo+ICsjaW5jbHVkZSA8bGludXgvYW5vbl9pbm9kZXMuaD4KPiAgCj4gICNpbmNs dWRlICJpOTE1X2Rydi5oIgo+ICAjaW5jbHVkZSAiZ3Z0LmgiCj4gQEAgLTUyNCw2ICs1MjUsODUg QEAgc3RhdGljIGludCBpbnRlbF92Z3B1X3JlZ19pbml0X29wcmVnaW9uKHN0cnVjdCBpbnRlbF92 Z3B1ICp2Z3B1KQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBpbnRlbF92 Z3B1X2RtYWJ1Zl9tZ3JfZmRfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwKPiArCQlzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKPiArewo+ICsJcmV0dXJuIC1FUEVSTTsKPiArfQo+ICsKPiArc3Rh dGljIGludCBpbnRlbF92Z3B1X2RtYWJ1Zl9tZ3JfZmRfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlu b2RlLAo+ICsJCXN0cnVjdCBmaWxlICpmaWxwKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfdmdwdSAq dmdwdSA9IGZpbHAtPnByaXZhdGVfZGF0YTsKPiArCj4gKwlpZiAoV0FSTl9PTighdmdwdS0+dmRl di52ZmlvX2RldmljZSkpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJdmZpb19kZXZpY2Vf cHV0KHZncHUtPnZkZXYudmZpb19kZXZpY2UpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgbG9uZyBpbnRlbF92Z3B1X2RtYWJ1Zl9tZ3JfZmRfaW9jdGwoc3RydWN0IGZpbGUg KmZpbHAsCj4gKwkJdW5zaWduZWQgaW50IGlvY3RsLCB1bnNpZ25lZCBsb25nIGFyZykKPiArewo+ ICsJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSBmaWxwLT5wcml2YXRlX2RhdGE7Cj4gKwlpbnQg bWluc3o7Cj4gKwlpbnQgcmV0Owo+ICsJc3RydWN0IGZkIGY7Cj4gKwo+ICsJZiA9IGZkZ2V0KHZn cHUtPmRtYWJ1Zl9tZ3JfZmQpOwo+ICsJaWYgKCFmLmZpbGUpCj4gKwkJcmV0dXJuIC1FQkFERjsK PiArCj4gKwlpZiAoaW9jdGwgPT0gVkZJT19ERVZJQ0VfUVVFUllfUExBTkUpIHsKPiArCQlzdHJ1 Y3QgcGxhbmVfaW5mbyBpbmZvOwo+ICsKPiArCQltaW5zeiA9IG9mZnNldG9mZW5kKHN0cnVjdCBw bGFuZV9pbmZvLCBkcm1fZm9ybWF0X21vZCk7Cj4gKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZpbmZv LCAodm9pZCBfX3VzZXIgKilhcmcsIG1pbnN6KSkgewo+ICsJCQlmZHB1dChmKTsKPiArCQkJcmV0 dXJuIC1FRkFVTFQ7Cj4gKwkJfQo+ICsJCXJldCA9IGludGVsX2d2dF9vcHMtPnZncHVfcXVlcnlf cGxhbmUodmdwdSwgJmluZm8pOwo+ICsJCWlmIChyZXQgIT0gMCkgewo+ICsJCQlmZHB1dChmKTsK PiArCQkJZ3Z0X3ZncHVfZXJyKCJxdWVyeSBwbGFuZSBmYWlsZWQ6JWRcbiIsIHJldCk7Cj4gKwkJ CXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCQlmZHB1dChmKTsKPiArCQlyZXR1cm4gY29weV90 b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywgJmluZm8sIG1pbnN6KSA/Cj4gKwkJCQkJCQkJLUVG QVVMVCA6IDA7Cj4gKwl9IGVsc2UgaWYgKGlvY3RsID09IFZGSU9fREVWSUNFX0NSRUFURV9ETUFC VUYpIHsKPiArCQlzdHJ1Y3QgZG1hYnVmX2luZm8gZG1hYnVmOwo+ICsKPiArCQltaW5zeiA9IG9m ZnNldG9mZW5kKHN0cnVjdCBkbWFidWZfaW5mbywgcGxhbmVfaW5mbyk7Cj4gKwkJaWYgKGNvcHlf ZnJvbV91c2VyKCZkbWFidWYsICh2b2lkIF9fdXNlciAqKWFyZywgbWluc3opKSB7Cj4gKwkJCWZk cHV0KGYpOwo+ICsJCQlyZXR1cm4gLUVGQVVMVDsKPiArCQl9Cj4gKwkJcmV0ID0gaW50ZWxfZ3Z0 X29wcy0+dmdwdV9jcmVhdGVfZG1hYnVmKHZncHUsICZkbWFidWYpOwo+ICsJCWlmIChyZXQgIT0g MCkgewo+ICsJCQlmZHB1dChmKTsKPiArCQkJZ3Z0X3ZncHVfZXJyKCJjcmVhdGUgZG1hYnVmIGZh aWxlZDolZFxuIiwgcmV0KTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsJCWZkcHV0 KGYpOwo+ICsJCXJldHVybiBjb3B5X3RvX3VzZXIoKHZvaWQgX191c2VyICopYXJnLCAmZG1hYnVm LCBtaW5zeikgPwo+ICsJCQkJCQkJCS1FRkFVTFQgOiAwOwo+ICsJfQo+ICsKPiArCWZkcHV0KGYp Owo+ICsJZ3Z0X3ZncHVfZXJyKCJ1bnN1cHBvcnRlZCBkbWFidWYgb3BlcmF0aW9uXG4iKTsKPiAr Cj4gKwlyZXR1cm4gLUVJTlZBTDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxl X29wZXJhdGlvbnMgaW50ZWxfdmdwdV9kbWFidWZfbWdyX2ZkX29wcyA9IHsKPiArCS5yZWxlYXNl ICAgICAgICA9IGludGVsX3ZncHVfZG1hYnVmX21ncl9mZF9yZWxlYXNlLAo+ICsJLnVubG9ja2Vk X2lvY3RsID0gaW50ZWxfdmdwdV9kbWFidWZfbWdyX2ZkX2lvY3RsLAo+ICsJLm1tYXAgICAgICAg ICAgID0gaW50ZWxfdmdwdV9kbWFidWZfbWdyX2ZkX21tYXAsCj4gKwkubGxzZWVrICAgICAgICAg PSBub29wX2xsc2VlaywKPiArfTsKPiAgc3RhdGljIGludCBpbnRlbF92Z3B1X2NyZWF0ZShzdHJ1 Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQo+ICB7Cj4gIAlzdHJ1 Y3QgaW50ZWxfdmdwdSAqdmdwdSA9IE5VTEw7Cj4gQEAgLTEyNTksNiArMTMzOSwzMyBAQCBzdGF0 aWMgbG9uZyBpbnRlbF92Z3B1X2lvY3RsKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdW5zaWdu ZWQgaW50IGNtZCwKPiAgCX0gZWxzZSBpZiAoY21kID09IFZGSU9fREVWSUNFX1JFU0VUKSB7Cj4g IAkJaW50ZWxfZ3Z0X29wcy0+dmdwdV9yZXNldCh2Z3B1KTsKPiAgCQlyZXR1cm4gMDsKPiArCX0g ZWxzZSBpZiAoY21kID09IFZGSU9fREVWSUNFX0dFVF9GRCkgewo+ICsJCWludCBmZDsKPiArCQl1 MzIgdHlwZTsKPiArCQlzdHJ1Y3QgdmZpb19kZXZpY2UgKmRldmljZTsKPiArCj4gKwkJaWYgKGNv cHlfZnJvbV91c2VyKCZ0eXBlLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVvZih0eXBlKSkpCj4g KwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCWlmICh0eXBlICE9IFZGSU9fREVWSUNFX0RNQUJVRl9N R1JfRkQpCj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCQlkZXZpY2UgPSB2ZmlvX2Rldmlj ZV9nZXRfZnJvbV9kZXYobWRldl9kZXYobWRldikpOwo+ICsJCWlmIChkZXZpY2UgPT0gTlVMTCkg ewo+ICsJCQlndnRfdmdwdV9lcnIoImt2bWd0OiB2ZmlvIGRldmljZSBpcyBudWxsXG4iKTsKPiAr CQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsJCXZncHUtPnZkZXYudmZpb19kZXZpY2UgPSBk ZXZpY2U7Cj4gKwo+ICsJCWZkID0gYW5vbl9pbm9kZV9nZXRmZCgiaW50ZWwtdmdwdS1kbWFidWYt bWdyLWZkIiwKPiArCQkJJmludGVsX3ZncHVfZG1hYnVmX21ncl9mZF9vcHMsCj4gKwkJCXZncHUs IE9fUkRXUiB8IE9fQ0xPRVhFQyk7Cj4gKwkJaWYgKGZkIDwgMCkgewo+ICsJCQlndnRfdmdwdV9l cnIoImNyZWF0ZSBkbWFidWYgbWdyIGZkIGZhaWxlZFxuIik7Cj4gKwkJCXJldHVybiAtRUlOVkFM Owo+ICsJCX0KPiArCQl2Z3B1LT5kbWFidWZfbWdyX2ZkID0gZmQ7Cj4gKwo+ICsJCXJldHVybiBm ZDsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xp bnV4L3ZmaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgKPiBpbmRleCBhZTQ2MTA1Li4y ODVkYzE2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC92ZmlvLmgKPiArKysgYi9p bmNsdWRlL3VhcGkvbGludXgvdmZpby5oCj4gQEAgLTUwMiwxMCArNTAyLDU4IEBAIHN0cnVjdCB2 ZmlvX3BjaV9ob3RfcmVzZXQgewo+ICAKPiAgI2RlZmluZSBWRklPX0RFVklDRV9QQ0lfSE9UX1JF U0VUCV9JTyhWRklPX1RZUEUsIFZGSU9fQkFTRSArIDEzKQo+ICAKPiArLyoqCj4gKyAqIFZGSU9f REVWSUNFX0dFVF9GRCAtIF9JTyhWRklPX1RZUEUsIFZGSU9fQkFTRSArIDE0LCBfX3UzMikKPiAr ICoKPiArICogQ3JlYXRlIGEgZmQgZm9yIGEgdmZpbyBkZXZpY2UgYmFzZWQgb24gdGhlIGlucHV0 IHR5cGUKPiArICogVmVuZG9yIGRyaXZlciBzaG91bGQgaGFuZGxlIHRoaXMgaW9jdGwgdG8gY3Jl YXRlIGEgZmQgYW5kIG1hbmFnZSB0aGUKPiArICogbGlmZSBjeWNsZSBvZiB0aGlzIGZkLgo+ICsg Kgo+ICsgKiBSZXR1cm46IGEgZmQgaWYgdmVuZG9yIHN1cHBvcnQgdGhhdCB0eXBlLCAtZXJybm8g aWYgbm90IHN1cHBvcnRlZAo+ICsgKi8KPiArCj4gKyNkZWZpbmUgVkZJT19ERVZJQ0VfR0VUX0ZE CV9JTyhWRklPX1RZUEUsIFZGSU9fQkFTRSArIDE0KQo+ICsKPiArI2RlZmluZSBWRklPX0RFVklD RV9ETUFCVUZfTUdSX0ZECTAgLyogU3VwcG9ydGVkIGZkIHR5cGVzICovCj4gKwo+ICsvKgo+ICsg KiBWRklPX0RFVklDRV9RVUVSWV9QTEFORSAtIF9JTyhWRklPX1RZUEUsIFZGSU9fQkFTRSArIDE1 LCBzdHJ1Y3QgcGxhbmVfaW5mbykKPiArICogUXVlcnkgcGxhbmUgaW5mb3JtYXRpb24gZm9yIGEg cGxhbmUKPiArICovCj4gK3N0cnVjdCBwbGFuZV9pbmZvIHsKPiArCV9fdTMyIHBsYW5lX2lkOwo+ ICsJX191MzIgZHJtX2Zvcm1hdDsKPiArCV9fdTMyIHdpZHRoOwo+ICsJX191MzIgaGVpZ2h0Owo+ ICsJX191MzIgc3RyaWRlOwo+ICsJX191MzIgc3RhcnQ7Cj4gKwlfX3UzMiB4X3BvczsKPiArCV9f dTMyIHlfcG9zOwo+ICsJX191MzIgc2l6ZTsKPiArCV9fdTY0IGRybV9mb3JtYXRfbW9kOwo+ICt9 OwoKdmZpbyBpb2N0bHMgc2hvdWxkIGhhdmUgZmxhZ3MgYW5kIGFyZ3N6IG9yIGVsc2UgdGhleSBz aG91bGRuJ3QgYmUKZGVmaW5lZCBhcyBfSU8gdHlwZS4KCj4gKwo+ICsjZGVmaW5lIFZGSU9fUFJJ TUFSWV9QTEFORQkJMQo+ICsjZGVmaW5lIFZGSU9fQ1VSU09SX1BMQU5FCQkyCj4gKwo+ICsjZGVm aW5lIFZGSU9fREVWSUNFX1FVRVJZX1BMQU5FIF9JTyhWRklPX1RZUEUsIFZGSU9fQkFTRSArIDE1 KQo+ICsKPiArLyoKPiArICogVkZJT19ERVZJQ0VfQ1JFQVRFX0RNQUJVRiAtIF9JTyhWRklPLCBW RklPX0JBU0UgKyAxNiwgc3RydWN0IGRtYWJ1Zl9pbmZvKQo+ICsgKgo+ICsgKiBDcmVhdGUgYSBk bWEtYnVmIGZvciBhIHBsYW5lCj4gKyAqLwo+ICtzdHJ1Y3QgZG1hYnVmX2luZm8gewo+ICsJX191 MzIgZmQ7Cj4gKwlzdHJ1Y3QgcGxhbmVfaW5mbyBwbGFuZV9pbmZvOwo+ICt9Owo+ICsjZGVmaW5l IFZGSU9fREVWSUNFX0NSRUFURV9ETUFCVUYgX0lPKFZGSU9fVFlQRSwgVkZJT19CQVNFICsgMTYp Cj4gKwoKU2FtZSBoZXJlLiAgU2hvdWxkbid0IGZkIGFsc28gYmUgYW4gX19zMzI/Cgo+ICAvKiAt LS0tLS0tLSBBUEkgZm9yIFR5cGUxIFZGSU8gSU9NTVUgLS0tLS0tLS0gKi8KPiAgCj4gIC8qKgo+ IC0gKiBWRklPX0lPTU1VX0dFVF9JTkZPIC0gX0lPUihWRklPX1RZUEUsIFZGSU9fQkFTRSArIDEy LCBzdHJ1Y3QgdmZpb19pb21tdV9pbmZvKQo+ICsgKiBWRklPX0lPTU1VX0dFVF9JTkZPIC0gX0lP UihWRklPX1RZUEUsIFZGSU9fQkFTRSArIDEyLAo+ICsgKgkJCQkJCQlzdHJ1Y3QgdmZpb19pb21t dV9pbmZvKQoKVW5yZWxhdGVkPwoKPiAgICoKPiAgICogUmV0cmlldmUgaW5mb3JtYXRpb24gYWJv dXQgdGhlIElPTU1VIG9iamVjdC4gRmlsbHMgaW4gcHJvdmlkZWQKPiAgICogc3RydWN0IHZmaW9f aW9tbXVfaW5mby4gQ2FsbGVyIHNldHMgYXJnc3ouCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK