From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bartlomiej Zolnierkiewicz Subject: Re: [PATCH 5/8] ide-cd: remove handler wrappers Date: Sun, 21 Dec 2008 20:15:37 +0100 Message-ID: <200812212015.39677.bzolnier@gmail.com> References: <1229586052-3542-1-git-send-email-petkovbb@gmail.com> <1229586052-3542-6-git-send-email-petkovbb@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-bw0-f21.google.com ([209.85.218.21]:56112 "EHLO mail-bw0-f21.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751251AbYLUU5z (ORCPT ); Sun, 21 Dec 2008 15:57:55 -0500 In-Reply-To: <1229586052-3542-6-git-send-email-petkovbb@gmail.com> Content-Disposition: inline Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Borislav Petkov Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, Borislav Petkov T24gVGh1cnNkYXkgMTggRGVjZW1iZXIgMjAwOCwgQm9yaXNsYXYgUGV0a292IHdyb3RlOgo+IFJl bW92ZSBjZHJvbV9kb19uZXdwY19jb250IGFuZCBjZHJvbV9zdGFydF9yd19jb250IHdyYXBwZXJz IGFuZCBwYXNzCj4gY2Ryb21fdHJhbnNmZXJfcGFja2V0X2NvbW1hbmQgdG8gaWRlX2V4ZWN1dGVf Y29tbWFuZCBkaXJlY3RseS4KPiAKPiBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb25hbGl0eSBj aGFuZ2UgcmVzdWx0aW5nIGZyb20gdGhpcyBwYXRjaC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBCb3Jp c2xhdiBQZXRrb3YgPHBldGtvdmJiQGdtYWlsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9pZGUvaWRl LWNkLmMgfCAgMTIxICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gIDEgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgNzMgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1jZC5jIGIvZHJpdmVycy9pZGUv aWRlLWNkLmMKPiBpbmRleCAzNDk4MWY1Li5mM2M3Y2MzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv aWRlL2lkZS1jZC5jCj4gKysrIGIvZHJpdmVycy9pZGUvaWRlLWNkLmMKPiBAQCAtNTExLDQ4ICs1 MTEsNyBAQCBlbmRfcmVxdWVzdDoKPiAgCXJldHVybiAxOwo+ICB9Cj4gIAo+IC0vKgo+IC0gKiBT ZXQgdXAgdGhlIGRldmljZSByZWdpc3RlcnMgZm9yIHRyYW5zZmVycmluZyBhIHBhY2tldCBjb21t YW5kIG9uIERFViwKPiAtICogZXhwZWN0aW5nIHRvIGxhdGVyIHRyYW5zZmVyIFhGRVJMRU4gYnl0 ZXMuICBIQU5ETEVSIGlzIHRoZSByb3V0aW5lCj4gLSAqIHdoaWNoIGFjdHVhbGx5IHRyYW5zZmVy cyB0aGUgY29tbWFuZCB0byB0aGUgZHJpdmUuICBJZiB0aGlzIGlzIGEKPiAtICogZHJxX2ludGVy cnVwdCBkZXZpY2UsIHRoaXMgcm91dGluZSB3aWxsIGFycmFuZ2UgZm9yIEhBTkRMRVIgdG8gYmUK PiAtICogY2FsbGVkIHdoZW4gdGhlIGludGVycnVwdCBmcm9tIHRoZSBkcml2ZSBhcnJpdmVzLiAg T3RoZXJ3aXNlLCBIQU5ETEVSCj4gLSAqIHdpbGwgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVy IHRoZSBkcml2ZSBpcyBwcmVwYXJlZCBmb3IgdGhlIHRyYW5zZmVyLgo+IC0gKi8KPiAtc3RhdGlj IGlkZV9zdGFydHN0b3BfdCBjZHJvbV9zdGFydF9wYWNrZXRfY29tbWFuZChpZGVfZHJpdmVfdCAq ZHJpdmUsCj4gLQkJCQkJCSAgaWRlX2hhbmRsZXJfdCAqaGFuZGxlcikKPiAtewo+IC0JaWRlX2h3 aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOwo+IC0Jc3RydWN0IHJlcXVlc3QgKnJxID0gaHdpZi0+ aHdncm91cC0+cnE7Cj4gLQlpbnQgeGZlcmxlbjsKPiAtCj4gLQl4ZmVybGVuID0gaWRlX2NkX2dl dF94ZmVybGVuKHJxKTsKPiAtCj4gLQlpZGVfZGVidWdfbG9nKElERV9EQkdfUEMsICJDYWxsICVz LCB4ZmVybGVuOiAlZFxuIiwgX19mdW5jX18sIHhmZXJsZW4pOwo+IC0KPiAtCS8qIEZJWE1FOiBm b3IgVmlydHVhbCBETUEgd2UgbXVzdCBjaGVjayBoYXJkZXIgKi8KPiAtCWlmIChkcml2ZS0+ZG1h KQo+IC0JCWRyaXZlLT5kbWEgPSAhaHdpZi0+ZG1hX29wcy0+ZG1hX3NldHVwKGRyaXZlKTsKPiAt Cj4gLQkvKiBzZXQgdXAgdGhlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCj4gLQlpZGVfcGt0Y21k X3RmX2xvYWQoZHJpdmUsIElERV9URkxBR19PVVRfTlNFQ1QgfCBJREVfVEZMQUdfT1VUX0xCQUws Cj4gLQkJCSAgIHhmZXJsZW4sIGRyaXZlLT5kbWEpOwo+IC0KPiAtCWlmIChkcml2ZS0+YXRhcGlf ZmxhZ3MgJiBJREVfQUZMQUdfRFJRX0lOVEVSUlVQVCkgewo+IC0JCS8qIHdhaXRpbmcgZm9yIENE QiBpbnRlcnJ1cHQsIG5vdCBETUEgeWV0LiAqLwo+IC0JCWlmIChkcml2ZS0+ZG1hKQo+IC0JCQlk cml2ZS0+d2FpdGluZ19mb3JfZG1hID0gMDsKPiAtCj4gLQkJLyogcGFja2V0IGNvbW1hbmQgKi8K PiAtCQlpZGVfZXhlY3V0ZV9jb21tYW5kKGRyaXZlLCBBVEFfQ01EX1BBQ0tFVCwgaGFuZGxlciwK PiAtCQkJCSAgICBBVEFQSV9XQUlUX1BDLCBpZGVfY2RfZXhwaXJ5KTsKPiAtCQlyZXR1cm4gaWRl X3N0YXJ0ZWQ7Cj4gLQl9IGVsc2Ugewo+IC0JCWlkZV9leGVjdXRlX3BrdF9jbWQoZHJpdmUpOwo+ IC0KPiAtCQlyZXR1cm4gKCpoYW5kbGVyKSAoZHJpdmUpOwo+IC0JfQo+IC19Cj4gK3N0YXRpYyBp ZGVfc3RhcnRzdG9wX3QgY2Ryb21fbmV3cGNfaW50cihpZGVfZHJpdmVfdCAqKTsKPiAgCj4gIC8q Cj4gICAqIFNlbmQgYSBwYWNrZXQgY29tbWFuZCB0byBEUklWRSBkZXNjcmliZWQgYnkgQ01EX0JV RiBhbmQgQ01EX0xFTi4gVGhlIGRldmljZQo+IEBAIC01NjEsMTEgKzUyMCwxMCBAQCBzdGF0aWMg aWRlX3N0YXJ0c3RvcF90IGNkcm9tX3N0YXJ0X3BhY2tldF9jb21tYW5kKGlkZV9kcml2ZV90ICpk cml2ZSwKPiAgICogdGhlcmUncyBkYXRhIHJlYWR5Lgo+ICAgKi8KPiAgI2RlZmluZSBBVEFQSV9N SU5fQ0RCX0JZVEVTIDEyCj4gLXN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgY2Ryb21fdHJhbnNmZXJf cGFja2V0X2NvbW1hbmQoaWRlX2RyaXZlX3QgKmRyaXZlLAo+IC0JCQkJCSAgc3RydWN0IHJlcXVl c3QgKnJxLAo+IC0JCQkJCSAgaWRlX2hhbmRsZXJfdCAqaGFuZGxlcikKPiArc3RhdGljIGlkZV9z dGFydHN0b3BfdCBjZHJvbV90cmFuc2Zlcl9wYWNrZXRfY29tbWFuZChpZGVfZHJpdmVfdCAqZHJp dmUpCj4gIHsKPiAgCWlkZV9od2lmX3QgKmh3aWYgPSBkcml2ZS0+aHdpZjsKPiArCXN0cnVjdCBy ZXF1ZXN0ICpycSA9IGh3aWYtPmh3Z3JvdXAtPnJxOwo+ICAJaW50IGNtZF9sZW47Cj4gIAlpZGVf c3RhcnRzdG9wX3Qgc3RhcnRzdG9wOwo+ICAKPiBAQCAtNTkyLDcgKzU1MCw3IEBAIHN0YXRpYyBp ZGVfc3RhcnRzdG9wX3QgY2Ryb21fdHJhbnNmZXJfcGFja2V0X2NvbW1hbmQoaWRlX2RyaXZlX3Qg KmRyaXZlLAo+ICAJfQo+ICAKPiAgCS8qIGFybSB0aGUgaW50ZXJydXB0IGhhbmRsZXIgKi8KPiAt CWlkZV9zZXRfaGFuZGxlcihkcml2ZSwgaGFuZGxlciwgcnEtPnRpbWVvdXQsIGlkZV9jZF9leHBp cnkpOwo+ICsJaWRlX3NldF9oYW5kbGVyKGRyaXZlLCBjZHJvbV9uZXdwY19pbnRyLCBycS0+dGlt ZW91dCwgaWRlX2NkX2V4cGlyeSk7Cj4gIAo+ICAJLyogQVRBUEkgY29tbWFuZHMgZ2V0IHBhZGRl ZCBvdXQgdG8gMTIgYnl0ZXMgbWluaW11bSAqLwo+ICAJY21kX2xlbiA9IENPTU1BTkRfU0laRShy cS0+Y21kWzBdKTsKPiBAQCAtNjEwLDYgKzU2OCw0OSBAQCBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90 IGNkcm9tX3RyYW5zZmVyX3BhY2tldF9jb21tYW5kKGlkZV9kcml2ZV90ICpkcml2ZSwKPiAgfQo+ ICAKPiAgLyoKPiArICogU2V0IHVwIHRoZSBkZXZpY2UgcmVnaXN0ZXJzIGZvciB0cmFuc2ZlcnJp bmcgYSBwYWNrZXQgY29tbWFuZCBvbiBERVYsCj4gKyAqIGV4cGVjdGluZyB0byBsYXRlciB0cmFu c2ZlciBYRkVSTEVOIGJ5dGVzLiAgSEFORExFUiBpcyB0aGUgcm91dGluZQo+ICsgKiB3aGljaCBh Y3R1YWxseSB0cmFuc2ZlcnMgdGhlIGNvbW1hbmQgdG8gdGhlIGRyaXZlLiAgSWYgdGhpcyBpcyBh Cj4gKyAqIGRycV9pbnRlcnJ1cHQgZGV2aWNlLCB0aGlzIHJvdXRpbmUgd2lsbCBhcnJhbmdlIGZv ciBIQU5ETEVSIHRvIGJlCj4gKyAqIGNhbGxlZCB3aGVuIHRoZSBpbnRlcnJ1cHQgZnJvbSB0aGUg ZHJpdmUgYXJyaXZlcy4gIE90aGVyd2lzZSwgSEFORExFUgo+ICsgKiB3aWxsIGJlIGNhbGxlZCBp bW1lZGlhdGVseSBhZnRlciB0aGUgZHJpdmUgaXMgcHJlcGFyZWQgZm9yIHRoZSB0cmFuc2Zlci4K PiArICovCj4gK3N0YXRpYyBpZGVfc3RhcnRzdG9wX3QgY2Ryb21fc3RhcnRfcGFja2V0X2NvbW1h bmQoaWRlX2RyaXZlX3QgKmRyaXZlKQo+ICt7Cj4gKwlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUt Pmh3aWY7Cj4gKwlzdHJ1Y3QgcmVxdWVzdCAqcnEgPSBod2lmLT5od2dyb3VwLT5ycTsKPiArCWlu dCB4ZmVybGVuOwo+ICsKPiArCXhmZXJsZW4gPSBpZGVfY2RfZ2V0X3hmZXJsZW4ocnEpOwo+ICsK PiArCWlkZV9kZWJ1Z19sb2coSURFX0RCR19QQywgIkNhbGwgJXMsIHhmZXJsZW46ICVkXG4iLCBf X2Z1bmNfXywgeGZlcmxlbik7Cj4gKwo+ICsJLyogRklYTUU6IGZvciBWaXJ0dWFsIERNQSB3ZSBt dXN0IGNoZWNrIGhhcmRlciAqLwo+ICsJaWYgKGRyaXZlLT5kbWEpCj4gKwkJZHJpdmUtPmRtYSA9 ICFod2lmLT5kbWFfb3BzLT5kbWFfc2V0dXAoZHJpdmUpOwo+ICsKPiArCS8qIHNldCB1cCB0aGUg Y29udHJvbGxlciByZWdpc3RlcnMgKi8KPiArCWlkZV9wa3RjbWRfdGZfbG9hZChkcml2ZSwgSURF X1RGTEFHX09VVF9OU0VDVCB8IElERV9URkxBR19PVVRfTEJBTCwKPiArCQkJICAgeGZlcmxlbiwg ZHJpdmUtPmRtYSk7Cj4gKwo+ICsJaWYgKGRyaXZlLT5hdGFwaV9mbGFncyAmIElERV9BRkxBR19E UlFfSU5URVJSVVBUKSB7Cj4gKwkJLyogd2FpdGluZyBmb3IgQ0RCIGludGVycnVwdCwgbm90IERN QSB5ZXQuICovCj4gKwkJaWYgKGRyaXZlLT5kbWEpCj4gKwkJCWRyaXZlLT53YWl0aW5nX2Zvcl9k bWEgPSAwOwo+ICsKPiArCQkvKiBwYWNrZXQgY29tbWFuZCAqLwo+ICsJCWlkZV9leGVjdXRlX2Nv bW1hbmQoZHJpdmUsIEFUQV9DTURfUEFDS0VULAo+ICsJCQkJICAgIGNkcm9tX3RyYW5zZmVyX3Bh Y2tldF9jb21tYW5kLAo+ICsJCQkJICAgIEFUQVBJX1dBSVRfUEMsIGlkZV9jZF9leHBpcnkpOwo+ ICsJCXJldHVybiBpZGVfc3RhcnRlZDsKPiArCX0gZWxzZSB7Cj4gKwkJaWRlX2V4ZWN1dGVfcGt0 X2NtZChkcml2ZSk7Cj4gKwo+ICsJCXJldHVybiBjZHJvbV90cmFuc2Zlcl9wYWNrZXRfY29tbWFu ZChkcml2ZSk7Cj4gKwl9Cj4gK30KPiArCj4gKy8qCj4gICAqIENoZWNrIHRoZSBjb250ZW50cyBv ZiB0aGUgaW50ZXJydXB0IHJlYXNvbiByZWdpc3RlciBmcm9tIHRoZSBjZHJvbQo+ICAgKiBhbmQg YXR0ZW1wdCB0byByZWNvdmVyIGlmIHRoZXJlIGFyZSBwcm9ibGVtcy4gIFJldHVybnMgIDAgaWYg ZXZlcnl0aGluZydzCj4gICAqIG9rOyBub256ZXJvIGlmIHRoZSByZXF1ZXN0IGhhcyBiZWVuIHRl cm1pbmF0ZWQuCj4gQEAgLTY4MCw4ICs2ODEsNiBAQCBzdGF0aWMgaW50IGlkZV9jZF9jaGVja190 cmFuc2Zlcl9zaXplKGlkZV9kcml2ZV90ICpkcml2ZSwgaW50IGxlbikKPiAgCXJldHVybiAxOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGNkcm9tX25ld3BjX2ludHIoaWRlX2Ry aXZlX3QgKik7Cj4gLQo+ICBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZV9jZF9wcmVwYXJlX3J3 X3JlcXVlc3QoaWRlX2RyaXZlX3QgKmRyaXZlLAo+ICAJCQkJCQkgc3RydWN0IHJlcXVlc3QgKnJx KQo+ICB7Cj4gQEAgLTcyNCwyMCArNzIzLDYgQEAgc3RhdGljIGlkZV9zdGFydHN0b3BfdCBpZGVf Y2RfcHJlcGFyZV9yd19yZXF1ZXN0KGlkZV9kcml2ZV90ICpkcml2ZSwKPiAgfQo+ICAKPiAgLyoK PiAtICogUm91dGluZSB0byBzZW5kIGEgcmVhZC93cml0ZSBwYWNrZXQgY29tbWFuZCB0byB0aGUg ZHJpdmUuIFRoaXMgaXMgdXN1YWxseQo+IC0gKiBjYWxsZWQgZGlyZWN0bHkgZnJvbSBjZHJvbV9z dGFydF97cmVhZCx3cml0ZX0oKS4gSG93ZXZlciwgZm9yIGRycV9pbnRlcnJ1cHQKPiAtICogZGV2 aWNlcywgaXQgaXMgY2FsbGVkIGZyb20gYW4gaW50ZXJydXB0IHdoZW4gdGhlIGRyaXZlIGlzIHJl YWR5IHRvIGFjY2VwdAo+IC0gKiB0aGUgY29tbWFuZC4KPiAtICovCj4gLXN0YXRpYyBpZGVfc3Rh cnRzdG9wX3QgY2Ryb21fc3RhcnRfcndfY29udChpZGVfZHJpdmVfdCAqZHJpdmUpCj4gLXsKPiAt CXN0cnVjdCByZXF1ZXN0ICpycSA9IGRyaXZlLT5od2lmLT5od2dyb3VwLT5ycTsKPiAtCj4gLQkv KiBzZW5kIHRoZSBjb21tYW5kIHRvIHRoZSBkcml2ZSBhbmQgcmV0dXJuICovCj4gLQlyZXR1cm4g Y2Ryb21fdHJhbnNmZXJfcGFja2V0X2NvbW1hbmQoZHJpdmUsIHJxLCBjZHJvbV9uZXdwY19pbnRy KTsKPiAtfQo+IC0KPiAtLyoKPiAgICogRml4IHVwIGEgcG9zc2libHkgcGFydGlhbGx5LXByb2Nl c3NlZCByZXF1ZXN0IHNvIHRoYXQgd2UgY2FuIHN0YXJ0IGl0IG92ZXIKPiAgICogZW50aXJlbHks IG9yIGV2ZW4gcHV0IGl0IGJhY2sgb24gdGhlIHJlcXVlc3QgcXVldWUuCj4gICAqLwo+IEBAIC0x MTI2LDEzICsxMTExLDYgQEAgc3RhdGljIGlkZV9zdGFydHN0b3BfdCBjZHJvbV9zdGFydF9ydyhp ZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkKPiAgCXJldHVybiBpZGVfc3Rh cnRlZDsKPiAgfQo+ICAKPiAtc3RhdGljIGlkZV9zdGFydHN0b3BfdCBjZHJvbV9kb19uZXdwY19j b250KGlkZV9kcml2ZV90ICpkcml2ZSkKPiAtewo+IC0Jc3RydWN0IHJlcXVlc3QgKnJxID0gSFdH Uk9VUChkcml2ZSktPnJxOwo+IC0KPiAtCXJldHVybiBjZHJvbV90cmFuc2Zlcl9wYWNrZXRfY29t bWFuZChkcml2ZSwgcnEsIGNkcm9tX25ld3BjX2ludHIpOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9p ZCBjZHJvbV9kb19ibG9ja19wYyhpZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpy cSkKPiAgewo+ICAKPiBAQCAtMTE3Nyw3ICsxMTU1LDYgQEAgc3RhdGljIHZvaWQgY2Ryb21fZG9f YmxvY2tfcGMoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCj4gIHN0YXRp YyBpZGVfc3RhcnRzdG9wX3QgaWRlX2NkX2RvX3JlcXVlc3QoaWRlX2RyaXZlX3QgKmRyaXZlLCBz dHJ1Y3QgcmVxdWVzdCAqcnEsCj4gIAkJCQkJc2VjdG9yX3QgYmxvY2spCj4gIHsKPiAtCWlkZV9o YW5kbGVyX3QgKmZuOwo+ICAKPiAgCWlkZV9kZWJ1Z19sb2coSURFX0RCR19SUSwgIkNhbGwgJXMs IHJxLT5jbWRbMF06IDB4JXgsICIKPiAgCQkgICAgICAicnEtPmNtZF90eXBlOiAweCV4LCBibG9j azogJWxsdVxuIiwKPiBAQCAtMTE4NSw3ICsxMTYyLDYgQEAgc3RhdGljIGlkZV9zdGFydHN0b3Bf dCBpZGVfY2RfZG9fcmVxdWVzdChpZGVfZHJpdmVfdCAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpy cSwKPiAgCQkgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWJsb2NrKTsKPiAgCj4gIAlpZiAoYmxr X2ZzX3JlcXVlc3QocnEpKSB7Cj4gLQkJZm4gPSBjZHJvbV9zdGFydF9yd19jb250Owo+ICAKPiAg CQlpZiAoY2Ryb21fc3RhcnRfcncoZHJpdmUsIHJxKSA9PSBpZGVfc3RvcHBlZCkKPiAgCQkJcmV0 dXJuIGlkZV9zdG9wcGVkOwo+IEBAIC0xMTk0LDcgKzExNzAsNiBAQCBzdGF0aWMgaWRlX3N0YXJ0 c3RvcF90IGlkZV9jZF9kb19yZXF1ZXN0KGlkZV9kcml2ZV90ICpkcml2ZSwgc3RydWN0IHJlcXVl c3QgKnJxLAo+ICAJCQlyZXR1cm4gaWRlX3N0b3BwZWQ7Cj4gIAl9IGVsc2UgaWYgKGJsa19zZW5z ZV9yZXF1ZXN0KHJxKSB8fCBibGtfcGNfcmVxdWVzdChycSkgfHwKPiAgCQkgICBycS0+Y21kX3R5 cGUgPT0gUkVRX1RZUEVfQVRBX1BDKSB7Cj4gLQkJZm4gPSBjZHJvbV9kb19uZXdwY19jb250Owo+ ICAKPiAgCQlpZiAoIXJxLT50aW1lb3V0KQo+ICAJCQlycS0+dGltZW91dCA9IEFUQVBJX1dBSVRf UEM7Cj4gQEAgLTEyMTAsNyArMTE4NSw3IEBAIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRlX2Nk X2RvX3JlcXVlc3QoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEsCj4gIAkJ cmV0dXJuIGlkZV9zdG9wcGVkOwo+ICAJfQo+ICAKPiAtCXJldHVybiBjZHJvbV9zdGFydF9wYWNr ZXRfY29tbWFuZChkcml2ZSwgZm4pOwo+ICsJcmV0dXJuIGNkcm9tX3N0YXJ0X3BhY2tldF9jb21t YW5kKGRyaXZlKTsKPiAgfQoKVGhlcmUgaXMgbm8gbmVlZCB0byBtb3ZlIGNkcm9tX3N0YXJ0X3Bh Y2tldF9jb21tYW5kKCkgYXJvdW5kIChlc3BlY2lhbGx5CnNpbmNlIGl0IGdvZXMgYXdheSBpbiBw YXRjaCAjOS84KSBhbmQgbm90IGRvaW5nIHNvIGFsbG93cyB0byBzZWUgY2hhbmdlcwp0byB0aGUg ZnVuY3Rpb24gaW1tZWRpYXRlbHkuICBGaXhlZCBpbiB0aGUgbWVyZ2VkIHBhdGNoIHZlcnNpb246 CgpGcm9tOiBCb3Jpc2xhdiBQZXRrb3YgPHBldGtvdmJiQGdvb2dsZW1haWwuY29tPgpTdWJqZWN0 OiBbUEFUQ0ggNS84XSBpZGUtY2Q6IHJlbW92ZSBoYW5kbGVyIHdyYXBwZXJzCgpSZW1vdmUgY2Ry b21fZG9fbmV3cGNfY29udCBhbmQgY2Ryb21fc3RhcnRfcndfY29udCB3cmFwcGVycyBhbmQgcGFz cwpjZHJvbV90cmFuc2Zlcl9wYWNrZXRfY29tbWFuZCB0byBpZGVfZXhlY3V0ZV9jb21tYW5kIGRp cmVjdGx5LgoKVGhlcmUgc2hvdWxkIGJlIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIHJlc3VsdGlu ZyBmcm9tIHRoaXMgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBCb3Jpc2xhdiBQZXRrb3YgPHBldGtv dmJiQGdtYWlsLmNvbT4KW2JhcnQ6IGRvbid0IG1vdmUgY2Ryb21fc3RhcnRfcGFja2V0X2NvbW1h bmQoKSBhcm91bmQsIHJlbW92ZSBuZXdsaW5lc10KU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBa b2xuaWVya2lld2ljeiA8YnpvbG5pZXJAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvaWRlL2lkZS1j ZC5jIHwgICA0OSArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCgpJ bmRleDogYi9kcml2ZXJzL2lkZS9pZGUtY2QuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBhL2RyaXZlcnMvaWRl L2lkZS1jZC5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1jZC5jCkBAIC01MTEsNiArNTExLDkgQEAg ZW5kX3JlcXVlc3Q6CiAJcmV0dXJuIDE7CiB9CiAKK3N0YXRpYyBpZGVfc3RhcnRzdG9wX3QgY2Ry b21fdHJhbnNmZXJfcGFja2V0X2NvbW1hbmQoaWRlX2RyaXZlX3QgKik7CitzdGF0aWMgaWRlX3N0 YXJ0c3RvcF90IGNkcm9tX25ld3BjX2ludHIoaWRlX2RyaXZlX3QgKik7CisKIC8qCiAgKiBTZXQg dXAgdGhlIGRldmljZSByZWdpc3RlcnMgZm9yIHRyYW5zZmVycmluZyBhIHBhY2tldCBjb21tYW5k IG9uIERFViwKICAqIGV4cGVjdGluZyB0byBsYXRlciB0cmFuc2ZlciBYRkVSTEVOIGJ5dGVzLiAg SEFORExFUiBpcyB0aGUgcm91dGluZQpAQCAtNTE5LDggKzUyMiw3IEBAIGVuZF9yZXF1ZXN0Ogog ICogY2FsbGVkIHdoZW4gdGhlIGludGVycnVwdCBmcm9tIHRoZSBkcml2ZSBhcnJpdmVzLiAgT3Ro ZXJ3aXNlLCBIQU5ETEVSCiAgKiB3aWxsIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUg ZHJpdmUgaXMgcHJlcGFyZWQgZm9yIHRoZSB0cmFuc2Zlci4KICAqLwotc3RhdGljIGlkZV9zdGFy dHN0b3BfdCBjZHJvbV9zdGFydF9wYWNrZXRfY29tbWFuZChpZGVfZHJpdmVfdCAqZHJpdmUsCi0J CQkJCQkgIGlkZV9oYW5kbGVyX3QgKmhhbmRsZXIpCitzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGNk cm9tX3N0YXJ0X3BhY2tldF9jb21tYW5kKGlkZV9kcml2ZV90ICpkcml2ZSkKIHsKIAlpZGVfaHdp Zl90ICpod2lmID0gZHJpdmUtPmh3aWY7CiAJc3RydWN0IHJlcXVlc3QgKnJxID0gaHdpZi0+aHdn cm91cC0+cnE7CkBAIC01NDQsMTMgKzU0NiwxNCBAQCBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGNk cm9tX3N0YXJ0X3BhY2tlCiAJCQlkcml2ZS0+d2FpdGluZ19mb3JfZG1hID0gMDsKIAogCQkvKiBw YWNrZXQgY29tbWFuZCAqLwotCQlpZGVfZXhlY3V0ZV9jb21tYW5kKGRyaXZlLCBBVEFfQ01EX1BB Q0tFVCwgaGFuZGxlciwKKwkJaWRlX2V4ZWN1dGVfY29tbWFuZChkcml2ZSwgQVRBX0NNRF9QQUNL RVQsCisJCQkJICAgIGNkcm9tX3RyYW5zZmVyX3BhY2tldF9jb21tYW5kLAogCQkJCSAgICBBVEFQ SV9XQUlUX1BDLCBpZGVfY2RfZXhwaXJ5KTsKIAkJcmV0dXJuIGlkZV9zdGFydGVkOwogCX0gZWxz ZSB7CiAJCWlkZV9leGVjdXRlX3BrdF9jbWQoZHJpdmUpOwogCi0JCXJldHVybiAoKmhhbmRsZXIp IChkcml2ZSk7CisJCXJldHVybiBjZHJvbV90cmFuc2Zlcl9wYWNrZXRfY29tbWFuZChkcml2ZSk7 CiAJfQogfQogCkBAIC01NjEsMTEgKzU2NCwxMCBAQCBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGNk cm9tX3N0YXJ0X3BhY2tlCiAgKiB0aGVyZSdzIGRhdGEgcmVhZHkuCiAgKi8KICNkZWZpbmUgQVRB UElfTUlOX0NEQl9CWVRFUyAxMgotc3RhdGljIGlkZV9zdGFydHN0b3BfdCBjZHJvbV90cmFuc2Zl cl9wYWNrZXRfY29tbWFuZChpZGVfZHJpdmVfdCAqZHJpdmUsCi0JCQkJCSAgc3RydWN0IHJlcXVl c3QgKnJxLAotCQkJCQkgIGlkZV9oYW5kbGVyX3QgKmhhbmRsZXIpCitzdGF0aWMgaWRlX3N0YXJ0 c3RvcF90IGNkcm9tX3RyYW5zZmVyX3BhY2tldF9jb21tYW5kKGlkZV9kcml2ZV90ICpkcml2ZSkK IHsKIAlpZGVfaHdpZl90ICpod2lmID0gZHJpdmUtPmh3aWY7CisJc3RydWN0IHJlcXVlc3QgKnJx ID0gaHdpZi0+aHdncm91cC0+cnE7CiAJaW50IGNtZF9sZW47CiAJaWRlX3N0YXJ0c3RvcF90IHN0 YXJ0c3RvcDsKIApAQCAtNTkyLDcgKzU5NCw3IEBAIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgY2Ry b21fdHJhbnNmZXJfcGEKIAl9CiAKIAkvKiBhcm0gdGhlIGludGVycnVwdCBoYW5kbGVyICovCi0J aWRlX3NldF9oYW5kbGVyKGRyaXZlLCBoYW5kbGVyLCBycS0+dGltZW91dCwgaWRlX2NkX2V4cGly eSk7CisJaWRlX3NldF9oYW5kbGVyKGRyaXZlLCBjZHJvbV9uZXdwY19pbnRyLCBycS0+dGltZW91 dCwgaWRlX2NkX2V4cGlyeSk7CiAKIAkvKiBBVEFQSSBjb21tYW5kcyBnZXQgcGFkZGVkIG91dCB0 byAxMiBieXRlcyBtaW5pbXVtICovCiAJY21kX2xlbiA9IENPTU1BTkRfU0laRShycS0+Y21kWzBd KTsKQEAgLTY4MCw4ICs2ODIsNiBAQCBzdGF0aWMgaW50IGlkZV9jZF9jaGVja190cmFuc2Zlcl9z aXplKGlkCiAJcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgY2Ryb21fbmV3 cGNfaW50cihpZGVfZHJpdmVfdCAqKTsKLQogc3RhdGljIGlkZV9zdGFydHN0b3BfdCBpZGVfY2Rf cHJlcGFyZV9yd19yZXF1ZXN0KGlkZV9kcml2ZV90ICpkcml2ZSwKIAkJCQkJCSBzdHJ1Y3QgcmVx dWVzdCAqcnEpCiB7CkBAIC03MjQsMjAgKzcyNCw2IEBAIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3Qg aWRlX2NkX3ByZXBhcmVfcncKIH0KIAogLyoKLSAqIFJvdXRpbmUgdG8gc2VuZCBhIHJlYWQvd3Jp dGUgcGFja2V0IGNvbW1hbmQgdG8gdGhlIGRyaXZlLiBUaGlzIGlzIHVzdWFsbHkKLSAqIGNhbGxl ZCBkaXJlY3RseSBmcm9tIGNkcm9tX3N0YXJ0X3tyZWFkLHdyaXRlfSgpLiBIb3dldmVyLCBmb3Ig ZHJxX2ludGVycnVwdAotICogZGV2aWNlcywgaXQgaXMgY2FsbGVkIGZyb20gYW4gaW50ZXJydXB0 IHdoZW4gdGhlIGRyaXZlIGlzIHJlYWR5IHRvIGFjY2VwdAotICogdGhlIGNvbW1hbmQuCi0gKi8K LXN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgY2Ryb21fc3RhcnRfcndfY29udChpZGVfZHJpdmVfdCAq ZHJpdmUpCi17Ci0Jc3RydWN0IHJlcXVlc3QgKnJxID0gZHJpdmUtPmh3aWYtPmh3Z3JvdXAtPnJx OwotCi0JLyogc2VuZCB0aGUgY29tbWFuZCB0byB0aGUgZHJpdmUgYW5kIHJldHVybiAqLwotCXJl dHVybiBjZHJvbV90cmFuc2Zlcl9wYWNrZXRfY29tbWFuZChkcml2ZSwgcnEsIGNkcm9tX25ld3Bj X2ludHIpOwotfQotCi0vKgogICogRml4IHVwIGEgcG9zc2libHkgcGFydGlhbGx5LXByb2Nlc3Nl ZCByZXF1ZXN0IHNvIHRoYXQgd2UgY2FuIHN0YXJ0IGl0IG92ZXIKICAqIGVudGlyZWx5LCBvciBl dmVuIHB1dCBpdCBiYWNrIG9uIHRoZSByZXF1ZXN0IHF1ZXVlLgogICovCkBAIC0xMTI2LDEzICsx MTEyLDYgQEAgc3RhdGljIGlkZV9zdGFydHN0b3BfdCBjZHJvbV9zdGFydF9ydyhpZAogCXJldHVy biBpZGVfc3RhcnRlZDsKIH0KIAotc3RhdGljIGlkZV9zdGFydHN0b3BfdCBjZHJvbV9kb19uZXdw Y19jb250KGlkZV9kcml2ZV90ICpkcml2ZSkKLXsKLQlzdHJ1Y3QgcmVxdWVzdCAqcnEgPSBIV0dS T1VQKGRyaXZlKS0+cnE7Ci0KLQlyZXR1cm4gY2Ryb21fdHJhbnNmZXJfcGFja2V0X2NvbW1hbmQo ZHJpdmUsIHJxLCBjZHJvbV9uZXdwY19pbnRyKTsKLX0KLQogc3RhdGljIHZvaWQgY2Ryb21fZG9f YmxvY2tfcGMoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpCiB7CiAKQEAg LTExNzcsMTYgKzExNTYsMTIgQEAgc3RhdGljIHZvaWQgY2Ryb21fZG9fYmxvY2tfcGMoaWRlX2Ry aXZlXwogc3RhdGljIGlkZV9zdGFydHN0b3BfdCBpZGVfY2RfZG9fcmVxdWVzdChpZGVfZHJpdmVf dCAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSwKIAkJCQkJc2VjdG9yX3QgYmxvY2spCiB7Ci0J aWRlX2hhbmRsZXJfdCAqZm47Ci0KIAlpZGVfZGVidWdfbG9nKElERV9EQkdfUlEsICJDYWxsICVz LCBycS0+Y21kWzBdOiAweCV4LCAiCiAJCSAgICAgICJycS0+Y21kX3R5cGU6IDB4JXgsIGJsb2Nr OiAlbGx1XG4iLAogCQkgICAgICBfX2Z1bmNfXywgcnEtPmNtZFswXSwgcnEtPmNtZF90eXBlLAog CQkgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWJsb2NrKTsKIAogCWlmIChibGtfZnNfcmVxdWVz dChycSkpIHsKLQkJZm4gPSBjZHJvbV9zdGFydF9yd19jb250OwotCiAJCWlmIChjZHJvbV9zdGFy dF9ydyhkcml2ZSwgcnEpID09IGlkZV9zdG9wcGVkKQogCQkJcmV0dXJuIGlkZV9zdG9wcGVkOwog CkBAIC0xMTk0LDggKzExNjksNiBAQCBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGlkZV9jZF9kb19y ZXF1ZXN0CiAJCQlyZXR1cm4gaWRlX3N0b3BwZWQ7CiAJfSBlbHNlIGlmIChibGtfc2Vuc2VfcmVx dWVzdChycSkgfHwgYmxrX3BjX3JlcXVlc3QocnEpIHx8CiAJCSAgIHJxLT5jbWRfdHlwZSA9PSBS RVFfVFlQRV9BVEFfUEMpIHsKLQkJZm4gPSBjZHJvbV9kb19uZXdwY19jb250OwotCiAJCWlmICgh cnEtPnRpbWVvdXQpCiAJCQlycS0+dGltZW91dCA9IEFUQVBJX1dBSVRfUEM7CiAKQEAgLTEyMTAs NyArMTE4Myw3IEBAIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRlX2NkX2RvX3JlcXVlc3QKIAkJ cmV0dXJuIGlkZV9zdG9wcGVkOwogCX0KIAotCXJldHVybiBjZHJvbV9zdGFydF9wYWNrZXRfY29t bWFuZChkcml2ZSwgZm4pOworCXJldHVybiBjZHJvbV9zdGFydF9wYWNrZXRfY29tbWFuZChkcml2 ZSk7CiB9CiAKIC8qCgAK