Return-Path: From: Ilya Faenson To: Arend Van Spriel CC: Marcel Holtmann , "linux-bluetooth@vger.kernel.org" Subject: RE: [PATCH 2/5] Intel based H4 line discipline enhancements Date: Sat, 6 Jun 2015 18:24:11 +0000 Message-ID: References: <1433365304-16707-1-git-send-email-ifaenson@broadcom.com> <1433365304-16707-3-git-send-email-ifaenson@broadcom.com> <85C2DD1E-DD05-4F42-8739-23B208A615A0@holtmann.org> <55731471.6000806@broadcom.com> In-Reply-To: <55731471.6000806@broadcom.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 List-ID: SGkgQXJlbmQsDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBcmVuZCB2YW4g U3ByaWVsIFttYWlsdG86YXJlbmRAYnJvYWRjb20uY29tXSANClNlbnQ6IFNhdHVyZGF5LCBKdW5l IDA2LCAyMDE1IDExOjQxIEFNDQpUbzogSWx5YSBGYWVuc29uDQpDYzogTWFyY2VsIEhvbHRtYW5u OyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQpTdWJqZWN0OiBSZTogW1BBVENIIDIv NV0gSW50ZWwgYmFzZWQgSDQgbGluZSBkaXNjaXBsaW5lIGVuaGFuY2VtZW50cw0KDQpPbiAwNi8w Ni8xNSAxNzozMywgSWx5YSBGYWVuc29uIHdyb3RlOg0KPiBIaSBNYXJjZWwsDQo+DQo+IEFwcHJl Y2lhdGUgeW91IGFwcGx5aW5nIEZyZWQncyBwYXRjaGVzLiBJIHdpbGwgbm93IHB1dCB0b2dldGhl ciBhbmQgcG9zdCBzaW1pbGFyIHBhdGNoZXMgYWdhaW5zdCB0aGUgYmx1ZXRvb3RoLW5leHQgcHJv cGVyLg0KPg0KPiBTb3JyeSBmb3IgbWFueSBtaW5vciBjaGFuZ2VzLiBJIGp1c3QgaGFwcGVuIHRv IHJ1biB0aGUgY2hlY2twYXRjaCBzY3JpcHQgYXV0b21hdGljYWxseSBwcmlvciB0byBwdWJsaXNo aW5nIHRoZSBwYXRjaGVzIChBcmVuZCB0YXVnaHQgbWUgZ29vZCBMaW51eCBwcmFjdGljZXMgOi0p KSBhbmQgdGhhdCByZXN1bHRzIGluIHRob3NlIHNwYWNlcyBnZXR0aW5nIGRlbGV0ZWQgZXQgYWwu DQoNCkFjdHVhbGx5LCBjaGVja3BhdGNoIGJ5IGRlZmF1bHQgb25seSBkb2VzIHRoZSBjaGVjayBh bmQganVzdCB0ZWxsIHlvdSANCndoYXQgaXMgd3JvbmcuIE5vcm1hbGx5LCBpdCB3b3VsZCBvbmx5 IHdhcm4gYWJvdXQgdGhlIHRoaW5nIHlvdXIgcGF0Y2ggDQptb2RpZmllZC4gVW5sZXNzIHlvdSBy YW4gY2hlY2twYXRjaCBvbiBzb3VyY2UgZmlsZS4NCg0KSUY6IFllcywgSSd2ZSBiZWVuIHJ1bm5p bmcgY2hlY2twYXRjaCBvbiBzb3VyY2UgZmlsZXMgdG9vLg0KDQpSZWdhcmRzLA0KQXJlbmQNCg0K PiBUaGFua3MsDQo+ICAgLUlseWENCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogTWFyY2VsIEhvbHRtYW5uIFttYWlsdG86bWFyY2VsQGhvbHRtYW5uLm9yZ10NCj4gU2Vu dDogU2F0dXJkYXksIEp1bmUgMDYsIDIwMTUgMjozNyBBTQ0KPiBUbzogSWx5YSBGYWVuc29uDQo+ IENjOiBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFU Q0ggMi81XSBJbnRlbCBiYXNlZCBINCBsaW5lIGRpc2NpcGxpbmUgZW5oYW5jZW1lbnRzDQo+DQo+ IEhpIElseWEsDQo+DQo+PiBUaGlzIGlzIGxhcmdlbHkgZW5oYW5jZW1lbnRzIGltcGxlbWVudGVk IGJ5IEZyZWRlcmljIERhbmlzIG9mIEludGVsLg0KPj4gSSd2ZSBhbHNvIGFkZGVkIHRoZSBhYmls aXR5IHRvIGZsb3cgY29udHJvbCB0aGUgVUFSVCBhbmQgaW1wcm92ZWQgdGhlDQo+PiBVQVJUIGJh dWQgcmF0ZSBzZXR0aW5nIHNvbWUuDQo+DQo+IEkgYXBwbGllZCBwYXJ0cyBvZiBGcmVk4oCZcyBw YXRjaGVzIGFuZCBzbyBwbGVhc2UgcmViYXNlIG9uIHRvcCBvZiB0aGVtLiBNYWtlcyBpdCBhIGxv dCBlYXNpZXIgZm9yIG1lIHRvIHJldmlldyBjaGFuZ2VzIGluc3RlYWQgb2YgZmlndXJpbmcgb3V0 IHdoYXQgY29tZXMgZnJvbSB5b3UgYW5kIHdoYXQgY29tZXMgZnJvbSBGcmVkLg0KPg0KPj4NCj4+ IFNpZ25lZC1vZmYtYnk6IElseWEgRmFlbnNvbjxpZmFlbnNvbkBicm9hZGNvbS5jb20+DQo+PiAt LS0NCj4+IGRyaXZlcnMvYmx1ZXRvb3RoL2hjaV9sZGlzYy5jIHwgMTEwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPj4gZHJpdmVycy9ibHVldG9vdGgvaGNpX3Vh cnQuaCAgfCAgIDYgKysrDQo+PiAyIGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9oY2lf bGRpc2MuYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV9sZGlzYy5jDQo+PiBpbmRleCA1YzlhNzNm Li41OGRjYjI0IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvaGNpX2xkaXNjLmMN Cj4+ICsrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV9sZGlzYy5jDQo+PiBAQCAtMSw0ICsxLDQg QEANCj4+IC0vKg0KPj4gKy8qXw0KPg0KPiBGdW5reSBjaGFuZ2UgOykNCj4NCj4+ICAgKg0KPj4g ICAqICBCbHVldG9vdGggSENJIFVBUlQgZHJpdmVyDQo+PiAgICoNCj4+IEBAIC0yNTYsNyArMjU2 LDggQEAgc3RhdGljIGludCBoY2lfdWFydF9zZW5kX2ZyYW1lKHN0cnVjdCBoY2lfZGV2ICpoZGV2 LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPj4gCWlmICghdGVzdF9iaXQoSENJX1JVTk5JTkcsJmhk ZXYtPmZsYWdzKSkNCj4+IAkJcmV0dXJuIC1FQlVTWTsNCj4+DQo+PiAtCUJUX0RCRygiJXM6IHR5 cGUgJWQgbGVuICVkIiwgaGRldi0+bmFtZSwgYnRfY2Ioc2tiKS0+cGt0X3R5cGUsIHNrYi0+bGVu KTsNCj4+ICsJQlRfREJHKCIlczogdHlwZSAlZCBsZW4gJWQiLCBoZGV2LT5uYW1lLCBidF9jYihz a2IpLT5wa3RfdHlwZSwNCj4+ICsJICAgICAgIHNrYi0+bGVuKTsNCj4NCj4gSW4gY2FzZSB5b3Ug c3BvdCBjb2Rpbmcgc3R5bGUgZXJyb3JzLCBwbGVhc2UganVzdCBzZW5kIHRoZW0gYXMgdGlueSBj bGVhbnVwIHBhdGNoZXMuIEkgY2FuIGVhc2lseSBhcHBseSB0aGVtIG91dCBvZiBvcmRlciBhbmQg d2UgZ2V0IG9mIHRoaXMuIE1ha2VzIHJldmlldyBhIGxvdCBlYXNpZXIuDQo+DQo+Pg0KPj4gCWh1 LT5wcm90by0+ZW5xdWV1ZShodSwgc2tiKTsNCj4+DQo+PiBAQCAtMjY1LDExICsyNjYsMTE0IEBA IHN0YXRpYyBpbnQgaGNpX3VhcnRfc2VuZF9mcmFtZShzdHJ1Y3QgaGNpX2RldiAqaGRldiwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikNCj4+IAlyZXR1cm4gMDsNCj4+IH0NCj4+DQo+PiArdm9pZCBoY2lf dWFydF9mbG93X2NvbnRyb2xfZGV2aWNlKHN0cnVjdCBoY2lfdWFydCAqaHUpDQo+PiArew0KPj4g KwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gaHUtPnR0eTsNCj4+ICsJc3RydWN0IGt0ZXJtaW9z IGt0ZXJtaW9zOw0KPj4gKwlpbnQgc3RhdHVzOw0KPj4gKwl1bnNpZ25lZCBpbnQgc2V0ID0gMDsN Cj4+ICsJdW5zaWduZWQgaW50IGNsZWFyID0gMDsNCj4+ICsNCj4+ICsJLyogRGlzYWJsZSBoYXJk d2FyZSBmbG93IGNvbnRyb2wgKi8NCj4+ICsJa3Rlcm1pb3MgPSB0dHktPnRlcm1pb3M7DQo+PiAr CWt0ZXJtaW9zLmNfY2ZsYWcmPSB+Q1JUU0NUUzsNCj4+ICsJc3RhdHVzID0gdHR5X3NldF90ZXJt aW9zKHR0eSwma3Rlcm1pb3MpOw0KPj4gKwlpZiAoc3RhdHVzKQ0KPj4gKwkJQlRfREJHKCIlcyBk aXMgZmMgZmFpbHVyZSAlZCIsIF9fZnVuY19fLCBzdGF0dXMpOw0KPj4gKwllbHNlDQo+PiArCQlC VF9EQkcoIiVzIGh3IGZjIGRpc2FibGVkIiwgX19mdW5jX18pOw0KPg0KPiBMZXRzIGRvIGl0IGxp a2UgdGhpczoNCj4NCj4gCUJUX0RCRyjigJxEaXNhYmxpbmcgaGFyZHdhcmUgZmxvdyBjb250cm9s OiAlc+KAnSwgc3RhdHVzID8g4oCcZmFpbGVk4oCdIDog4oCcc3VjY2Vzc+KAnSk7DQo+DQo+PiAr DQo+PiArCS8qIENsZWFyIFJUUyB0byBwcmV2ZW50IHRoZSBkZXZpY2UgZnJvbSBzZW5kaW5nICov DQo+PiArCS8qIChtb3N0IFBDcyBuZWVkIE9VVDIgdG8gZW5hYmxlIGludGVycnVwdHMpICAgICov DQo+DQo+IFBsZWFzZSB1c2UgdGhlIG5ldHdvcmsgc3Vic3lzdGVtIGNvbW1lbnQgc3R5bGUuDQo+ DQo+PiArCXN0YXR1cyA9IHR0eS0+ZHJpdmVyLT5vcHMtPnRpb2NtZ2V0KHR0eSk7DQo+PiArCUJU X0RCRygiJXMgY3VyIHRpb2NtIDB4JXgiLCBfX2Z1bmNfXywgc3RhdHVzKTsNCj4NCj4gCVNwZWxs IGN1cnJlbnQgb3V0IGhlcmUgYW5kIGdldCByaWQgb2YgX19mdW5jX18NCj4NCj4gSSB3b3VsZCBh bHNvIGFkZCBhbiBleHRyYSBlbXB0eSBsaW5lIGhlcmUgdG8gbWFrZSBpdCBhIGJpdCBtb3JlIHJl YWRhYmxlLg0KPg0KPj4gKwlzZXQmPSB+KFRJT0NNX09VVDIgfCBUSU9DTV9SVFMpOw0KPj4gKwlj bGVhciA9IH5zZXQ7DQo+PiArCXNldCY9IFRJT0NNX0RUUiB8IFRJT0NNX1JUUyB8IFRJT0NNX09V VDEgfA0KPj4gKwkJVElPQ01fT1VUMiB8IFRJT0NNX0xPT1A7DQo+PiArCWNsZWFyJj0gVElPQ01f RFRSIHwgVElPQ01fUlRTIHwgVElPQ01fT1VUMSB8DQo+PiArCQlUSU9DTV9PVVQyIHwgVElPQ01f TE9PUDsNCj4NCj4gWW91IG5lZWQgdG8gYWxpZ24gdGhlIHNlY29uZCBsaW5lcyBjb3JyZWN0bHku DQo+DQo+PiArCXN0YXR1cyA9IHR0eS0+ZHJpdmVyLT5vcHMtPnRpb2Ntc2V0KHR0eSwgc2V0LCBj bGVhcik7DQo+PiArCWlmIChzdGF0dXMpDQo+PiArCQlCVF9EQkcoIiVzIGNsciBSVFMgZmFpbCAl ZCIsIF9fZnVuY19fLCBzdGF0dXMpOw0KPj4gKwllbHNlDQo+PiArCQlCVF9EQkcoIiVzIFJUUyBj bGVhcmVkIiwgX19mdW5jX18pOw0KPg0KPiBTaW1pbGFyIGNoYW5nZSBhcyBhYm92ZS4NCj4NCj4+ ICsJc3RhdHVzID0gdHR5LT5kcml2ZXItPm9wcy0+dGlvY21nZXQodHR5KTsNCj4NCj4gV2h5IGlz IHRoaXMgbmVlZGVkPw0KPg0KPj4gK30NCj4+ICsNCj4+ICt2b2lkIGhjaV91YXJ0X3VuZmxvd19j b250cm9sX2RldmljZShzdHJ1Y3QgaGNpX3VhcnQgKmh1KQ0KPj4gK3sNCj4+ICsJc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSA9IGh1LT50dHk7DQo+PiArCXN0cnVjdCBrdGVybWlvcyBrdGVybWlvczsN Cj4+ICsJaW50IHN0YXR1czsNCj4+ICsJdW5zaWduZWQgaW50IHNldCA9IDA7DQo+PiArCXVuc2ln bmVkIGludCBjbGVhciA9IDA7DQo+PiArDQo+PiArCXN0YXR1cyA9IHR0eS0+ZHJpdmVyLT5vcHMt PnRpb2NtZ2V0KHR0eSk7DQo+PiArCUJUX0RCRygiJXMgY3VyIHRpb2NtIDB4JXgiLCBfX2Z1bmNf Xywgc3RhdHVzKTsNCj4+ICsJc2V0IHw9IChUSU9DTV9PVVQyIHwgVElPQ01fUlRTKTsNCj4+ICsJ Y2xlYXIgPSB+c2V0Ow0KPj4gKwlzZXQmPSBUSU9DTV9EVFIgfCBUSU9DTV9SVFMgfCBUSU9DTV9P VVQxIHwNCj4+ICsJCVRJT0NNX09VVDIgfCBUSU9DTV9MT09QOw0KPj4gKwljbGVhciY9IFRJT0NN X0RUUiB8IFRJT0NNX1JUUyB8IFRJT0NNX09VVDEgfA0KPj4gKwkJVElPQ01fT1VUMiB8IFRJT0NN X0xPT1A7DQo+PiArCXN0YXR1cyA9IHR0eS0+ZHJpdmVyLT5vcHMtPnRpb2Ntc2V0KHR0eSwgc2V0 LCBjbGVhcik7DQo+PiArCWlmIChzdGF0dXMpDQo+PiArCQlCVF9EQkcoIiVzIHNldCBSVFMgZmFp bCAlZCIsIF9fZnVuY19fLCBzdGF0dXMpOw0KPj4gKwllbHNlDQo+PiArCQlCVF9EQkcoIiVzIFJU UyBzZXQiLCBfX2Z1bmNfXyk7DQo+PiArDQo+PiArCS8qIFJlLWVuYWJsZSBoYXJkd2FyZSBmbG93 IGNvbnRyb2wgKi8NCj4+ICsJa3Rlcm1pb3MgPSB0dHktPnRlcm1pb3M7DQo+PiArCWt0ZXJtaW9z LmNfY2ZsYWcgfD0gQ1JUU0NUUzsNCj4+ICsJc3RhdHVzID0gdHR5X3NldF90ZXJtaW9zKHR0eSwm a3Rlcm1pb3MpOw0KPj4gKwlpZiAoc3RhdHVzKQ0KPj4gKwkJQlRfREJHKCIlcyBlbmFibGUgZmMg ZmFpbCAlZCIsIF9fZnVuY19fLCBzdGF0dXMpOw0KPj4gKwllbHNlDQo+PiArCQlCVF9EQkcoIiVz IGh3IGZjIHJlLWVuYWJsZWQiLCBfX2Z1bmNfXyk7DQo+PiArfQ0KPg0KPiBQcmV0dHkgbXVjaCBz YW1lIG1vZGlmaWNhdGlvbnMgYXMgZm9yIHRoZSBvdGhlciBmdW5jdGlvbi4NCj4NCj4+ICsNCj4+ ICt2b2lkIGhjaV91YXJ0X3NldF9iYXVkcmF0ZShzdHJ1Y3QgaGNpX3VhcnQgKmh1LCB1bnNpZ25l ZCBpbnQgc3BlZWQpDQo+PiArew0KPj4gKwlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5ID0gaHUtPnR0 eTsNCj4+ICsJc3RydWN0IGt0ZXJtaW9zIGt0ZXJtaW9zOw0KPj4gKw0KPj4gKwkvKiBCcmluZyB0 aGUgVUFSVCBpbnRvIGEga25vd24gc3RhdGUgd2l0aCBhIGdpdmVuIGJhdWQgcmF0ZSAqLw0KPj4g KwlrdGVybWlvcyA9IHR0eS0+dGVybWlvczsNCj4+ICsJa3Rlcm1pb3MuY19jZmxhZyY9IH5DQkFV RDsNCj4+ICsJa3Rlcm1pb3MuY19pZmxhZyY9IH4oSUdOQlJLIHwgQlJLSU5UIHwgUEFSTVJLIHwg SVNUUklQDQo+PiArCQl8IElOTENSIHwgSUdOQ1IgfCBJQ1JOTCB8IElYT04pOw0KPg0KPiBGaXgg dGhlIGFsaWdubWVudCBoZXJlLg0KPg0KPj4gKwlrdGVybWlvcy5jX29mbGFnJj0gfk9QT1NUOw0K Pj4gKwlrdGVybWlvcy5jX2xmbGFnJj0gfihFQ0hPIHwgRUNIT05MIHwgSUNBTk9OIHwgSVNJRyB8 IElFWFRFTik7DQo+PiArCWt0ZXJtaW9zLmNfY2ZsYWcmPSB+KENTSVpFIHwgUEFSRU5CIHwgQ0JB VUQpOw0KPj4gKwlrdGVybWlvcy5jX2NmbGFnIHw9IENTODsNCj4+ICsJa3Rlcm1pb3MuY19jZmxh ZyB8PSBDUlRTQ1RTOw0KPj4gKwkvKiBrdGVybWlvcy5jX2NmbGFnIHw9IEJPVEhFUjsgKi8NCj4N Cj4gRG9u4oCZdCBsaWtlIHVuY29tbWVudGVkIGNvZGUuIEJldHRlciB0byBqdXN0IHJlbW92ZSBp dC4NCj4NCj4+ICsJdHR5X3Rlcm1pb3NfZW5jb2RlX2JhdWRfcmF0ZSgma3Rlcm1pb3MsIHNwZWVk LCBzcGVlZCk7DQo+PiArDQo+PiArCS8qIHR0eV9zZXRfdGVybWlvcygpIHJldHVybiBub3QgY2hl Y2tlZCBhcyBpdCBpcyBhbHdheXMgMCAqLw0KPj4gKwl0dHlfc2V0X3Rlcm1pb3ModHR5LCZrdGVy bWlvcyk7DQo+PiArDQo+PiArCUJUX0RCRygiJXM6IE5ldyB0dHkgc3BlZWRzOiAlZC8lZCwgY2Zs YWc6IDB4JXgiLCBodS0+aGRldi0+bmFtZSwNCj4+ICsJICAgICAgIHR0eS0+dGVybWlvcy5jX2lz cGVlZCwgdHR5LT50ZXJtaW9zLmNfb3NwZWVkLA0KPj4gKwkgICAgICAgdHR5LT50ZXJtaW9zLmNf Y2ZsYWcpOw0KPj4gK30NCj4+ICsNCj4+IHN0YXRpYyBpbnQgaGNpX3VhcnRfc2V0dXAoc3RydWN0 IGhjaV9kZXYgKmhkZXYpDQo+PiB7DQo+PiAJc3RydWN0IGhjaV91YXJ0ICpodSA9IGhjaV9nZXRf ZHJ2ZGF0YShoZGV2KTsNCj4+IAlzdHJ1Y3QgaGNpX3JwX3JlYWRfbG9jYWxfdmVyc2lvbiAqdmVy Ow0KPj4gCXN0cnVjdCBza19idWZmICpza2I7DQo+PiArCWludCBlcnI7DQo+PiArDQo+PiArCWlm IChodS0+cHJvdG8tPmluaXRfc3BlZWQpDQo+PiArCQloY2lfdWFydF9zZXRfYmF1ZHJhdGUoaHUs IGh1LT5wcm90by0+aW5pdF9zcGVlZCk7DQo+PiArDQo+PiArCWlmIChodS0+cHJvdG8tPnNldF9i YXVkcmF0ZSYmICBodS0+cHJvdG8tPm9wZXJfc3BlZWQpIHsNCj4+ICsJCWVyciA9IGh1LT5wcm90 by0+c2V0X2JhdWRyYXRlKGh1LCBodS0+cHJvdG8tPm9wZXJfc3BlZWQpOw0KPj4gKwkJaWYgKCFl cnIpDQo+PiArCQkJaGNpX3VhcnRfc2V0X2JhdWRyYXRlKGh1LCBodS0+cHJvdG8tPm9wZXJfc3Bl ZWQpOw0KPj4gKwl9DQo+Pg0KPj4gCWlmIChodS0+cHJvdG8tPnNldHVwKQ0KPj4gCQlyZXR1cm4g aHUtPnByb3RvLT5zZXR1cChodSk7DQo+PiBAQCAtNjQ3LDcgKzc1MSw3IEBAIHN0YXRpYyBpbnQg X19pbml0IGhjaV91YXJ0X2luaXQodm9pZCkNCj4+DQo+PiAJLyogUmVnaXN0ZXIgdGhlIHR0eSBk aXNjaXBsaW5lICovDQo+Pg0KPj4gLQltZW1zZXQoJmhjaV91YXJ0X2xkaXNjLCAwLCBzaXplb2Yg KGhjaV91YXJ0X2xkaXNjKSk7DQo+PiArCW1lbXNldCgmaGNpX3VhcnRfbGRpc2MsIDAsIHNpemVv ZihoY2lfdWFydF9sZGlzYykpOw0KPg0KPiBJZiB0aGlzIGlzIHdyb25nIGluIGV4aXN0aW5nIGNv ZGUsIHBsZWFzZSBzZW5kIGEgY2xlYW51cCBwYXRjaCBmb3IgaXQuIEVhc3kgdG8gYXBwbHkuDQo+ DQo+PiAJaGNpX3VhcnRfbGRpc2MubWFnaWMJCT0gVFRZX0xESVNDX01BR0lDOw0KPj4gCWhjaV91 YXJ0X2xkaXNjLm5hbWUJCT0gIm5faGNpIjsNCj4+IAloY2lfdWFydF9sZGlzYy5vcGVuCQk9IGhj aV91YXJ0X3R0eV9vcGVuOw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV91 YXJ0LmggYi9kcml2ZXJzL2JsdWV0b290aC9oY2lfdWFydC5oDQo+PiBpbmRleCA3MjEyMGE1Li4y MjcxY2MwIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvaGNpX3VhcnQuaA0KPj4g KysrIGIvZHJpdmVycy9ibHVldG9vdGgvaGNpX3VhcnQuaA0KPj4gQEAgLTU4LDEwICs1OCwxMyBA QCBzdHJ1Y3QgaGNpX3VhcnQ7DQo+PiBzdHJ1Y3QgaGNpX3VhcnRfcHJvdG8gew0KPj4gCXVuc2ln bmVkIGludCBpZDsNCj4+IAljb25zdCBjaGFyICpuYW1lOw0KPj4gKwl1bnNpZ25lZCBpbnQgaW5p dF9zcGVlZDsNCj4+ICsJdW5zaWduZWQgaW50IG9wZXJfc3BlZWQ7DQo+PiAJaW50ICgqb3Blbiko c3RydWN0IGhjaV91YXJ0ICpodSk7DQo+PiAJaW50ICgqY2xvc2UpKHN0cnVjdCBoY2lfdWFydCAq aHUpOw0KPj4gCWludCAoKmZsdXNoKShzdHJ1Y3QgaGNpX3VhcnQgKmh1KTsNCj4+IAlpbnQgKCpz ZXR1cCkoc3RydWN0IGhjaV91YXJ0ICpodSk7DQo+PiArCWludCAoKnNldF9iYXVkcmF0ZSkoc3Ry dWN0IGhjaV91YXJ0ICpodSwgdW5zaWduZWQgaW50IHNwZWVkKTsNCj4+IAlpbnQgKCpyZWN2KShz dHJ1Y3QgaGNpX3VhcnQgKmh1LCBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKTsNCj4+IAlpbnQg KCplbnF1ZXVlKShzdHJ1Y3QgaGNpX3VhcnQgKmh1LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCj4+ IAlzdHJ1Y3Qgc2tfYnVmZiAqKCpkZXF1ZXVlKShzdHJ1Y3QgaGNpX3VhcnQgKmh1KTsNCj4+IEBA IC05Niw2ICs5OSw5IEBAIGludCBoY2lfdWFydF9yZWdpc3Rlcl9wcm90byhjb25zdCBzdHJ1Y3Qg aGNpX3VhcnRfcHJvdG8gKnApOw0KPj4gaW50IGhjaV91YXJ0X3VucmVnaXN0ZXJfcHJvdG8oY29u c3Qgc3RydWN0IGhjaV91YXJ0X3Byb3RvICpwKTsNCj4+IGludCBoY2lfdWFydF90eF93YWtldXAo c3RydWN0IGhjaV91YXJ0ICpodSk7DQo+PiBpbnQgaGNpX3VhcnRfaW5pdF9yZWFkeShzdHJ1Y3Qg aGNpX3VhcnQgKmh1KTsNCj4+ICt2b2lkIGhjaV91YXJ0X3NldF9iYXVkcmF0ZShzdHJ1Y3QgaGNp X3VhcnQgKmh1LCB1bnNpZ25lZCBpbnQgc3BlZWQpOw0KPj4gK3ZvaWQgaGNpX3VhcnRfZmxvd19j b250cm9sX2RldmljZShzdHJ1Y3QgaGNpX3VhcnQgKmh1KTsNCj4+ICt2b2lkIGhjaV91YXJ0X3Vu Zmxvd19jb250cm9sX2RldmljZShzdHJ1Y3QgaGNpX3VhcnQgKmh1KTsNCj4NCj4gSSBhY3R1YWxs eSBkaXNsaWtlIHRoaXMga2luZCBvZiBuYW1pbmcuIFdoYXQgYWJvdXQgc2ltcGxlIHN0dWZmIGxp a2U6DQo+DQo+IAloY2lfdWFydF9lbmFibGVfZGV2aWNlKCkNCj4gCWhjaV91YXJ0X2Rpc2FibGVf ZGV2aWNlKCkNCj4NCj4gT3Igc29tZXRoaW5nIHdpdGggYSBib29sZWFuIGZvciB0aGUgc3RhdGU6 DQo+DQo+IAloY2lfdWFydF9zZXRfZmxvd19jb250cm9sKHN0cnVjdCBoY2lfdWFydCAqaHUsIGJv b2wgZW5hYmxlKQ0KPg0KPiBSZWdhcmRzDQo+DQo+IE1hcmNlbA0KPg0KDQo=