From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: Re: [PATCH 05/10] drm/virtio: use struct to pass params to virtio_gpu_object_create() Date: Wed, 02 Jan 2019 14:12:37 -0300 Message-ID: References: <20181219122708.4586-1-kraxel@redhat.com> <20181219122708.4586-6-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7757A6E880 for ; Wed, 2 Jan 2019 17:12:45 +0000 (UTC) In-Reply-To: <20181219122708.4586-6-kraxel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gerd Hoffmann , dri-devel@lists.freedesktop.org, David Airlie Cc: David Airlie , open list , "open list:VIRTIO GPU DRIVER" List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCAyMDE4LTEyLTE5IGF0IDEzOjI3ICswMTAwLCBHZXJkIEhvZmZtYW5uIHdyb3RlOgo+ IENyZWF0ZSB2aXJ0aW9fZ3B1X29iamVjdF9wYXJhbXMsIHVzZSB0aGF0IHRvIHBhc3Mgb2JqZWN0 IHBhcmFtZXRlcnMgdG8KPiB2aXJ0aW9fZ3B1X29iamVjdF9jcmVhdGUuICBBbHNvIGRyb3AgdW51 c2VkICJrZXJuZWwiIHBhcmFtZXRlciAodW51c2VkLAo+IGFsd2F5cyBmYWxzZSkuCj4gCj4gU2ln bmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCAgICB8IDE1ICsrKysrKysrKystLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZ2VtLmMgICAgfCAxOCArKysrKysr KysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMgIHwg MTIgKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9vYmplY3Qu YyB8IDIyICsrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNl cnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X2Rydi5oCj4gaW5kZXggYmZiMzFmYzNkMC4uOGNmZjhhM2Y3YyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfZHJ2LmgKPiBAQCAtNTMsNiArNTMsMTEgQEAKPiAgLyogdmlydGdwdV9k cm1fYnVzLmMgKi8KPiAgaW50IGRybV92aXJ0aW9faW5pdChzdHJ1Y3QgZHJtX2RyaXZlciAqZHJp dmVyLCBzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldik7Cj4gIAo+ICtzdHJ1Y3QgdmlydGlvX2dw dV9vYmplY3RfcGFyYW1zIHsKPiArCXVuc2lnbmVkIGxvbmcgc2l6ZTsKPiArCWJvb2wgcGlubmVk Owo+ICt9Owo+ICsKPiAgc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0IHsKPiAgCXN0cnVjdCBkcm1f Z2VtX29iamVjdCBnZW1fYmFzZTsKPiAgCXVpbnQzMl90IGh3X3Jlc19oYW5kbGU7Cj4gQEAgLTIy MCwxNiArMjI1LDE2IEBAIGludCB2aXJ0aW9fZ3B1X2dlbV9pbml0KHN0cnVjdCB2aXJ0aW9fZ3B1 X2RldmljZSAqdmdkZXYpOwo+ICB2b2lkIHZpcnRpb19ncHVfZ2VtX2Zpbmkoc3RydWN0IHZpcnRp b19ncHVfZGV2aWNlICp2Z2Rldik7Cj4gIGludCB2aXJ0aW9fZ3B1X2dlbV9jcmVhdGUoc3RydWN0 IGRybV9maWxlICpmaWxlLAo+ICAJCQkgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCSAg dWludDY0X3Qgc2l6ZSwKPiArCQkJICBzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3RfcGFyYW1zICpw YXJhbXMsCj4gIAkJCSAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2JqX3AsCj4gIAkJCSAgdWlu dDMyX3QgKmhhbmRsZV9wKTsKPiAgaW50IHZpcnRpb19ncHVfZ2VtX29iamVjdF9vcGVuKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLAo+ICAJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxl KTsKPiAgdm9pZCB2aXJ0aW9fZ3B1X2dlbV9vYmplY3RfY2xvc2Uoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmosCj4gIAkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlKTsKPiAtc3RydWN0IHZpcnRp b19ncHVfb2JqZWN0ICp2aXJ0aW9fZ3B1X2FsbG9jX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+IC0JCQkJCQkgIHNpemVfdCBzaXplLCBib29sIGtlcm5lbCwKPiAtCQkJCQkJICBib29s IHBpbm5lZCk7Cj4gK3N0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCoKPiArdmlydGlvX2dwdV9hbGxv Y19vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJc3RydWN0IHZpcnRpb19ncHVf b2JqZWN0X3BhcmFtcyAqcGFyYW1zKTsKPiAgaW50IHZpcnRpb19ncHVfbW9kZV9kdW1iX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAgCQkJCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIAkJCQlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpOwo+IEBAIC0zNDUs NyArMzUwLDcgQEAgdm9pZCB2aXJ0aW9fZ3B1X2ZlbmNlX2V2ZW50X3Byb2Nlc3Moc3RydWN0IHZp cnRpb19ncHVfZGV2aWNlICp2ZGV2LAo+ICAKPiAgLyogdmlydGlvX2dwdV9vYmplY3QgKi8KPiAg aW50IHZpcnRpb19ncHVfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZn ZGV2LAo+IC0JCQkgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgYm9vbCBrZXJuZWwsIGJvb2wgcGlu bmVkLAo+ICsJCQkgICAgIHN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdF9wYXJhbXMgKnBhcmFtcywK PiAgCQkJICAgICBzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKipib19wdHIpOwo+ICB2b2lkIHZp cnRpb19ncHVfb2JqZWN0X2t1bm1hcChzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKmJvKTsKPiAg aW50IHZpcnRpb19ncHVfb2JqZWN0X2ttYXAoc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0ICpibyk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9nZW0uYwo+IGluZGV4IGYwNjU4NjM5MzkuLjM4 NGNkODBiZjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2dl bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2dlbS5jCj4gQEAgLTM0 LDE1ICszNCwxNSBAQCB2b2lkIHZpcnRpb19ncHVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqZ2VtX29iaikKPiAgCQl2aXJ0aW9fZ3B1X29iamVjdF91bnJlZigmb2JqKTsK PiAgfQo+ICAKPiAtc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0ICp2aXJ0aW9fZ3B1X2FsbG9jX29i amVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJCQkgIHNpemVfdCBzaXplLCBib29s IGtlcm5lbCwKPiAtCQkJCQkJICBib29sIHBpbm5lZCkKPiArc3RydWN0IHZpcnRpb19ncHVfb2Jq ZWN0Kgo+ICt2aXJ0aW9fZ3B1X2FsbG9jX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQlzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3RfcGFyYW1zICpwYXJhbXMpCj4gIHsKPiAgCXN0 cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3Ry dWN0IHZpcnRpb19ncHVfb2JqZWN0ICpvYmo7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXJldCA9IHZp cnRpb19ncHVfb2JqZWN0X2NyZWF0ZSh2Z2Rldiwgc2l6ZSwga2VybmVsLCBwaW5uZWQsICZvYmop Owo+ICsJcmV0ID0gdmlydGlvX2dwdV9vYmplY3RfY3JlYXRlKHZnZGV2LCBwYXJhbXMsICZvYmop Owo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAKPiBAQCAtNTEsNyAr NTEsNyBAQCBzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKnZpcnRpb19ncHVfYWxsb2Nfb2JqZWN0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ICBpbnQgdmlydGlvX2dwdV9nZW1fY3JlYXRl KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiAgCQkJICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ IC0JCQkgIHVpbnQ2NF90IHNpemUsCj4gKwkJCSAgc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0X3Bh cmFtcyAqcGFyYW1zLAo+ICAJCQkgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9ial9wLAo+ICAJ CQkgIHVpbnQzMl90ICpoYW5kbGVfcCkKPiAgewo+IEBAIC01OSw3ICs1OSw3IEBAIGludCB2aXJ0 aW9fZ3B1X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAo+ICAJaW50IHJldDsKPiAg CXUzMiBoYW5kbGU7Cj4gIAo+IC0Jb2JqID0gdmlydGlvX2dwdV9hbGxvY19vYmplY3QoZGV2LCBz aXplLCBmYWxzZSwgZmFsc2UpOwo+ICsJb2JqID0gdmlydGlvX2dwdV9hbGxvY19vYmplY3QoZGV2 LCBwYXJhbXMpOwo+ICAJaWYgKElTX0VSUihvYmopKQo+ICAJCXJldHVybiBQVFJfRVJSKG9iaik7 Cj4gIAo+IEBAIC04NSw2ICs4NSw5IEBAIGludCB2aXJ0aW9fZ3B1X21vZGVfZHVtYl9jcmVhdGUo c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gIAlzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2Ug KnZnZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29i ajsKPiAgCXN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqb2JqOwo+ICsJc3RydWN0IHZpcnRpb19n cHVfb2JqZWN0X3BhcmFtcyBwYXJhbXMgPSB7Cj4gKwkJLnBpbm5lZCA9IGZhbHNlLAo+ICsJfTsK Ck5pdDogSSB0aGluayBpdCdzIG1vcmUgcmVhZGFibGUgdG8gc2V0IGFsbCB0aGUgZmllbGRzCm9m IHRoZSBwYXJhbXMgc3RydWN0IGluIHRoZSBzYW1lIHBsYWNlLi4uCgo+ICAJaW50IHJldDsKPiAg CXVpbnQzMl90IHBpdGNoOwo+ICAJdWludDMyX3QgZm9ybWF0Owo+IEBAIC05Niw3ICs5OSw4IEBA IGludCB2aXJ0aW9fZ3B1X21vZGVfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYsCj4gIAlhcmdzLT5zaXplID0gcGl0Y2ggKiBhcmdzLT5oZWlnaHQ7Cj4gIAlhcmdzLT5zaXpl ID0gQUxJR04oYXJncy0+c2l6ZSwgUEFHRV9TSVpFKTsKPiAgCj4gLQlyZXQgPSB2aXJ0aW9fZ3B1 X2dlbV9jcmVhdGUoZmlsZV9wcml2LCBkZXYsIGFyZ3MtPnNpemUsICZnb2JqLAoKLi4uIGkuZS4g aGVyZS4KCj4gKwlwYXJhbXMuc2l6ZSA9IGFyZ3MtPnNpemU7Cj4gKwlyZXQgPSB2aXJ0aW9fZ3B1 X2dlbV9jcmVhdGUoZmlsZV9wcml2LCBkZXYsICZwYXJhbXMsICZnb2JqLAo+ICAJCQkJICAgICZh cmdzLT5oYW5kbGUpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJt L3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKPiBpbmRleCAxNGNlODE4OGMwLi42NWI0YTU0ZjEwIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKPiBAQCAtMjc5LDEyICsy NzksMTQgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJc3RydWN0IHZpcnRpb19ncHVfb2Jq ZWN0ICpxb2JqOwo+ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4gIAl1aW50MzJfdCBo YW5kbGUgPSAwOwo+IC0JdWludDMyX3Qgc2l6ZTsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgdmFsaWRh dGVfbGlzdDsKPiAgCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyIG1haW5idWY7Cj4gIAlzdHJ1 Y3QgdmlydGlvX2dwdV9mZW5jZSAqZmVuY2UgPSBOVUxMOwo+ICAJc3RydWN0IHd3X2FjcXVpcmVf Y3R4IHRpY2tldDsKPiAgCXN0cnVjdCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV8zZCByY18z ZDsKPiArCXN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdF9wYXJhbXMgcGFyYW1zID0gewo+ICsJCS5w aW5uZWQgPSBmYWxzZSwKPiArCX07Cj4gIAo+ICAJaWYgKHZnZGV2LT5oYXNfdmlyZ2xfM2QgPT0g ZmFsc2UpIHsKPiAgCQlpZiAocmMtPmRlcHRoID4gMSkKPiBAQCAtMzAyLDEzICszMDQsMTMgQEAg c3RhdGljIGludCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJSU5JVF9MSVNUX0hFQUQoJnZhbGlkYXRlX2xpc3Qp Owo+ICAJbWVtc2V0KCZtYWluYnVmLCAwLCBzaXplb2Yoc3RydWN0IHR0bV92YWxpZGF0ZV9idWZm ZXIpKTsKPiAgCj4gLQlzaXplID0gcmMtPnNpemU7Cj4gKwlwYXJhbXMuc2l6ZSA9IHJjLT5zaXpl Owo+ICAKPiAgCS8qIGFsbG9jYXRlIGEgc2luZ2xlIHBhZ2Ugc2l6ZSBvYmplY3QgKi8KPiAtCWlm IChzaXplID09IDApCj4gLQkJc2l6ZSA9IFBBR0VfU0laRTsKPiArCWlmIChwYXJhbXMuc2l6ZSA9 PSAwKQo+ICsJCXBhcmFtcy5zaXplID0gUEFHRV9TSVpFOwo+ICAKPiAtCXFvYmogPSB2aXJ0aW9f Z3B1X2FsbG9jX29iamVjdChkZXYsIHNpemUsIGZhbHNlLCBmYWxzZSk7Cj4gKwlxb2JqID0gdmly dGlvX2dwdV9hbGxvY19vYmplY3QoZGV2LCAmcGFyYW1zKTsKPiAgCWlmIChJU19FUlIocW9iaikp Cj4gIAkJcmV0dXJuIFBUUl9FUlIocW9iaik7Cj4gIAlvYmogPSAmcW9iai0+Z2VtX2Jhc2U7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9vYmplY3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9vYmplY3QuYwo+IGluZGV4IGYzOWExODNkNTku LjYyMzY3ZTNmODAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X29iamVjdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X29iamVjdC5j Cj4gQEAgLTc5LDIxICs3OSwxNiBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fZ3B1X2luaXRfdHRtX3Bs YWNlbWVudChzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKnZnYm8sCj4gIH0KPiAgCj4gIGludCB2 aXJ0aW9fZ3B1X29iamVjdF9jcmVhdGUoc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2Z2RldiwK PiAtCQkJICAgICB1bnNpZ25lZCBsb25nIHNpemUsIGJvb2wga2VybmVsLCBib29sIHBpbm5lZCwK PiArCQkJICAgICBzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3RfcGFyYW1zICpwYXJhbXMsCj4gIAkJ CSAgICAgc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0ICoqYm9fcHRyKQo+ICB7Cj4gIAlzdHJ1Y3Qg dmlydGlvX2dwdV9vYmplY3QgKmJvOwo+IC0JZW51bSB0dG1fYm9fdHlwZSB0eXBlOwo+ICAJc2l6 ZV90IGFjY19zaXplOwo+ICAJaW50IHJldDsKPiAgCj4gLQlpZiAoa2VybmVsKQo+IC0JCXR5cGUg PSB0dG1fYm9fdHlwZV9rZXJuZWw7Cj4gLQllbHNlCj4gLQkJdHlwZSA9IHR0bV9ib190eXBlX2Rl dmljZTsKPiAgCSpib19wdHIgPSBOVUxMOwo+ICAKPiAtCWFjY19zaXplID0gdHRtX2JvX2RtYV9h Y2Nfc2l6ZSgmdmdkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPiArCWFjY19zaXplID0gdHRtX2JvX2Rt YV9hY2Nfc2l6ZSgmdmdkZXYtPm1tYW4uYmRldiwgcGFyYW1zLT5zaXplLAo+ICAJCQkJICAgICAg IHNpemVvZihzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QpKTsKPiAgCj4gIAlibyA9IGt6YWxsb2Mo c2l6ZW9mKHN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCksIEdGUF9LRVJORUwpOwo+IEBAIC0xMDQs MTkgKzk5LDIwIEBAIGludCB2aXJ0aW9fZ3B1X29iamVjdF9jcmVhdGUoc3RydWN0IHZpcnRpb19n cHVfZGV2aWNlICp2Z2RldiwKPiAgCQlrZnJlZShibyk7Cj4gIAkJcmV0dXJuIHJldDsKPiAgCX0K PiAtCXNpemUgPSByb3VuZHVwKHNpemUsIFBBR0VfU0laRSk7Cj4gLQlyZXQgPSBkcm1fZ2VtX29i amVjdF9pbml0KHZnZGV2LT5kZGV2LCAmYm8tPmdlbV9iYXNlLCBzaXplKTsKPiArCXBhcmFtcy0+ c2l6ZSA9IHJvdW5kdXAocGFyYW1zLT5zaXplLCBQQUdFX1NJWkUpOwo+ICsJcmV0ID0gZHJtX2dl bV9vYmplY3RfaW5pdCh2Z2Rldi0+ZGRldiwgJmJvLT5nZW1fYmFzZSwgcGFyYW1zLT5zaXplKTsK PiAgCWlmIChyZXQgIT0gMCkgewo+ICAJCXZpcnRpb19ncHVfcmVzb3VyY2VfaWRfcHV0KHZnZGV2 LCBiby0+aHdfcmVzX2hhbmRsZSk7Cj4gIAkJa2ZyZWUoYm8pOwo+ICAJCXJldHVybiByZXQ7Cj4g IAl9Cj4gIAliby0+ZHVtYiA9IGZhbHNlOwo+IC0JdmlydGlvX2dwdV9pbml0X3R0bV9wbGFjZW1l bnQoYm8sIHBpbm5lZCk7Cj4gKwl2aXJ0aW9fZ3B1X2luaXRfdHRtX3BsYWNlbWVudChibywgcGFy YW1zLT5waW5uZWQpOwo+ICAKPiAtCXJldCA9IHR0bV9ib19pbml0KCZ2Z2Rldi0+bW1hbi5iZGV2 LCAmYm8tPnRibywgc2l6ZSwgdHlwZSwKPiAtCQkJICAmYm8tPnBsYWNlbWVudCwgMCwgIWtlcm5l bCwgYWNjX3NpemUsCj4gLQkJCSAgTlVMTCwgTlVMTCwgJnZpcnRpb19ncHVfdHRtX2JvX2Rlc3Ry b3kpOwo+ICsJcmV0ID0gdHRtX2JvX2luaXQoJnZnZGV2LT5tbWFuLmJkZXYsICZiby0+dGJvLCBw YXJhbXMtPnNpemUsCj4gKwkJCSAgdHRtX2JvX3R5cGVfZGV2aWNlLCAmYm8tPnBsYWNlbWVudCwg MCwKPiArCQkJICB0cnVlLCBhY2Nfc2l6ZSwgTlVMTCwgTlVMTCwKPiArCQkJICAmdmlydGlvX2dw dV90dG1fYm9fZGVzdHJveSk7Cj4gIAkvKiB0dG1fYm9faW5pdCBmYWlsdXJlIHdpbGwgY2FsbCB0 aGUgZGVzdHJveSAqLwo+ICAJaWYgKHJldCAhPSAwKQo+ICAJCXJldHVybiByZXQ7CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==