From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/panel: Flesh out kerneldoc Date: Wed, 5 Nov 2014 13:55:08 +0100 Message-ID: <20141105125508.GL26941@phenom.ffwll.local> References: <1415118373-18541-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTP id 5FF446E8F0 for ; Wed, 5 Nov 2014 04:54:54 -0800 (PST) Received: by mail-wg0-f42.google.com with SMTP id k14so840653wgh.1 for ; Wed, 05 Nov 2014 04:54:54 -0800 (PST) Content-Disposition: inline In-Reply-To: <1415118373-18541-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Daniel Vetter , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMDQsIDIwMTQgYXQgMDU6MjY6MTNQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBX cml0ZSBtb3JlIGNvbXBsZXRlIGtlcm5lbGRvYyBjb21tZW50cyBmb3IgdGhlIERSTSBwYW5lbCBB UEkgYW5kCj4gaW50ZWdyYXRlIHRoZSBoZWxwZXJzIGluIHRoZSBEUk0gRG9jQm9vayByZWZlcmVu Y2UuCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNv bT4KCkEgZmV3IGNvbW1lbnRzIGJlbG93LiBXaXRoIHRob3MgYWRkcmVzc2VkIHRoaXMgaXMKClJl dmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKQW5kIGZl ZWwgZnJlZSB0aGUgaWdub3JlIHRoZSBiaWtlc2hlZCBvbmUgb2YgY291cnNlIDstKQoKQ2hlZXJz LCBEYW5pZWwKCj4gLS0tCj4gIERvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCB8ICA2ICsr KysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYyAgICB8IDYxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fcGFuZWwuaCAg ICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDMg ZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi9Eb2NCb29rL2RybS50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBs Cj4gaW5kZXggZDg5Y2E1ODMwNjk3Li44NzM3ZjAzZDlhNzUgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1l bnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2Ry bS50bXBsCj4gQEAgLTIzNzksNiArMjM3OSwxMiBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gICAgICAgIDx0aXRsZSBpZD0iZHJtLWttcy1wbGFuZWhlbHBl cnMiPlBsYW5lIEhlbHBlciBSZWZlcmVuY2U8L3RpdGxlPgo+ICAhRWRyaXZlcnMvZ3B1L2RybS9k cm1fcGxhbmVfaGVscGVyLmMgUGxhbmUgSGVscGVycwo+ICAgICAgPC9zZWN0Mj4KPiArICAgIDxz ZWN0Mj4KPiArICAgICAgPHRpdGxlPlBhbmVsIEhlbHBlciBSZWZlcmVuY2U8L3RpdGxlPgo+ICsh SWluY2x1ZGUvZHJtL2RybV9wYW5lbC5oCj4gKyFFZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5j Cj4gKyFQZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbC5jIGRybSBwYW5lbAo+ICsgICAgPC9zZWN0 Mj4KPiAgICA8L3NlY3QxPgo+ICAKPiAgICA8IS0tIEludGVybmFsczoga21zIHByb3BlcnRpZXMg LS0+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGFuZWwuYwo+IGluZGV4IDJlZjk4OGUwMzdiNy4uM2RmZTNjODg2NTAyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGFuZWwuYwo+IEBAIC0zMCwxMiArMzAsMzYgQEAKPiAgc3RhdGljIERFRklO RV9NVVRFWChwYW5lbF9sb2NrKTsKPiAgc3RhdGljIExJU1RfSEVBRChwYW5lbF9saXN0KTsKPiAg Cj4gKy8qKgo+ICsgKiBET0M6IGRybSBwYW5lbAo+ICsgKgo+ICsgKiBUaGUgRFJNIHBhbmVsIGhl bHBlcnMgYWxsb3cgZHJpdmVycyB0byByZWdpc3RlciBwYW5lbCBvYmplY3RzIHdpdGggYQo+ICsg KiBjZW50cmFsIHJlZ2lzdHJ5IGFuZCBwcm92aWRlIGZ1bmN0aW9ucyB0byByZXRyaWV2ZSB0aG9z ZSBwYW5lbHMgaW4gZGlzcGxheQo+ICsgKiBkcml2ZXJzLgoKSSB0aGluayBhIGZldyBtb3JlIHdv cmRzIGhlcmUgd291bGQgYmUgdXNlZnVsLgoKIlRoZSBnb2FsIGlzIHRvIGJlIGFibGUgdG8gYWJz dHJhY3QgYXdheSBwYW5lbCBzcGVjaWZpYyBxdWlya3MgYW5kIHRoZW4Kc2hhcmUgcGFuZWwgZHJp dmVycyBiZXR3ZWVuIGRpZmZlcmVudCBkaXNwbGF5IGRyaXZlcnMuIiIKCj4gKyAqLwo+ICsKPiAr LyoqCj4gKyAqIGRybV9wYW5lbF9pbml0IC0gaW5pdGlhbGl6ZSBhIHBhbmVsCj4gKyAqIEBwYW5l bDogRFJNIHBhbmVsCj4gKyAqCj4gKyAqIFNldHMgdXAgaW50ZXJuYWwgZmllbGRzIG9mIHRoZSBw YW5lbCBzbyB0aGF0IGl0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYWRkZWQKPiArICogdG8gdGhlIHJl Z2lzdHJ5Lgo+ICsgKi8KPiAgdm9pZCBkcm1fcGFuZWxfaW5pdChzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKPiAgewo+ICAJSU5JVF9MSVNUX0hFQUQoJnBhbmVsLT5saXN0KTsKPiAgfQo+ICBFWFBP UlRfU1lNQk9MKGRybV9wYW5lbF9pbml0KTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfYWRk IC0gYWRkIGEgcGFuZWwgdG8gdGhlIGdsb2JhbCByZWdpc3RyeQo+ICsgKiBAcGFuZWw6IHBhbmVs IHRvIGFkZAo+ICsgKgo+ICsgKiBBZGQgYSBwYW5lbCB0byB0aGUgZ2xvYmFsIHJlZ2lzdHJ5IHNv IHRoYXQgaXQgY2FuIGJlIGxvb2tlZCB1cCBieSBkaXNwbGF5Cj4gKyAqIGRyaXZlcnMuCj4gKyAq Cj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBm YWlsdXJlLgoKQmlrZXNoZWQ6IEkgdGhpbmsgdGhlIHVzdWFsIGxheW91dCBmb3IgcmV0dXJuIHZh bHVlIHNlY3Rpb25zIGluIGRybSBpcwoKICogUmV0dXJuczoKICogYmxhYmxhCgppLmUuIHdpdGgg cyBhdCB0aGUgZW5kIGFuZCBuZXdsaW5lIGJlZm9yZSB0aGUgYmxhYmxhLgoKPiArICovCj4gIGlu dCBkcm1fcGFuZWxfYWRkKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICB7Cj4gIAltdXRleF9s b2NrKCZwYW5lbF9sb2NrKTsKPiBAQCAtNDYsNiArNzAsMTIgQEAgaW50IGRybV9wYW5lbF9hZGQo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxf YWRkKTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfcmVtb3ZlIC0gcmVtb3ZlIGEgcGFuZWwg ZnJvbSB0aGUgZ2xvYmFsIHJlZ2lzdHJ5Cj4gKyAqIEBwYW5lbDogRFJNIHBhbmVsCj4gKyAqCj4g KyAqIFJlbW92ZXMgYSBwYW5lbCBmcm9tIHRoZSBnbG9iYWwgcmVnaXN0cnkuCj4gKyAqLwo+ICB2 b2lkIGRybV9wYW5lbF9yZW1vdmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gIHsKPiAgCW11 dGV4X2xvY2soJnBhbmVsX2xvY2spOwo+IEBAIC01NCw2ICs4NCwxOCBAQCB2b2lkIGRybV9wYW5l bF9yZW1vdmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChk cm1fcGFuZWxfcmVtb3ZlKTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfYXR0YWNoIC0gYXR0 YWNoIGEgcGFuZWwgdG8gYSBjb25uZWN0b3IKPiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICog QGNvbm5lY3RvcjogRFJNIGNvbm5lY3Rvcgo+ICsgKgo+ICsgKiBBZnRlciBvYnRhaW5pbmcgYSBw b2ludGVyIHRvIGEgRFJNIHBhbmVsIGEgZGlzcGxheSBkcml2ZXIgY2FsbHMgdGhpcwo+ICsgKiBm dW5jdGlvbiB0byBhdHRhY2ggYSBwYW5lbCB0byBhIGNvbm5lY3Rvci4KPiArICoKPiArICogQW4g ZXJyb3IgaXMgcmV0dXJuZWQgaWYgdGhlIHBhbmVsIGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gYW5v dGhlciBjb25uZWN0b3IuCj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVn YXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAgaW50IGRybV9wYW5lbF9hdHRh Y2goc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gIHsKPiAgCWlmIChwYW5lbC0+Y29ubmVjdG9yKQo+IEBAIC02Niw2ICsxMDgsMTUgQEAg aW50IGRybV9wYW5lbF9hdHRhY2goc3RydWN0IGRybV9wYW5lbCAqcGFuZWwsIHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fcGFuZWxfYXR0 YWNoKTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfZGV0YWNoIC0gZGV0YWNoIGEgcGFuZWwg ZnJvbSBhIGNvbm5lY3Rvcgo+ICsgKiBAcGFuZWw6IERSTSBwYW5lbAo+ICsgKgo+ICsgKiBEZXRh Y2hlcyBhIHBhbmVsIGZyb20gdGhlIGNvbm5lY3RvciBpdCBpcyBhdHRhY2hlZCB0by4gSWYgYSBw YW5lbCBpcyBub3QKPiArICogYXR0YWNoZWQgdG8gYW55IGNvbm5lY3RvciB0aGlzIGlzIGVmZmVj dGl2ZWx5IGEgbm8tb3AuCj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVn YXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgoKVGhpcyBuZXZlciBmYWlscy4gSSB0aGluayBp dCdzIGJldHRlciB0byBzd2l0Y2ggdGhlIHJldHVybiB2YWx1ZSB0byB2b2lkCmluc3RlYWQgb2Yg ZG9jdW1lbnRpbmcgc29tZXRoaW5nIHRoYXQgbmV2ZXIgYWN0dWFsbHkgaGFwcGVucy4gVGhpcyBr aW5kIG9mCmludGVyZmFjZSBwb2xpc2ggaXMgb25lIG9mIHRoZSBtYWluIHJlYXNvbnMgSSB0aGlu ayBkb2luZyBrZXJuZWxkb2MgaXMKdXNlZnVsCgo+ICsgKi8KPiAgaW50IGRybV9wYW5lbF9kZXRh Y2goc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gIHsKPiAgCXBhbmVsLT5jb25uZWN0b3IgPSBO VUxMOwo+IEBAIC03Niw2ICsxMjcsMTYgQEAgaW50IGRybV9wYW5lbF9kZXRhY2goc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwpCj4gIEVYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2RldGFjaCk7Cj4gIAo+ ICAjaWZkZWYgQ09ORklHX09GCj4gKy8qKgo+ICsgKiBvZl9kcm1fZmluZF9wYW5lbCAtIGxvb2sg dXAgYSBwYW5lbCB1c2luZyBhIGRldmljZSB0cmVlIG5vZGUKPiArICogQG5wOiBkZXZpY2UgdHJl ZSBub2RlIG9mIHRoZSBwYW5lbAo+ICsgKgo+ICsgKiBTZWFyY2hlcyB0aGUgc2V0IG9mIHJlZ2lz dGVyZWQgcGFuZWxzIGZvciBvbmUgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBkZXZpY2UKPiArICog dHJlZSBub2RlLiBJZiBhIG1hdGNoaW5nIHBhbmVsIGlzIGZvdW5kLCByZXR1cm4gYSBwb2ludGVy IHRvIGl0Lgo+ICsgKgo+ICsgKiBSZXR1cm46IEEgcG9pbnRlciB0byB0aGUgcGFuZWwgcmVnaXN0 ZXJlZCBmb3IgdGhlIHNwZWNpZmllZCBkZXZpY2UgdHJlZQo+ICsgKiBub2RlIG9yIE5VTEwgaWYg bm8gcGFuZWwgbWF0Y2hpbmcgdGhlIGRldmljZSB0cmVlIG5vZGUgY2FuIGJlIGZvdW5kLgo+ICsg Ki8KPiAgc3RydWN0IGRybV9wYW5lbCAqb2ZfZHJtX2ZpbmRfcGFuZWwoc3RydWN0IGRldmljZV9u b2RlICpucCkKPiAgewo+ICAJc3RydWN0IGRybV9wYW5lbCAqcGFuZWw7Cj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oIGIvaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKPiBpbmRl eCAxZmJjYzk2MDYzYTcuLmI4OGI0ZGNkNjk4YiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fcGFuZWwuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCj4gQEAgLTcwLDYgKzcw LDE0IEBAIHN0cnVjdCBkcm1fcGFuZWxfZnVuY3Mgewo+ICAJaW50ICgqZ2V0X21vZGVzKShzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCk7Cj4gIH07Cj4gIAo+ICsvKioKPiArICogc3RydWN0IGRybV9w YW5lbCAtIERSTSBwYW5lbCBvYmplY3QKPiArICogQGRybTogRFJNIGRldmljZSBvd25pbmcgdGhl IHBhbmVsCj4gKyAqIEBjb25uZWN0b3I6IERSTSBjb25uZWN0b3IgdGhhdCB0aGUgcGFuZWwgaXMg YXR0YWNoZWQgdG8KPiArICogQGRldjogcGFyZW50IGRldmljZSBvZiB0aGUgcGFuZWwKPiArICog QGZ1bmNzOiBvcGVyYXRpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgcGFuZWwKPiAr ICogQGxpc3Q6IHBhbmVsIGVudHJ5IGluIHJlZ2lzdHJ5Cj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX3Bh bmVsIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOwo+IEBAIC04MCw2ICs4OCwxNyBAQCBzdHJ1Y3QgZHJtX3BhbmVsIHsKPiAg CXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKPiAgfTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fZGlzYWJs ZV91bnByZXBhcmUgLSBwb3dlciBvZmYgYSBwYW5lbAo+ICsgKiBAcGFuZWw6IERSTSBwYW5lbAoK SSB0aGluayBhbGwgdGhlc2Ugc3RhdGljIGlubGluZSB3cmFwcGVycyBzaG91bGQgc3RhcnQgd2l0 aCBzb21ldGhpbmcgYWxvbmcKdGhlIGxpbmVzIG9mCgoiVGhpcyBmdW5jdGlvbiBjYWxscyB0aGUg LT5mb28oKSBwYW5lbCBjYWxsYmFjayBpZiBwcm92aWRlZC4iCj4gKyAqCj4gKyAqIENhbGxpbmcg dGhpcyBmdW5jdGlvbiB3aWxsIGNvbXBsZXRlbHkgcG93ZXIgb2ZmIGEgcGFuZWwgKGFzc2VydCB0 aGUgcGFuZWwncwo+ICsgKiByZXNldCwgdHVybiBvZmYgcG93ZXIgc3VwcGxpZXMsIC4uLikuIEFm dGVyIHRoaXMgZnVuY3Rpb24gaGFzIGNvbXBsZXRlZCwgaXQKPiArICogaXMgdXN1YWxseSBubyBs b25nZXIgcG9zc2libGUgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgcGFuZWwgdW50aWwgYW5vdGhl cgo+ICsgKiBjYWxsIHRvIGRybV9wYW5lbF9wcmVwYXJlKCkuCj4gKyAqCj4gKyAqIFJldHVybjog MCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8K CkJ1dCB0aGlua2luZyBhYm91dCB0aGUgc2VtYW50aWNzIG9mIHRoZXNlIGZ1bmN0aW9ucyBJIGhh dmUgYSBmZXcKcXVlc3Rpb25zOgotIHBhbmVsIHNlZW1zIHRvIGJlIG9wdGlvbmFsLCB3aGljaCBk b2Vzbid0IG1ha2UgYSBsb3Qgb2Ygc2Vuc2UgaW1vLgogIFNob3VsZCB3ZSBXQVJOX09OIGlmIGl0 J3Mgbm90IHRoZXJlLgotIHRoZSB2ZnVuY3MgYXJlIGFsbCBvcHRpb25hbCwgd2hpY2ggaW1vIG1h a2VzIHNlbnNlIChJIGRvbid0IGV4cGVjdCBhbGwKICBwYW5lbHMgdG8gZS5nLiBoYXZlIGEgcHJl cGFyZSkuIEJ1dCBpZiB0aGUgdmZ1bmMgaXNudCcgdGhlcmUgdGhlCiAgZnVuY3Rpb24gc3RpbGwg ZmFpbHMuIFVzdWFsbHkgbm8gdmZ1bmMgbWVhbnMgc2lsZW50IHN1Y2Nlc3MuIEJ1dCBpZiBpdCdz CiAgYW4gaW1wbGVtZW50YXRpb24gZXJyb3Igb24gdGhlIHBhbmVsIGRyaXZlcidzIHNpZGUgdGhl biBJIHRoaW5rIHRoZXJlCiAgc2hvdWxkIGJlIGEgV0FSTl9PTiBib3RoIGhlcmUgYW5kIGluIHRo ZSBwYW5lbCByZWdpc3RyYXRpb24gZnVuY3Rpb24uCgo+ICBzdGF0aWMgaW5saW5lIGludCBkcm1f cGFuZWxfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICB7Cj4gIAlpZiAocGFu ZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+dW5wcmVwYXJlKQo+IEBAIC04OCw2 ICsxMDcsMTYgQEAgc3RhdGljIGlubGluZSBpbnQgZHJtX3BhbmVsX3VucHJlcGFyZShzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKPiAgCXJldHVybiBwYW5lbCA/IC1FTk9TWVMgOiAtRUlOVkFMOwo+ ICB9Cj4gIAo+ICsvKioKPiArICogZHJtX3BhbmVsX2Rpc2FibGUgLSBkaXNhYmxlIGEgcGFuZWwK PiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICoKPiArICogVGhpcyB3aWxsIHR5cGljYWxseSB0 dXJuIG9mZiB0aGUgcGFuZWwncyBiYWNrbGlnaHQgb3IgZGlzYWJsZSB0aGUgZGlzcGxheQo+ICsg KiBkcml2ZXJzLiBGb3Igc21hcnQgcGFuZWxzIGl0IHNob3VsZCBzdGlsbCBiZSBwb3NzaWJsZSB0 byBjb21tdW5pY2F0ZSB3aXRoCj4gKyAqIHRoZSBpbnRlZ3JhdGVkIGNpcmN1aXRyeSB2aWEgYW55 IGNvbW1hbmQgYnVzIGFmdGVyIHRoaXMgY2FsbC4KPiArICoKPiArICogUmV0dXJuOiAwIG9uIHN1 Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICBzdGF0 aWMgaW5saW5lIGludCBkcm1fcGFuZWxfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkK PiAgewo+ICAJaWYgKHBhbmVsICYmIHBhbmVsLT5mdW5jcyAmJiBwYW5lbC0+ZnVuY3MtPmRpc2Fi bGUpCj4gQEAgLTk2LDYgKzEyNSwxNiBAQCBzdGF0aWMgaW5saW5lIGludCBkcm1fcGFuZWxfZGlz YWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiAgCXJldHVybiBwYW5lbCA/IC1FTk9TWVMg OiAtRUlOVkFMOwo+ICB9Cj4gIAo+ICsvKioKPiArICogZHJtX3BhbmVsX3ByZXBhcmUgLSBwb3dl ciBvbiBhIHBhbmVsCj4gKyAqIEBwYW5lbDogRFJNIHBhbmVsCj4gKyAqCj4gKyAqIENhbGxpbmcg dGhpcyBmdW5jdGlvbiB3aWxsIGVuYWJsZSBwb3dlciBhbmQgZGVhc3NlcnQgYW55IHJlc2V0IHNp Z25hbHMgdG8KPiArICogdGhlIHBhbmVsLiBBZnRlciB0aGlzIGhhcyBjb21wbGV0ZWQgaXQgaXMg cG9zc2libGUgdG8gY29tbXVuaWNhdGUgd2l0aCBhbnkKPiArICogaW50ZWdyYXRlZCBjaXJjdWl0 cnkgdmlhIGEgY29tbWFuZCBidXMuCj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9y IGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAgc3RhdGljIGlubGlu ZSBpbnQgZHJtX3BhbmVsX3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gIHsKPiAg CWlmIChwYW5lbCAmJiBwYW5lbC0+ZnVuY3MgJiYgcGFuZWwtPmZ1bmNzLT5wcmVwYXJlKQo+IEBA IC0xMDQsNiArMTQzLDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRybV9wYW5lbF9wcmVwYXJlKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICAJcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5W QUw7Cj4gIH0KPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfZW5hYmxlIC0gZW5hYmxlIGEgcGFu ZWwKPiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICoKPiArICogQ2FsbGluZyB0aGlzIGZ1bmN0 aW9uIHdpbGwgY2F1c2UgdGhlIHBhbmVsIGRpc3BsYXkgZHJpdmVycyB0byBiZSB0dXJuZWQgb24K PiArICogYW5kIHRoZSBiYWNrbGlnaHQgdG8gYmUgZW5hYmxlZC4gQ29udGVudCB3aWxsIGJlIHZp c2libGUgb24gc2NyZWVuIGFmdGVyCj4gKyAqIHRoaXMgY2FsbCBjb21wbGV0ZXMuCj4gKyAqCj4g KyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWls dXJlLgo+ICsgKi8KPiAgc3RhdGljIGlubGluZSBpbnQgZHJtX3BhbmVsX2VuYWJsZShzdHJ1Y3Qg ZHJtX3BhbmVsICpwYW5lbCkKPiAgewo+ICAJaWYgKHBhbmVsICYmIHBhbmVsLT5mdW5jcyAmJiBw YW5lbC0+ZnVuY3MtPmVuYWJsZSkKPiBAQCAtMTEyLDYgKzE2MSwxNiBAQCBzdGF0aWMgaW5saW5l IGludCBkcm1fcGFuZWxfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICAJcmV0dXJu IHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Cj4gIH0KPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFu ZWxfZ2V0X21vZGVzIC0gcHJvYmUgdGhlIGF2YWlsYWJsZSBkaXNwbGF5IG1vZGVzIG9mIGEgcGFu ZWwKPiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICoKPiArICogVGhlIG1vZGVzIHByb2JlZCBm cm9tIHRoZSBwYW5lbCBhcmUgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgY29ubmVjdG9yCj4g KyAqIHRoYXQgdGhlIHBhbmVsIGlzIGF0dGFjaGVkIHRvLgo+ICsgKgo+ICsgKiBSZXR1cm46IFRo ZSBudW1iZXIgb2YgbW9kZXMgYXZhaWxhYmxlIGZyb20gdGhlIHBhbmVsIG9uIHN1Y2Nlc3Mgb3Ig YQo+ICsgKiBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICBzdGF0aWMg aW5saW5lIGludCBkcm1fcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ ICB7Cj4gIAlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+Z2V0X21v ZGVzKQo+IC0tIAo+IDIuMS4zCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=