From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [PATCH V13 4/6] mdev: introduce mediated virtio bus Date: Mon, 18 Nov 2019 18:59:21 +0800 Message-ID: <20191118105923.7991-5-jasowang@redhat.com> References: <20191118105923.7991-1-jasowang@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id CDDB16E45F for ; Mon, 18 Nov 2019 11:02:17 +0000 (UTC) In-Reply-To: <20191118105923.7991-1-jasowang@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com, gregkh@linuxfoundation.org, jgg@mellanox.com Cc: rdunlap@infradead.org, jakub.kicinski@netronome.com, christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, kevin.tian@intel.com, rob.miller@broadcom.com, hch@infradead.org, lulu@redhat.com, eperezma@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, haotian.wang@sifive.com, jeffrey.t.kirsher@intel.com, zhi.a.wang@intel.com, farman@linux.ibm.com, parav@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, rodrigo.vivi@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, stefanha@redhat.com, zhihong.wang@intel.com, akrowiak@linux.ibm.com, jiri@mellanox.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, aadam@redhat.com, lingshan.zhu@intel.com List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGEgbWVkaWF0ZWQgdmlydGlvIGJ1cyBvdmVyIG1kZXYgZnJh bWV3b3JrLiBUaGlzCndpbGwgYmUgdXNlZCBieSB0aGUgZnV0dXJlIHZpcnRpby1tZGV2IGFuZCB2 aG9zdC1tZGV2IG9uIHRvcCB0byBhbGxvdwpkcml2ZXIgZnJvbSBlaXRoZXIgdXNlcnNwYWNlIG9y IGtlcm5lbCB0byBjb250cm9sIHRoZSBkZXZpY2Ugd2hpY2ggaXMKY2FwYWJsZSBvZiBvZmZsb2Fk aW5nIHZpcnRpbyBkYXRhcGF0aC4KClNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5n QHJlZGhhdC5jb20+Ci0tLQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICsKIGRyaXZlcnMvbWRldi9LY29uZmlnICAgICAgICAgICAgICB8ICAxMCArKwogZHJpdmVycy9t ZGV2L01ha2VmaWxlICAgICAgICAgICAgIHwgICAyICsKIGRyaXZlcnMvbWRldi92aXJ0aW8uYyAg ICAgICAgICAgICB8IDEyNiArKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9saW51eC9t ZGV2X3ZpcnRpby5oICAgICAgIHwgMTYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog aW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaCAgIHwgICA4ICsrCiBzY3JpcHRzL21vZC9k ZXZpY2V0YWJsZS1vZmZzZXRzLmMgfCAgIDMgKwogc2NyaXB0cy9tb2QvZmlsZTJhbGlhcy5jICAg ICAgICAgIHwgIDEyICsrKwogOCBmaWxlcyBjaGFuZ2VkLCAzMjYgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWRldi92aXJ0aW8uYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGluY2x1ZGUvbGludXgvbWRldl92aXJ0aW8uaAoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIv TUFJTlRBSU5FUlMKaW5kZXggNWQ3ZThiYWRmNThjLi5lMWI1N2M4NGYyNDkgMTAwNjQ0Ci0tLSBh L01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0xNzI2OSw2ICsxNzI2OSw4IEBAIEY6 CWluY2x1ZGUvbGludXgvdmlydGlvKi5oCiBGOglpbmNsdWRlL3VhcGkvbGludXgvdmlydGlvXyou aAogRjoJZHJpdmVycy9jcnlwdG8vdmlydGlvLwogRjoJbW0vYmFsbG9vbl9jb21wYWN0aW9uLmMK K0Y6CWluY2x1ZGUvbGludXgvbWRldl92aXJ0aW8uaAorRjoJZHJpdmVycy9tZGV2L3ZpcnRpby5j CiAKIFZJUlRJTyBCTE9DSyBBTkQgU0NTSSBEUklWRVJTCiBNOgkiTWljaGFlbCBTLiBUc2lya2lu IiA8bXN0QHJlZGhhdC5jb20+CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kZXYvS2NvbmZpZyBiL2Ry aXZlcnMvbWRldi9LY29uZmlnCmluZGV4IDQ1NjFmMmQ0MTc4Zi4uY2Q4NGQ0NjcwNTUyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21kZXYvS2NvbmZpZworKysgYi9kcml2ZXJzL21kZXYvS2NvbmZpZwpA QCAtMTcsMyArMTcsMTMgQEAgY29uZmlnIFZGSU9fTURFVgogCSAgbW9yZSBkZXRhaWxzLgogCiAJ ICBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IGRvIGhlcmUsIHNheSBOLgorCitjb25maWcgTURFVl9W SVJUSU8KKyAgICAgICB0cmlzdGF0ZSAiTWVkaWF0ZWQgVklSVElPIGJ1cyIKKyAgICAgICBkZXBl bmRzIG9uIFZJUlRJTyAmJiBNREVWCisgICAgICAgZGVmYXVsdCBuCisgICAgICAgaGVscAorCSAg UHJvaXZkZXMgYSBtZWRpYXRlZCBCVVMgZm9yIHZpcnRpby4gSXQgY291bGQgYmUgdXNlZCBieQor ICAgICAgICAgIGVpdGhlciBrZW5yZWwgZHJpdmVyIG9yIHVzZXJzcGFjZSBkcml2ZXIuCisKKwkg IElmIHlvdSBkb24ndCBrbm93IHdoYXQgZG8gaGVyZSwgc2F5IE4uCmRpZmYgLS1naXQgYS9kcml2 ZXJzL21kZXYvTWFrZWZpbGUgYi9kcml2ZXJzL21kZXYvTWFrZWZpbGUKaW5kZXggMGI3NDllN2Y4 ZmY0Li5lYjE0MDMxYzk5NDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWRldi9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL21kZXYvTWFrZWZpbGUKQEAgLTEsNSArMSw3IEBACiAKIG1kZXYteSA6PSBtZGV2 X2NvcmUubyBtZGV2X3N5c2ZzLm8gbWRldl9kcml2ZXIubwogbWRldl92ZmlvLXkgOj0gdmZpby5v CittZGV2X3ZpcnRpby15IDo9IHZpcnRpby5vCiBvYmotJChDT05GSUdfTURFVikgKz0gbWRldi5v CiBvYmotJChDT05GSUdfVkZJT19NREVWKSArPSBtZGV2X3ZmaW8ubworb2JqLSQoQ09ORklHX01E RVZfVklSVElPKSArPSBtZGV2X3ZpcnRpby5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kZXYvdmly dGlvLmMgYi9kcml2ZXJzL21kZXYvdmlydGlvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4yNWRlMzI5NjE1YzQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21k ZXYvdmlydGlvLmMKQEAgLTAsMCArMSwxMjYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkKKy8qCisgKiBNZWRpYXRlZCBWSVJUSU8gYnVzCisgKgorICogQ29weXJp Z2h0IChjKSAyMDE5LCBSZWQgSGF0LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgIEF1dGhv cjogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdXVpZC5oPgorI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3Zp cnRpby5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorCisjaW5jbHVkZSAi bWRldl9wcml2YXRlLmgiCisKKyNkZWZpbmUgRFJJVkVSX1ZFUlNJT04JCSIwLjEiCisjZGVmaW5l IERSSVZFUl9BVVRIT1IJCSJKYXNvbiBXYW5nIgorI2RlZmluZSBEUklWRVJfREVTQwkJIk1lZGlh dGVkIFZJUlRJTyBidXMiCisKK3N0cnVjdCBidXNfdHlwZSBtZGV2X3ZpcnRpb19idXNfdHlwZTsK Kworc3RydWN0IG1kZXZfdmlydGlvX2RldmljZSB7CisJc3RydWN0IG1kZXZfZGV2aWNlIG1kZXY7 CisJY29uc3Qgc3RydWN0IG1kZXZfdmlydGlvX29wcyAqb3BzOworCXUxNiBjbGFzc19pZDsKK307 CisKKyNkZWZpbmUgdG9fbWRldl92aXJ0aW8obWRldikgY29udGFpbmVyX29mKG1kZXYsIFwKKwkJ CQkJICBzdHJ1Y3QgbWRldl92aXJ0aW9fZGV2aWNlLCBtZGV2KQorI2RlZmluZSB0b19tZGV2X3Zp cnRpb19kcnYobWRydikgY29udGFpbmVyX29mKG1kcnYsIFwKKwkJCQkJICAgICAgc3RydWN0IG1k ZXZfdmlydGlvX2RyaXZlciwgZHJ2KQorCitzdGF0aWMgaW50IG1kZXZfdmlydGlvX21hdGNoKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydikKK3sKKwl1bnNpZ25l ZCBpbnQgaTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldiwg Jm1kZXZfdmlydGlvX2J1c190eXBlKTsKKwlzdHJ1Y3QgbWRldl92aXJ0aW9fZGV2aWNlICptZGV2 X3ZpcnRpbyA9IHRvX21kZXZfdmlydGlvKG1kZXYpOworCXN0cnVjdCBtZGV2X2RyaXZlciAqbWRy diA9IHRvX21kZXZfZHJpdmVyKGRydik7CisJc3RydWN0IG1kZXZfdmlydGlvX2RyaXZlciAqbWRy dl92aXJ0aW8gPSB0b19tZGV2X3ZpcnRpb19kcnYobWRydik7CisJY29uc3Qgc3RydWN0IG1kZXZf dmlydGlvX2NsYXNzX2lkICppZHMgPSBtZHJ2X3ZpcnRpby0+aWRfdGFibGU7CisKKwlpZiAoIWlk cykKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAwOyBpZHNbaV0uaWQ7IGkrKykKKwkJaWYgKGlk c1tpXS5pZCA9PSBtZGV2X3ZpcnRpby0+Y2xhc3NfaWQpCisJCQlyZXR1cm4gMTsKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGludCBtZGV2X3ZpcnRpb191ZXZlbnQoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCit7CisJc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2ID0gbWRldl9mcm9tX2RldihkZXYsICZtZGV2X3ZpcnRpb19idXNfdHlwZSk7CisJc3RydWN0 IG1kZXZfdmlydGlvX2RldmljZSAqbWRldl92aXJ0aW8gPSB0b19tZGV2X3ZpcnRpbyhtZGV2KTsK KworCXJldHVybiBhZGRfdWV2ZW50X3ZhcihlbnYsICJNT0RBTElBUz1tZGV2X3ZpcnRpbzpjJTAy WCIsCisJCQkgICAgICBtZGV2X3ZpcnRpby0+Y2xhc3NfaWQpOworfQorCitzdHJ1Y3QgYnVzX3R5 cGUgbWRldl92aXJ0aW9fYnVzX3R5cGUgPSB7CisJLm5hbWUJCT0gIm1kZXZfdmlydGlvIiwKKwku cHJvYmUJCT0gbWRldl9wcm9iZSwKKwkucmVtb3ZlCQk9IG1kZXZfcmVtb3ZlLAorCS5tYXRjaAkg ICAgICAgID0gbWRldl92aXJ0aW9fbWF0Y2gsCisJLnVldmVudAkJPSBtZGV2X3ZpcnRpb191ZXZl bnQsCit9OworRVhQT1JUX1NZTUJPTChtZGV2X3ZpcnRpb19idXNfdHlwZSk7CisKK3ZvaWQgbWRl dl92aXJ0aW9fc2V0X2NsYXNzX2lkKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdTE2IGNsYXNz X2lkKQoreworCXN0cnVjdCBtZGV2X3ZpcnRpb19kZXZpY2UgKm1kZXZfdmlydGlvID0gdG9fbWRl dl92aXJ0aW8obWRldik7CisKKwltZGV2X3ZpcnRpby0+Y2xhc3NfaWQgPSBjbGFzc19pZDsKK30K K0VYUE9SVF9TWU1CT0wobWRldl92aXJ0aW9fc2V0X2NsYXNzX2lkKTsKKworaW50IG1kZXZfdmly dGlvX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJY29uc3Qgc3RydWN0 IG1kZXZfcGFyZW50X29wcyAqb3BzKQoreworCXJldHVybiBtZGV2X3JlZ2lzdGVyX2RldmljZShk ZXYsIG9wcywgJm1kZXZfdmlydGlvX2J1c190eXBlLAorCQkJCSAgICBzaXplb2Yoc3RydWN0IG1k ZXZfdmlydGlvX2RldmljZSkpOworfQorRVhQT1JUX1NZTUJPTChtZGV2X3ZpcnRpb19yZWdpc3Rl cl9kZXZpY2UpOworCit2b2lkIG1kZXZfdmlydGlvX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBk ZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gbWRldl91bnJlZ2lzdGVyX2RldmljZShkZXYpOworfQor RVhQT1JUX1NZTUJPTChtZGV2X3ZpcnRpb191bnJlZ2lzdGVyX2RldmljZSk7CisKK3ZvaWQgbWRl dl92aXJ0aW9fc2V0X29wcyhzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsCisJCQkgY29uc3Qgc3Ry dWN0IG1kZXZfdmlydGlvX29wcyAqb3BzKQoreworCXN0cnVjdCBtZGV2X3ZpcnRpb19kZXZpY2Ug Km1kZXZfdmlydGlvID0gdG9fbWRldl92aXJ0aW8obWRldik7CisKKwltZGV2X3ZpcnRpby0+b3Bz ID0gb3BzOworfQorRVhQT1JUX1NZTUJPTChtZGV2X3ZpcnRpb19zZXRfb3BzKTsKKworY29uc3Qg c3RydWN0IG1kZXZfdmlydGlvX29wcyAqbWRldl92aXJ0aW9fZ2V0X29wcyhzdHJ1Y3QgbWRldl9k ZXZpY2UgKm1kZXYpCit7CisJc3RydWN0IG1kZXZfdmlydGlvX2RldmljZSAqbWRldl92aXJ0aW8g PSB0b19tZGV2X3ZpcnRpbyhtZGV2KTsKKworCXJldHVybiBtZGV2X3ZpcnRpby0+b3BzOworfQor RVhQT1JUX1NZTUJPTChtZGV2X3ZpcnRpb19nZXRfb3BzKTsKKworc3RhdGljIGludCBfX2luaXQg bWRldl9pbml0KHZvaWQpCit7CisJcmV0dXJuIG1kZXZfcmVnaXN0ZXJfYnVzKCZtZGV2X3ZpcnRp b19idXNfdHlwZSk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBtZGV2X2V4aXQodm9pZCkKK3sK KwltZGV2X3VucmVnaXN0ZXJfYnVzKCZtZGV2X3ZpcnRpb19idXNfdHlwZSk7Cit9CisKK21vZHVs ZV9pbml0KG1kZXZfaW5pdCkKK21vZHVsZV9leGl0KG1kZXZfZXhpdCkKKworTU9EVUxFX1ZFUlNJ T04oRFJJVkVSX1ZFUlNJT04pOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworTU9EVUxFX0FV VEhPUihEUklWRVJfQVVUSE9SKTsKK01PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21kZXZfdmlydGlvLmggYi9pbmNsdWRlL2xpbnV4L21k ZXZfdmlydGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZjJk YmI2YzM4M2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L21kZXZfdmlydGlvLmgK QEAgLTAsMCArMSwxNjMgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9u bHkgKi8KKy8qCisgKiBWSVJUSU8gTWVkaWF0ZWQgZGV2aWNlIGRlZmluaXRpb24KKyAqCisgKiBD b3B5cmlnaHQgKGMpIDIwMTksIFJlZCBIYXQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAg QXV0aG9yOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgorICovCisKKyNpZm5kZWYg VklSVElPX01ERVZfSAorI2RlZmluZSBWSVJUSU9fTURFVl9ICisKKyNpbmNsdWRlIDxsaW51eC9p bnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFibGUuaD4KKyNpbmNsdWRl IDxsaW51eC9tZGV2Lmg+CisKK2V4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgbWRldl92aXJ0aW9fYnVz X3R5cGU7CisKK3N0cnVjdCBtZGV2X3ZpcnRpb19kcml2ZXIgeworCXN0cnVjdCBtZGV2X2RyaXZl ciBkcnY7CisJY29uc3Qgc3RydWN0IG1kZXZfdmlydGlvX2NsYXNzX2lkICppZF90YWJsZTsKK307 CisKK3N0cnVjdCB2aXJ0aW9fbWRldl9jYWxsYmFjayB7CisJaXJxcmV0dXJuX3QgKCpjYWxsYmFj aykodm9pZCAqZGF0YSk7CisJdm9pZCAqcHJpdmF0ZTsKK307CisKKy8qKgorICogc3RydWN0IG1k ZXZfdmlydGlvX2RldmljZV9vcHMgLSBTdHJ1Y3R1cmUgdG8gYmUgcmVnaXN0ZXJlZCBmb3IgZWFj aAorICogbWRldiBkZXZpY2UgdG8gcmVnaXN0ZXIgdGhlIGRldmljZSBmb3IgdmlydGlvL3Zob3N0 IGRyaXZlcnMuCisgKgorICogVGhlIGNhbGxiYWNrcyBhcmUgbWFuZGF0b3J5IHVubGVzcyBleHBs aWNpdGx5IG1lbnRpb25lZC4KKyAqCisgKiBAc2V0X3ZxX2FkZHJlc3M6CQlTZXQgdGhlIGFkZHJl c3Mgb2YgdmlydHF1ZXVlCisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlAaWR4 OiB2aXJ0cXVldWUgaW5kZXgKKyAqCQkJCUBkZXNjX2FyZWE6IGFkZHJlc3Mgb2YgZGVzYyBhcmVh CisgKgkJCQlAZHJpdmVyX2FyZWE6IGFkZHJlc3Mgb2YgZHJpdmVyIGFyZWEKKyAqCQkJCUBkZXZp Y2VfYXJlYTogYWRkcmVzcyBvZiBkZXZpY2UgYXJlYQorICoJCQkJUmV0dXJucyBpbnRlZ2VyOiBz dWNjZXNzICgwKSBvciBlcnJvciAoPCAwKQorICogQHNldF92cV9udW06CQkJU2V0IHRoZSBzaXpl IG9mIHZpcnRxdWV1ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJQGlkeDog dmlydHF1ZXVlIGluZGV4CisgKgkJCQlAbnVtOiB0aGUgc2l6ZSBvZiB2aXJ0cXVldWUKKyAqIEBr aWNrX3ZxOgkJCUtpY2sgdGhlIHZpcnRxdWV1ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmlj ZQorICoJCQkJQGlkeDogdmlydHF1ZXVlIGluZGV4CisgKiBAc2V0X3ZxX2NiOgkJCVNldCB0aGUg aW50ZXJydXB0IGNhbGxiYWNrIGZ1bmN0aW9uIGZvcgorICoJCQkJYSB2aXJ0cXVldWUKKyAqCQkJ CUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAorICoJ CQkJQGNiOiB2aXJ0aW8tbWRldiBpbnRlcnJ1cHQgY2FsbGJhY2sgc3RydWN0dXJlCisgKiBAc2V0 X3ZxX3JlYWR5OgkJU2V0IHJlYWR5IHN0YXR1cyBmb3IgYSB2aXJ0cXVldWUKKyAqCQkJCUBtZGV2 OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAorICoJCQkJQHJl YWR5OiByZWFkeSAodHJ1ZSkgbm90IHJlYWR5KGZhbHNlKQorICogQGdldF92cV9yZWFkeToJCUdl dCByZWFkeSBzdGF0dXMgZm9yIGEgdmlydHF1ZXVlCisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2 aWNlCisgKgkJCQlAaWR4OiB2aXJ0cXVldWUgaW5kZXgKKyAqCQkJCVJldHVybnMgYm9vbGVhbjog cmVhZHkgKHRydWUpIG9yIG5vdCAoZmFsc2UpCisgKiBAc2V0X3ZxX3N0YXRlOgkJU2V0IHRoZSBz dGF0ZSBmb3IgYSB2aXJ0cXVldWUKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJ CUBpZHg6IHZpcnRxdWV1ZSBpbmRleAorICoJCQkJQHN0YXRlOiB2aXJ0cXVldWUgc3RhdGUgKGxh c3RfYXZhaWxfaWR4KQorICoJCQkJUmV0dXJucyBpbnRlZ2VyOiBzdWNjZXNzICgwKSBvciBlcnJv ciAoPCAwKQorICogQGdldF92cV9zdGF0ZToJCUdldCB0aGUgc3RhdGUgZm9yIGEgdmlydHF1ZXVl CisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlAaWR4OiB2aXJ0cXVldWUgaW5k ZXgKKyAqCQkJCVJldHVybnMgdmlydHF1ZXVlIHN0YXRlIChsYXN0X2F2YWlsX2lkeCkKKyAqIEBn ZXRfdnFfYWxpZ246CQlHZXQgdGhlIHZpcnRxdWV1ZSBhbGlnbiByZXF1aXJlbWVudAorICoJCQkJ Zm9yIHRoZSBkZXZpY2UKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCVJldHVy bnMgdmlydHF1ZXVlIGFsZ2luIHJlcXVpcmVtZW50CisgKiBAZ2V0X2ZlYXR1cmVzOgkJR2V0IHZp cnRpbyBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZQorICoJCQkJQG1kZXY6IG1lZGlh dGVkIGRldmljZQorICoJCQkJUmV0dXJucyB0aGUgdmlydGlvIGZlYXR1cmVzIHN1cHBvcnQgYnkg dGhlCisgKgkJCQlkZXZpY2UKKyAqIEBzZXRfZmVhdHVyZXM6CQlTZXQgdmlydGlvIGZlYXR1cmVz IHN1cHBvcnRlZCBieSB0aGUgZHJpdmVyCisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCisg KgkJCQlAZmVhdHVyZXM6IGZlYXR1cmUgc3VwcG9ydCBieSB0aGUgZHJpdmVyCisgKgkJCQlSZXR1 cm5zIGludGVnZXI6IHN1Y2Nlc3MgKDApIG9yIGVycm9yICg8IDApCisgKiBAc2V0X2NvbmZpZ19j YjoJCVNldCB0aGUgY29uZmlnIGludGVycnVwdCBjYWxsYmFjaworICoJCQkJQG1kZXY6IG1lZGlh dGVkIGRldmljZQorICoJCQkJQGNiOiB2aXJ0aW8tbWRldiBpbnRlcnJ1cHQgY2FsbGJhY2sgc3Ry dWN0dXJlCisgKiBAZ2V0X3ZxX251bV9tYXg6CQlHZXQgdGhlIG1heCBzaXplIG9mIHZpcnRxdWV1 ZQorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJUmV0dXJucyB1MTY6IG1heCBz aXplIG9mIHZpcnRxdWV1ZQorICogQGdldF9kZXZpY2VfaWQ6CQlHZXQgdmlydGlvIGRldmljZSBp ZAorICoJCQkJQG1kZXY6IG1lZGlhdGVkIGRldmljZQorICoJCQkJUmV0dXJucyB1MzI6IHZpcnRp byBkZXZpY2UgaWQKKyAqIEBnZXRfdmVuZG9yX2lkOgkJR2V0IGlkIGZvciB0aGUgdmVuZG9yIHRo YXQgcHJvdmlkZXMgdGhpcyBkZXZpY2UKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAq CQkJCVJldHVybnMgdTMyOiB2aXJ0aW8gdmVuZG9yIGlkCisgKiBAZ2V0X3N0YXR1czoJCQlHZXQg dGhlIGRldmljZSBzdGF0dXMKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCVJl dHVybnMgdTg6IHZpcnRpbyBkZXZpY2Ugc3RhdHVzCisgKiBAc2V0X3N0YXR1czoJCQlTZXQgdGhl IGRldmljZSBzdGF0dXMKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBkZXZpY2UKKyAqCQkJCUBzdGF0 dXM6IHZpcnRpbyBkZXZpY2Ugc3RhdHVzCisgKiBAZ2V0X2NvbmZpZzoJCQlSZWFkIGZyb20gZGV2 aWNlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc3BhY2UKKyAqCQkJCUBtZGV2OiBtZWRpYXRlZCBk ZXZpY2UKKyAqCQkJCUBvZmZzZXQ6IG9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YKKyAqCQkJ CWNvbmZpZ3VyYXRpb24gc3BhY2UKKyAqCQkJCUBidWY6IGJ1ZmZlciB1c2VkIHRvIHJlYWQgdG8K KyAqCQkJCUBsZW46IHRoZSBsZW5ndGggdG8gcmVhZCBmcm9tCisgKgkJCQljb25maWdyYXRpb24g c3BhY2UKKyAqIEBzZXRfY29uZmlnOgkJCVdyaXRlIHRvIGRldmljZSBzcGVjaWZpYyBjb25maWd1 cmF0aW9uIHNwYWNlCisgKgkJCQlAbWRldjogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlAb2Zmc2V0 OiBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mCisgKgkJCQljb25maWd1cmF0aW9uIHNwYWNl CisgKgkJCQlAYnVmOiBidWZmZXIgdXNlZCB0byB3cml0ZSBmcm9tCisgKgkJCQlAbGVuOiB0aGUg bGVuZ3RoIHRvIHdyaXRlIHRvCisgKgkJCQljb25maWdyYXRpb24gc3BhY2UKKyAqIEBnZXRfZ2Vu ZXJhdGlvbjoJCUdldCBkZXZpY2UgY29uZmlnIGdlbmVyYXRvbiAob3B0aW9uYWwpCisgKgkJCQlA bWRldjogbWVkaWF0ZWQgZGV2aWNlCisgKgkJCQlSZXR1cm5zIHUzMjogZGV2aWNlIGdlbmVyYXRp b24KKyAqLworc3RydWN0IG1kZXZfdmlydGlvX29wcyB7CisJLyogVmlydHF1ZXVlIG9wcyAqLwor CWludCAoKnNldF92cV9hZGRyZXNzKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsCisJCQkgICAg ICB1MTYgaWR4LCB1NjQgZGVzY19hcmVhLCB1NjQgZHJpdmVyX2FyZWEsCisJCQkgICAgICB1NjQg ZGV2aWNlX2FyZWEpOworCXZvaWQgKCpzZXRfdnFfbnVtKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1k ZXYsIHUxNiBpZHgsIHUzMiBudW0pOworCXZvaWQgKCpraWNrX3ZxKShzdHJ1Y3QgbWRldl9kZXZp Y2UgKm1kZXYsIHUxNiBpZHgpOworCXZvaWQgKCpzZXRfdnFfY2IpKHN0cnVjdCBtZGV2X2Rldmlj ZSAqbWRldiwgdTE2IGlkeCwKKwkJCSAgc3RydWN0IHZpcnRpb19tZGV2X2NhbGxiYWNrICpjYik7 CisJdm9pZCAoKnNldF92cV9yZWFkeSkoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4 LCBib29sIHJlYWR5KTsKKwlib29sICgqZ2V0X3ZxX3JlYWR5KShzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYsIHUxNiBpZHgpOworCWludCAoKnNldF92cV9zdGF0ZSkoc3RydWN0IG1kZXZfZGV2aWNl ICptZGV2LCB1MTYgaWR4LCB1NjQgc3RhdGUpOworCXU2NCAoKmdldF92cV9zdGF0ZSkoc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2LCB1MTYgaWR4KTsKKworCS8qIERldmljZSBvcHMgKi8KKwl1MTYg KCpnZXRfdnFfYWxpZ24pKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldik7CisJdTY0ICgqZ2V0X2Zl YXR1cmVzKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOworCWludCAoKnNldF9mZWF0dXJlcyko c3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB1NjQgZmVhdHVyZXMpOworCXZvaWQgKCpzZXRfY29u ZmlnX2NiKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsCisJCQkgICAgICBzdHJ1Y3QgdmlydGlv X21kZXZfY2FsbGJhY2sgKmNiKTsKKwl1MTYgKCpnZXRfdnFfbnVtX21heCkoc3RydWN0IG1kZXZf ZGV2aWNlICptZGV2KTsKKwl1MzIgKCpnZXRfZGV2aWNlX2lkKShzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYpOworCXUzMiAoKmdldF92ZW5kb3JfaWQpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldik7 CisJdTggKCpnZXRfc3RhdHVzKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpOworCXZvaWQgKCpz ZXRfc3RhdHVzKShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHU4IHN0YXR1cyk7CisJdm9pZCAo KmdldF9jb25maWcpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdW5zaWduZWQgaW50IG9mZnNl dCwKKwkJCSAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbik7CisJdm9pZCAoKnNldF9jb25m aWcpKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldiwgdW5zaWduZWQgaW50IG9mZnNldCwKKwkJCSAg IGNvbnN0IHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbik7CisJdTMyICgqZ2V0X2dlbmVyYXRp b24pKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldik7Cit9OworCitpbnQgbWRldl92aXJ0aW9fcmVn aXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQljb25zdCBzdHJ1Y3QgbWRldl9w YXJlbnRfb3BzICpvcHMpOwordm9pZCBtZGV2X3ZpcnRpb191bnJlZ2lzdGVyX2RldmljZShzdHJ1 Y3QgZGV2aWNlICpkZXYpOwordm9pZCBtZGV2X3ZpcnRpb19zZXRfb3BzKHN0cnVjdCBtZGV2X2Rl dmljZSAqbWRldiwKKwkJCSBjb25zdCBzdHJ1Y3QgbWRldl92aXJ0aW9fb3BzICpvcHMpOworY29u c3Qgc3RydWN0IG1kZXZfdmlydGlvX29wcyAqbWRldl92aXJ0aW9fZ2V0X29wcyhzdHJ1Y3QgbWRl dl9kZXZpY2UgKm1kZXYpOwordm9pZCBtZGV2X3ZpcnRpb19zZXRfY2xhc3NfaWQoc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2LCB1MTYgY2xhc3NfaWQpOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBt ZGV2X2RldmljZSAqbWRldl92aXJ0aW9fZnJvbV9kZXYoc3RydWN0IGRldmljZSAqZGV2KQorewor CXJldHVybiBtZGV2X2Zyb21fZGV2KGRldiwgJm1kZXZfdmlydGlvX2J1c190eXBlKTsKK30KKwor I2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5oIGIvaW5j bHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaAppbmRleCA1NzE0ZmQzNWE4M2MuLjU5MDA2YzQ3 YWU4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaAorKysgYi9p bmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5oCkBAIC04MjEsNCArODIxLDEyIEBAIHN0cnVj dCB3bWlfZGV2aWNlX2lkIHsKIAljb25zdCB2b2lkICpjb250ZXh0OwogfTsKIAorLyoqCisgKiBz dHJ1Y3QgbWRldl9jbGFzc19pZCAtIE1ERVYgVklSVElPIGRldmljZSBjbGFzcyBpZGVudGlmaWVy CisgKiBAaWQ6IFVzZWQgdG8gaWRlbnRpZnkgYSBzcGVjaWZpYyBjbGFzcyBvZiBkZXZpY2UsIGUu ZyB2ZmlvLW1kZXYgZGV2aWNlLgorICovCitzdHJ1Y3QgbWRldl92aXJ0aW9fY2xhc3NfaWQgewor CV9fdTE2IGlkOworfTsKKwogI2VuZGlmIC8qIExJTlVYX01PRF9ERVZJQ0VUQUJMRV9IICovCmRp ZmYgLS1naXQgYS9zY3JpcHRzL21vZC9kZXZpY2V0YWJsZS1vZmZzZXRzLmMgYi9zY3JpcHRzL21v ZC9kZXZpY2V0YWJsZS1vZmZzZXRzLmMKaW5kZXggMDU0NDA1YjkwYmE0Li4xNzhmZDdjNzA4MTIg MTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbW9kL2RldmljZXRhYmxlLW9mZnNldHMuYworKysgYi9zY3Jp cHRzL21vZC9kZXZpY2V0YWJsZS1vZmZzZXRzLmMKQEAgLTIzMSw1ICsyMzEsOCBAQCBpbnQgbWFp bih2b2lkKQogCURFVklEKHdtaV9kZXZpY2VfaWQpOwogCURFVklEX0ZJRUxEKHdtaV9kZXZpY2Vf aWQsIGd1aWRfc3RyaW5nKTsKIAorCURFVklEKG1kZXZfdmlydGlvX2NsYXNzX2lkKTsKKwlERVZJ RF9GSUVMRChtZGV2X3ZpcnRpb19jbGFzc19pZCwgaWQpOworCiAJcmV0dXJuIDA7CiB9CmRpZmYg LS1naXQgYS9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMgYi9zY3JpcHRzL21vZC9maWxlMmFsaWFz LmMKaW5kZXggYzkxZWJhNzUxODA0Li4xYTljMWY1OTE5NTEgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMv bW9kL2ZpbGUyYWxpYXMuYworKysgYi9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMKQEAgLTEzMzUs NiArMTMzNSwxNyBAQCBzdGF0aWMgaW50IGRvX3dtaV9lbnRyeShjb25zdCBjaGFyICpmaWxlbmFt ZSwgdm9pZCAqc3ltdmFsLCBjaGFyICphbGlhcykKIAlyZXR1cm4gMTsKIH0KIAorLyogbG9va3Mg bGlrZTogIm1kZXZfdmlydGlvOmNOIiAqLworc3RhdGljIGludCBkb19tZGV2X3ZpcnRpb19lbnRy eShjb25zdCBjaGFyICpmaWxlbmFtZSwgdm9pZCAqc3ltdmFsLCBjaGFyICphbGlhcykKK3sKKwlE RUZfRklFTEQoc3ltdmFsLCBtZGV2X3ZpcnRpb19jbGFzc19pZCwgaWQpOworCisJc3ByaW50Zihh bGlhcywgIm1kZXZfdmlydGlvOmMlMDJYIiwgaWQpOworCWFkZF93aWxkY2FyZChhbGlhcyk7CisJ cmV0dXJuIDE7Cit9CisKKwogLyogRG9lcyBuYW1lbGVuIGJ5dGVzIG9mIG5hbWUgZXhhY3RseSBt YXRjaCB0aGUgc3ltYm9sPyAqLwogc3RhdGljIGJvb2wgc3ltX2lzKGNvbnN0IGNoYXIgKm5hbWUs IHVuc2lnbmVkIG5hbWVsZW4sIGNvbnN0IGNoYXIgKnN5bWJvbCkKIHsKQEAgLTE0MDcsNiArMTQx OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2dGFibGUgZGV2dGFibGVbXSA9IHsKIAl7InR5 cGVjIiwgU0laRV90eXBlY19kZXZpY2VfaWQsIGRvX3R5cGVjX2VudHJ5fSwKIAl7InRlZSIsIFNJ WkVfdGVlX2NsaWVudF9kZXZpY2VfaWQsIGRvX3RlZV9lbnRyeX0sCiAJeyJ3bWkiLCBTSVpFX3dt aV9kZXZpY2VfaWQsIGRvX3dtaV9lbnRyeX0sCisJeyJtZGV2X3ZpcnRpbyIsIFNJWkVfbWRldl92 aXJ0aW9fY2xhc3NfaWQsIGRvX21kZXZfdmlydGlvX2VudHJ5fSwKIH07CiAKIC8qIENyZWF0ZSBN T0RVTEVfQUxJQVMoKSBzdGF0ZW1lbnRzLgotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=