From: Peter Hurley <peter@hurleysoftware.com>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>
Subject: Re: [RFC 1/3] Bluetooth: prioritizing data over HCI
Date: Wed, 3 Aug 2011 12:25:16 -0400 [thread overview]
Message-ID: <1312388716.3358.58.camel@THOR> (raw)
In-Reply-To: <1312377094-11285-2-git-send-email-luiz.dentz@gmail.com>
SGkgTHVpeiwNCg0KT24gV2VkLCAyMDExLTA4LTAzIGF0IDA5OjExIC0wNDAwLCBMdWl6IEF1Z3Vz
dG8gdm9uIERlbnR6IHdyb3RlOg0KPiBGcm9tOiBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6
LnZvbi5kZW50ekBpbnRlbC5jb20+DQo+DQo+IFRoaXMgaW1wbGVtZW50IHByaW9yaXR5IGJhc2Vk
IHNjaGVkdWxlciB1c2luZyBza2J1ZmZlciBwcmlvcml0eSBzZXQgdmlhDQo+IFNPX1BSSU9SSVRZ
IHNvY2tldCBvcHRpb24uDQo+DQo+IEl0IHJldXNlcyB0aGUgcXVvdGUgY2FsY3VsYXRpb24gZnJv
bSBvbGQgc2NoZWR1bGVyLCBidXQgdGhlIGRpZmZlcmVuY2UgaXMNCj4gdGhhdCB0aGUgbnVtYmVy
IG9mIGNvbm5lY3Rpb25zIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBxdW90ZSBpcyBieSBwcmlvcml0
eSwNCj4gc28gdGhlIHF1b3RlIG1heSBub3QgYmUgZGV2aWRlZCBlcXVhbGx5IHBlciBjb25uZWN0
aW9uIGlmIHRoZWlyIHByaW9yaXRpZXMNCj4gYXJlIGRpZmZlcmVudC4NCj4NCj4gVG8gYXZvaWQg
c3RhcnZhdGlvbiB0aGUgcHJpb3JpdHkgaXMgcmVjYWxjdWxhdGVkIGluIGEgcm91bmQgcm9iaW4g
ZmFzaGlvbg0KPiBzbyB0aGF0IHRoZSByZW1haW5pbmcgcXVldWVzIGFyZSB1cGdyYWRlZCBieSAx
IGluIHByaW9yaXR5IHVudGlsDQo+IEhDSV9QUklPX01BWCAtIDEgKDYpLg0KPg0KPiBIQ0lfUFJJ
T19NQVggKDcpIGlzIGNvbnNpZGVyZWQgc3BlY2lhbCwgaXQgcmVxdWlyZXMgQ0FQX05FVF9BRE1J
Tg0KPiBjYXBhYmlsaXR5IGFuZCBpcyB1c2VkIHRvIHNlbmQgdGltZSBjcml0aWNhbCBjb21tYW5k
L3Jlc3Bvc2UgZm9yIEwyQ0FQDQo+IGFuZCBSRkNPTU0gdG8gYXZvaWQgdGltZW91dHMsIGluIGFk
ZGl0aW9uIHRvIHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8NCj4gcHJvdmlkZSBtb3JlIGd1YXJhbnRl
ZWQgY2hhbm5lbHMgYnV0IG1heSBzdGFydmUgb3RoZXIgY29ubmVjdGlvbnMgdGh1cw0KPiBuZWVk
IHRvIGJlIHVzZWQgd2l0aCBjYXJlLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBMdWl6IEF1Z3VzdG8g
dm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgaW5jbHVkZS9u
ZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmggfCAgICA2ICsrLQ0KPiAgbmV0L2JsdWV0b290aC9oY2lf
Y29ubi5jICAgICAgICAgfCAgICA4ICsrLQ0KPiAgbmV0L2JsdWV0b290aC9oY2lfY29yZS5jICAg
ICAgICAgfCAgMTQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCj4gIG5l
dC9ibHVldG9vdGgvcmZjb21tL3NvY2suYyAgICAgIHwgICAgOCArKw0KPiAgNCBmaWxlcyBjaGFu
Z2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pDQo+DQo+IGRpZmYgLS1naXQg
YS9pbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaCBiL2luY2x1ZGUvbmV0L2JsdWV0b290
aC9oY2lfY29yZS5oDQo+IGluZGV4IDhmNDQxYjguLmJlMjI2YjAgMTAwNjQ0DQo+IC0tLSBhL2lu
Y2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oDQo+ICsrKyBiL2luY2x1ZGUvbmV0L2JsdWV0
b290aC9oY2lfY29yZS5oDQo+IEBAIC0zMiw2ICszMiwxMCBAQA0KPiAgI2RlZmluZSBIQ0lfUFJP
VE9fTDJDQVAgICAgICAgIDANCj4gICNkZWZpbmUgSENJX1BST1RPX1NDTyAgMQ0KPg0KPiArLyog
SENJIHByaW9yaXR5IHF1ZXVlcyAqLw0KPiArI2RlZmluZSBIQ0lfUFJJT19RVUVVRVMgICAgICAg
IDgNCj4gKyNkZWZpbmUgSENJX1BSSU9fTUFYICAgSENJX1BSSU9fUVVFVUVTIC0gMQ0KPiArDQo+
ICAvKiBIQ0kgQ29yZSBzdHJ1Y3R1cmVzICovDQo+ICBzdHJ1Y3QgaW5xdWlyeV9kYXRhIHsNCj4g
ICAgICAgICBiZGFkZHJfdCAgICAgICAgYmRhZGRyOw0KPiBAQCAtMjc0LDcgKzI3OCw3IEBAIHN0
cnVjdCBoY2lfY29ubiB7DQo+DQo+ICAgICAgICAgdW5zaWduZWQgaW50ICAgIHNlbnQ7DQo+DQo+
IC0gICAgICAgc3RydWN0IHNrX2J1ZmZfaGVhZCBkYXRhX3E7DQo+ICsgICAgICAgc3RydWN0IHNr
X2J1ZmZfaGVhZCBkYXRhX3FbSENJX1BSSU9fUVVFVUVTXTsNCj4NCj4gICAgICAgICBzdHJ1Y3Qg
dGltZXJfbGlzdCBkaXNjX3RpbWVyOw0KPiAgICAgICAgIHN0cnVjdCB0aW1lcl9saXN0IGlkbGVf
dGltZXI7DQo+IGRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL2hjaV9jb25uLmMgYi9uZXQvYmx1
ZXRvb3RoL2hjaV9jb25uLmMNCj4gaW5kZXggZWE3ZjAzMS4uNGMwOTczOCAxMDA2NDQNCj4gLS0t
IGEvbmV0L2JsdWV0b290aC9oY2lfY29ubi5jDQo+ICsrKyBiL25ldC9ibHVldG9vdGgvaGNpX2Nv
bm4uYw0KPiBAQCAtMzM2LDYgKzMzNiw3IEBAIHN0YXRpYyB2b2lkIGhjaV9jb25uX2F1dG9fYWNj
ZXB0KHVuc2lnbmVkIGxvbmcgYXJnKQ0KPiAgc3RydWN0IGhjaV9jb25uICpoY2lfY29ubl9hZGQo
c3RydWN0IGhjaV9kZXYgKmhkZXYsIGludCB0eXBlLCBiZGFkZHJfdCAqZHN0KQ0KPiAgew0KPiAg
ICAgICAgIHN0cnVjdCBoY2lfY29ubiAqY29ubjsNCj4gKyAgICAgICBpbnQgaTsNCj4NCj4gICAg
ICAgICBCVF9EQkcoIiVzIGRzdCAlcyIsIGhkZXYtPm5hbWUsIGJhdG9zdHIoZHN0KSk7DQo+DQo+
IEBAIC0zNzIsNyArMzczLDggQEAgc3RydWN0IGhjaV9jb25uICpoY2lfY29ubl9hZGQoc3RydWN0
IGhjaV9kZXYgKmhkZXYsIGludCB0eXBlLCBiZGFkZHJfdCAqZHN0KQ0KPiAgICAgICAgICAgICAg
ICAgYnJlYWs7DQo+ICAgICAgICAgfQ0KPg0KPiAtICAgICAgIHNrYl9xdWV1ZV9oZWFkX2luaXQo
JmNvbm4tPmRhdGFfcSk7DQo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IEhDSV9QUklPX1FVRVVF
UzsgaSsrKQ0KPiArICAgICAgICAgICAgICAgc2tiX3F1ZXVlX2hlYWRfaW5pdCgmY29ubi0+ZGF0
YV9xW2ldKTsNCj4NCj4gICAgICAgICBzZXR1cF90aW1lcigmY29ubi0+ZGlzY190aW1lciwgaGNp
X2Nvbm5fdGltZW91dCwgKHVuc2lnbmVkIGxvbmcpY29ubik7DQo+ICAgICAgICAgc2V0dXBfdGlt
ZXIoJmNvbm4tPmlkbGVfdGltZXIsIGhjaV9jb25uX2lkbGUsICh1bnNpZ25lZCBsb25nKWNvbm4p
Ow0KPiBAQCAtNDAxLDYgKzQwMyw3IEBAIHN0cnVjdCBoY2lfY29ubiAqaGNpX2Nvbm5fYWRkKHN0
cnVjdCBoY2lfZGV2ICpoZGV2LCBpbnQgdHlwZSwgYmRhZGRyX3QgKmRzdCkNCj4gIGludCBoY2lf
Y29ubl9kZWwoc3RydWN0IGhjaV9jb25uICpjb25uKQ0KPiAgew0KPiAgICAgICAgIHN0cnVjdCBo
Y2lfZGV2ICpoZGV2ID0gY29ubi0+aGRldjsNCj4gKyAgICAgICBpbnQgaTsNCj4NCj4gICAgICAg
ICBCVF9EQkcoIiVzIGNvbm4gJXAgaGFuZGxlICVkIiwgaGRldi0+bmFtZSwgY29ubiwgY29ubi0+
aGFuZGxlKTsNCj4NCj4gQEAgLTQzOCw3ICs0NDEsOCBAQCBpbnQgaGNpX2Nvbm5fZGVsKHN0cnVj
dCBoY2lfY29ubiAqY29ubikNCj4NCj4gICAgICAgICB0YXNrbGV0X2VuYWJsZSgmaGRldi0+dHhf
dGFzayk7DQo+DQo+IC0gICAgICAgc2tiX3F1ZXVlX3B1cmdlKCZjb25uLT5kYXRhX3EpOw0KPiAr
ICAgICAgIGZvciAoaSA9IDA7IGkgPCBIQ0lfUFJJT19RVUVVRVM7IGkrKykNCj4gKyAgICAgICAg
ICAgICAgIHNrYl9xdWV1ZV9wdXJnZSgmY29ubi0+ZGF0YV9xW2ldKTsNCj4NCj4gICAgICAgICBo
Y2lfY29ubl9wdXRfZGV2aWNlKGNvbm4pOw0KPg0KPiBkaWZmIC0tZ2l0IGEvbmV0L2JsdWV0b290
aC9oY2lfY29yZS5jIGIvbmV0L2JsdWV0b290aC9oY2lfY29yZS5jDQo+IGluZGV4IGVjMGJjM2Yu
LjdjMzQxMTEgMTAwNjQ0DQo+IC0tLSBhL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuYw0KPiArKysg
Yi9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmMNCj4gQEAgLTE5NzUsMTAgKzE5NzUsMjEgQEAgc3Rh
dGljIHZvaWQgaGNpX2FkZF9hY2xfaGRyKHN0cnVjdCBza19idWZmICpza2IsIF9fdTE2IGhhbmRs
ZSwgX191MTYgZmxhZ3MpDQo+ICAgICAgICAgaGRyLT5kbGVuICAgPSBjcHVfdG9fbGUxNihsZW4p
Ow0KPiAgfQ0KPg0KPiArc3RhdGljIHN0cnVjdCBza19idWZmX2hlYWQgKmhjaV9wcmlvX3F1ZXVl
KHN0cnVjdCBoY2lfY29ubiAqY29ubiwgX191MzIgcHJpbykNCj4gK3sNCj4gKyAgICAgICBCVF9E
QkcoImNvbm4gJXAgcHJpb3JpdHkgJXUiLCBjb25uLCBwcmlvKTsNCj4gKw0KPiArICAgICAgIGlm
IChwcmlvID4gSENJX1BSSU9fTUFYKQ0KPiArICAgICAgICAgICAgICAgcHJpbyA9IEhDSV9QUklP
X01BWDsNCj4gKw0KPiArICAgICAgIHJldHVybiAmY29ubi0+ZGF0YV9xW3ByaW9dOw0KPiArfQ0K
PiArDQo+ICB2b2lkIGhjaV9zZW5kX2FjbChzdHJ1Y3QgaGNpX2Nvbm4gKmNvbm4sIHN0cnVjdCBz
a19idWZmICpza2IsIF9fdTE2IGZsYWdzKQ0KPiAgew0KPiAgICAgICAgIHN0cnVjdCBoY2lfZGV2
ICpoZGV2ID0gY29ubi0+aGRldjsNCj4gICAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqbGlzdDsNCj4g
KyAgICAgICBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZTsNCj4NCj4gICAgICAgICBCVF9EQkco
IiVzIGNvbm4gJXAgZmxhZ3MgMHgleCIsIGhkZXYtPm5hbWUsIGNvbm4sIGZsYWdzKTsNCj4NCj4g
QEAgLTE5ODYsMTIgKzE5OTcsMTQgQEAgdm9pZCBoY2lfc2VuZF9hY2woc3RydWN0IGhjaV9jb25u
ICpjb25uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX3UxNiBmbGFncykNCj4gICAgICAgICBidF9j
Yihza2IpLT5wa3RfdHlwZSA9IEhDSV9BQ0xEQVRBX1BLVDsNCj4gICAgICAgICBoY2lfYWRkX2Fj
bF9oZHIoc2tiLCBjb25uLT5oYW5kbGUsIGZsYWdzKTsNCj4NCj4gKyAgICAgICBxdWV1ZSA9IGhj
aV9wcmlvX3F1ZXVlKGNvbm4sIHNrYi0+cHJpb3JpdHkpOw0KPiArDQo+ICAgICAgICAgbGlzdCA9
IHNrYl9zaGluZm8oc2tiKS0+ZnJhZ19saXN0Ow0KPiAgICAgICAgIGlmICghbGlzdCkgew0KPiAg
ICAgICAgICAgICAgICAgLyogTm9uIGZyYWdtZW50ZWQgKi8NCj4gICAgICAgICAgICAgICAgIEJU
X0RCRygiJXMgbm9uZnJhZyBza2IgJXAgbGVuICVkIiwgaGRldi0+bmFtZSwgc2tiLCBza2ItPmxl
bik7DQo+DQo+IC0gICAgICAgICAgICAgICBza2JfcXVldWVfdGFpbCgmY29ubi0+ZGF0YV9xLCBz
a2IpOw0KPiArICAgICAgICAgICAgICAgc2tiX3F1ZXVlX3RhaWwocXVldWUsIHNrYik7DQo+ICAg
ICAgICAgfSBlbHNlIHsNCj4gICAgICAgICAgICAgICAgIC8qIEZyYWdtZW50ZWQgKi8NCj4gICAg
ICAgICAgICAgICAgIEJUX0RCRygiJXMgZnJhZyAlcCBsZW4gJWQiLCBoZGV2LT5uYW1lLCBza2Is
IHNrYi0+bGVuKTsNCj4gQEAgLTE5OTksOSArMjAxMiw5IEBAIHZvaWQgaGNpX3NlbmRfYWNsKHN0
cnVjdCBoY2lfY29ubiAqY29ubiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX191MTYgZmxhZ3MpDQo+
ICAgICAgICAgICAgICAgICBza2Jfc2hpbmZvKHNrYiktPmZyYWdfbGlzdCA9IE5VTEw7DQo+DQo+
ICAgICAgICAgICAgICAgICAvKiBRdWV1ZSBhbGwgZnJhZ21lbnRzIGF0b21pY2FsbHkgKi8NCj4g
LSAgICAgICAgICAgICAgIHNwaW5fbG9ja19iaCgmY29ubi0+ZGF0YV9xLmxvY2spOw0KPiArICAg
ICAgICAgICAgICAgc3Bpbl9sb2NrX2JoKCZxdWV1ZS0+bG9jayk7DQo+DQo+IC0gICAgICAgICAg
ICAgICBfX3NrYl9xdWV1ZV90YWlsKCZjb25uLT5kYXRhX3EsIHNrYik7DQo+ICsgICAgICAgICAg
ICAgICBfX3NrYl9xdWV1ZV90YWlsKHF1ZXVlLCBza2IpOw0KPg0KPiAgICAgICAgICAgICAgICAg
ZmxhZ3MgJj0gfkFDTF9TVEFSVDsNCj4gICAgICAgICAgICAgICAgIGZsYWdzIHw9IEFDTF9DT05U
Ow0KPiBAQCAtMjAxNCwxMCArMjAyNywxMCBAQCB2b2lkIGhjaV9zZW5kX2FjbChzdHJ1Y3QgaGNp
X2Nvbm4gKmNvbm4sIHN0cnVjdCBza19idWZmICpza2IsIF9fdTE2IGZsYWdzKQ0KPg0KPiAgICAg
ICAgICAgICAgICAgICAgICAgICBCVF9EQkcoIiVzIGZyYWcgJXAgbGVuICVkIiwgaGRldi0+bmFt
ZSwgc2tiLCBza2ItPmxlbik7DQo+DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIF9fc2tiX3F1
ZXVlX3RhaWwoJmNvbm4tPmRhdGFfcSwgc2tiKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
X19za2JfcXVldWVfdGFpbChxdWV1ZSwgc2tiKTsNCj4gICAgICAgICAgICAgICAgIH0gd2hpbGUg
KGxpc3QpOw0KPg0KPiAtICAgICAgICAgICAgICAgc3Bpbl91bmxvY2tfYmgoJmNvbm4tPmRhdGFf
cS5sb2NrKTsNCj4gKyAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2JoKCZxdWV1ZS0+bG9jayk7
DQo+ICAgICAgICAgfQ0KPg0KPiAgICAgICAgIHRhc2tsZXRfc2NoZWR1bGUoJmhkZXYtPnR4X3Rh
c2spOw0KPiBAQCAtMjAyOSw2ICsyMDQyLDcgQEAgdm9pZCBoY2lfc2VuZF9zY28oc3RydWN0IGhj
aV9jb25uICpjb25uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiAgew0KPiAgICAgICAgIHN0cnVj
dCBoY2lfZGV2ICpoZGV2ID0gY29ubi0+aGRldjsNCj4gICAgICAgICBzdHJ1Y3QgaGNpX3Njb19o
ZHIgaGRyOw0KPiArICAgICAgIHN0cnVjdCBza19idWZmX2hlYWQgKnF1ZXVlOw0KPg0KPiAgICAg
ICAgIEJUX0RCRygiJXMgbGVuICVkIiwgaGRldi0+bmFtZSwgc2tiLT5sZW4pOw0KPg0KPiBAQCAt
MjA0Miw3ICsyMDU2LDggQEAgdm9pZCBoY2lfc2VuZF9zY28oc3RydWN0IGhjaV9jb25uICpjb25u
LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiAgICAgICAgIHNrYi0+ZGV2ID0gKHZvaWQgKikgaGRl
djsNCj4gICAgICAgICBidF9jYihza2IpLT5wa3RfdHlwZSA9IEhDSV9TQ09EQVRBX1BLVDsNCj4N
Cj4gLSAgICAgICBza2JfcXVldWVfdGFpbCgmY29ubi0+ZGF0YV9xLCBza2IpOw0KPiArICAgICAg
IHF1ZXVlID0gaGNpX3ByaW9fcXVldWUoY29ubiwgc2tiLT5wcmlvcml0eSk7DQo+ICsgICAgICAg
c2tiX3F1ZXVlX3RhaWwocXVldWUsIHNrYik7DQo+ICAgICAgICAgdGFza2xldF9zY2hlZHVsZSgm
aGRldi0+dHhfdGFzayk7DQo+ICB9DQo+ICBFWFBPUlRfU1lNQk9MKGhjaV9zZW5kX3Njbyk7DQo+
IEBAIC0yMDUwLDM1ICsyMDY1LDQxIEBAIEVYUE9SVF9TWU1CT0woaGNpX3NlbmRfc2NvKTsNCj4g
IC8qIC0tLS0gSENJIFRYIHRhc2sgKG91dGdvaW5nIGRhdGEpIC0tLS0gKi8NCj4NCj4gIC8qIEhD
SSBDb25uZWN0aW9uIHNjaGVkdWxlciAqLw0KPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgaGNpX2Nv
bm4gKmhjaV9sb3dfc2VudChzdHJ1Y3QgaGNpX2RldiAqaGRldiwgX191OCB0eXBlLCBpbnQgKnF1
b3RlKQ0KPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgaGNpX2Nvbm4gKmhjaV9wcmlvX3NlbnQoc3Ry
dWN0IGhjaV9kZXYgKmhkZXYsIF9fdTggdHlwZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCBza19idWZmX2hlYWQgKipxdWV1ZSwgaW50ICpxdW90ZSkN
Cj4gIHsNCj4gICAgICAgICBzdHJ1Y3QgaGNpX2Nvbm5faGFzaCAqaCA9ICZoZGV2LT5jb25uX2hh
c2g7DQo+ICAgICAgICAgc3RydWN0IGhjaV9jb25uICpjb25uID0gTlVMTDsNCj4gLSAgICAgICBp
bnQgbnVtID0gMCwgbWluID0gfjA7DQo+IC0gICAgICAgc3RydWN0IGxpc3RfaGVhZCAqcDsNCj4g
KyAgICAgICBpbnQgaTsNCj4NCj4gICAgICAgICAvKiBXZSBkb24ndCBoYXZlIHRvIGxvY2sgZGV2
aWNlIGhlcmUuIENvbm5lY3Rpb25zIGFyZSBhbHdheXMNCj4gICAgICAgICAgKiBhZGRlZCBhbmQg
cmVtb3ZlZCB3aXRoIFRYIHRhc2sgZGlzYWJsZWQuICovDQo+IC0gICAgICAgbGlzdF9mb3JfZWFj
aChwLCAmaC0+bGlzdCkgew0KPiAtICAgICAgICAgICAgICAgc3RydWN0IGhjaV9jb25uICpjOw0K
PiAtICAgICAgICAgICAgICAgYyA9IGxpc3RfZW50cnkocCwgc3RydWN0IGhjaV9jb25uLCBsaXN0
KTsNCj4gKyAgICAgICBmb3IgKGkgPSBIQ0lfUFJJT19NQVg7IGkgPj0gMDsgaS0tKSB7DQo+ICsg
ICAgICAgICAgICAgICBpbnQgbnVtID0gMCwgbWluID0gfjA7DQo+ICsgICAgICAgICAgICAgICBz
dHJ1Y3QgbGlzdF9oZWFkICpwOw0KPiArICAgICAgICAgICAgICAgaW50IGNudCwgcTsNCj4NCj4g
LSAgICAgICAgICAgICAgIGlmIChjLT50eXBlICE9IHR5cGUgfHwgc2tiX3F1ZXVlX2VtcHR5KCZj
LT5kYXRhX3EpKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gKyAgICAg
ICAgICAgICAgIGxpc3RfZm9yX2VhY2gocCwgJmgtPmxpc3QpIHsNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IGhjaV9jb25uICpjOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBj
ID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgaGNpX2Nvbm4sIGxpc3QpOw0KPg0KPiAtICAgICAgICAg
ICAgICAgaWYgKGMtPnN0YXRlICE9IEJUX0NPTk5FQ1RFRCAmJiBjLT5zdGF0ZSAhPSBCVF9DT05G
SUcpDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoYy0+dHlwZSAhPSB0eXBlIHx8IHNrYl9xdWV1ZV9lbXB0eSgmYy0+ZGF0
YV9xW2ldKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCg0K
SSBiZWxpZXZlIHRoYXQgdGhlIGV4aXN0aW5nIHR4IHNjaGVkdWxlciBpcyBhbHJlYWR5IGluZWZm
aWNpZW50IGFuZCB0aGF0DQp0aGlzIGFwcHJvYWNoIHNpZ25pZmljYW50bHkgY29tcG91bmRzIHRo
YXQgaW5lZmZpY2llbmN5Lg0KDQpDb25zaWRlciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvcyB3aXRo
IDQgQUNMIGNvbm5lY3Rpb25zIChrZXlib2FyZCwNCm1vdXNlLCBwaG9uZSwgaGVhZHNldCk6DQoN
CkZvciAqb25lKiBzY2hlZHVsZWQgQUNMIHR4IHBhY2tldCwgdGhlIGNvbm5lY3Rpb24gbGlzdCB3
aWxsIGJlIHNlYXJjaGVkDQozNX40MiB0aW1lcyAtLSB0aGF0J3MgMTQwfjE2OCBjb25uZWN0aW9u
IGxpc3Qgbm9kZSB2aXNpdHMgdG8gZmluZCBvbmUNCnBhY2tldCEgSGVyZSdzIHRoZSBtYXRoOg0K
ICAgICAgICAoNyAtIHByaW9yaXR5IG9mIHR4IHBhY2tldCkgeCA0IGNvbm5lY3Rpb25zID0+IGZv
dW5kIHRoZSBwYWNrZXQNCiAgICAgICAgNyBwcmkgbGV2ZWxzIHggNCBjb25uZWN0aW9ucyA9PiBu
byBtb3JlIEFDTCB0eCBwYWNrZXRzDQogICAgICAgIDcgcHJpIGxldmVscyB4IDQgY29ubmVjdGlv
bnMgPT4gbm8gU0NPIHR4IHBhY2tldHMNCiAgICAgICAgNyBwcmkgbGV2ZWxzIHggNCBjb25uZWN0
aW9ucyA9PiBubyBFU0NPIHR4IHBhY2tldHMNCiAgICAgICAgNyBwcmkgbGV2ZWxzIHggNCBjb25u
ZWN0aW9ucyA9PiBubyBMRSB0eCBwYWNrZXRzDQogICAgICAgIDcgcHJpIGxldmVscyB4IDQgY29u
bmVjdGlvbnMgPT4gcmVjYWxjIHByaW9yaXR5DQoNCklmIHRoZSBjb25uZWN0aW9uIHR5cGUgZG9l
c24ndCBtYXRjaCwgaXQncyBub3QgZ29pbmcgdG8gbWF0Y2ggYXQgYW55DQpwcmlvcml0eSBsZXZl
bC4NCg0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLT5zdGF0ZSAhPSBCVF9D
T05ORUNURUQgJiYgYy0+c3RhdGUgIT0gQlRfQ09ORklHKQ0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPg0KPiAtICAgICAgICAgICAgICAgbnVtKys7DQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgIG51bSsrOw0KPg0KPiAtICAgICAgICAgICAgICAgaWYgKGMt
PnNlbnQgPCBtaW4pIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgbWluICA9IGMtPnNlbnQ7
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbm4gPSBjOw0KPiArICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoYy0+c2VudCA8IG1pbikgew0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1pbiAgPSBjLT5zZW50Ow0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbm4gPSBjOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpxdWV1ZSA9ICZj
LT5kYXRhX3FbaV07DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KV2h5IHByZXNlcnZl
IHRoZSBmYWlybmVzcyBsb2dpYz8NCg0KPiAgICAgICAgICAgICAgICAgfQ0KPiAtICAgICAgIH0N
Cj4NCj4gLSAgICAgICBpZiAoY29ubikgew0KPiAtICAgICAgICAgICAgICAgaW50IGNudCwgcTsN
Cj4gKyAgICAgICAgICAgICAgIGlmICghY29ubikNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7DQo+DQo+ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbm4tPnR5cGUpIHsNCj4g
ICAgICAgICAgICAgICAgIGNhc2UgQUNMX0xJTks6DQo+IEBAIC0yMDk4LDEwICsyMTE5LDEzIEBA
IHN0YXRpYyBpbmxpbmUgc3RydWN0IGhjaV9jb25uICpoY2lfbG93X3NlbnQoc3RydWN0IGhjaV9k
ZXYgKmhkZXYsIF9fdTggdHlwZSwgaW50DQo+DQo+ICAgICAgICAgICAgICAgICBxID0gY250IC8g
bnVtOw0KPiAgICAgICAgICAgICAgICAgKnF1b3RlID0gcSA/IHEgOiAxOw0KPiAtICAgICAgIH0g
ZWxzZQ0KPiAtICAgICAgICAgICAgICAgKnF1b3RlID0gMDsNCj4gKyAgICAgICAgICAgICAgIEJU
X0RCRygiY29ubiAlcCBpbmRleCAlZCBxdW90ZSAlZCIsIGNvbm4sIGksICpxdW90ZSk7DQo+ICsg
ICAgICAgICAgICAgICByZXR1cm4gY29ubjsNCj4gKyAgICAgICB9DQo+DQo+IC0gICAgICAgQlRf
REJHKCJjb25uICVwIHF1b3RlICVkIiwgY29ubiwgKnF1b3RlKTsNCj4gKyAgICAgICAqcXVvdGUg
PSAwOw0KPiArICAgICAgICpxdWV1ZSA9IE5VTEw7DQo+ICsgICAgICAgQlRfREJHKCJjb25uICVw
IHF1ZXVlICVwIHF1b3RlICVkIiwgY29ubiwgcXVldWUsICpxdW90ZSk7DQo+ICAgICAgICAgcmV0
dXJuIGNvbm47DQo+ICB9DQo+DQo+IEBAIC0yMTI4LDYgKzIxNTIsNyBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgaGNpX3NjaGVkX2FjbChzdHJ1Y3QgaGNpX2RldiAqaGRldikNCj4gIHsNCj4gICAgICAg
ICBzdHJ1Y3QgaGNpX2Nvbm4gKmNvbm47DQo+ICAgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYjsN
Cj4gKyAgICAgICBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZSA9IE5VTEw7DQo+ICAgICAgICAg
aW50IHF1b3RlOw0KPg0KPiAgICAgICAgIEJUX0RCRygiJXMiLCBoZGV2LT5uYW1lKTsNCj4gQEAg
LTIxMzksOSArMjE2NCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaGNpX3NjaGVkX2FjbChzdHJ1
Y3QgaGNpX2RldiAqaGRldikNCj4gICAgICAgICAgICAgICAgICAgICAgICAgaGNpX2xpbmtfdHhf
dG8oaGRldiwgQUNMX0xJTkspOw0KPiAgICAgICAgIH0NCj4NCj4gLSAgICAgICB3aGlsZSAoaGRl
di0+YWNsX2NudCAmJiAoY29ubiA9IGhjaV9sb3dfc2VudChoZGV2LCBBQ0xfTElOSywgJnF1b3Rl
KSkpIHsNCj4gLSAgICAgICAgICAgICAgIHdoaWxlIChxdW90ZS0tICYmIChza2IgPSBza2JfZGVx
dWV1ZSgmY29ubi0+ZGF0YV9xKSkpIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgQlRfREJH
KCJza2IgJXAgbGVuICVkIiwgc2tiLCBza2ItPmxlbik7DQo+ICsgICAgICAgd2hpbGUgKGhkZXYt
PmFjbF9jbnQgJiYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgKGNvbm4gPSBoY2lfcHJpb19z
ZW50KGhkZXYsIEFDTF9MSU5LLCAmcXVldWUsICZxdW90ZSkpKSB7DQo+ICsgICAgICAgICAgICAg
ICB3aGlsZSAocXVvdGUtLSAmJiAoc2tiID0gc2tiX2RlcXVldWUocXVldWUpKSkgew0KPiArICAg
ICAgICAgICAgICAgICAgICAgICBCVF9EQkcoInNrYiAlcCBsZW4gJWQgcHJpb3JpdHkgJXUiLCBz
a2IsIHNrYi0+bGVuLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNrYi0+cHJpb3JpdHkpOw0KPg0KPiAgICAgICAgICAgICAgICAgICAg
ICAgICBoY2lfY29ubl9lbnRlcl9hY3RpdmVfbW9kZShjb25uLCBidF9jYihza2IpLT5mb3JjZV9h
Y3RpdmUpOw0KPg0KPiBAQCAtMjE1OSwxMyArMjE4NiwxNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
aGNpX3NjaGVkX3NjbyhzdHJ1Y3QgaGNpX2RldiAqaGRldikNCj4gIHsNCj4gICAgICAgICBzdHJ1
Y3QgaGNpX2Nvbm4gKmNvbm47DQo+ICAgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYjsNCj4gKyAg
ICAgICBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZSA9IE5VTEw7DQo+ICAgICAgICAgaW50IHF1
b3RlOw0KPg0KPiAgICAgICAgIEJUX0RCRygiJXMiLCBoZGV2LT5uYW1lKTsNCj4NCj4gLSAgICAg
ICB3aGlsZSAoaGRldi0+c2NvX2NudCAmJiAoY29ubiA9IGhjaV9sb3dfc2VudChoZGV2LCBTQ09f
TElOSywgJnF1b3RlKSkpIHsNCj4gLSAgICAgICAgICAgICAgIHdoaWxlIChxdW90ZS0tICYmIChz
a2IgPSBza2JfZGVxdWV1ZSgmY29ubi0+ZGF0YV9xKSkpIHsNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgQlRfREJHKCJza2IgJXAgbGVuICVkIiwgc2tiLCBza2ItPmxlbik7DQo+ICsgICAgICAg
d2hpbGUgKGhkZXYtPnNjb19jbnQgJiYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgKGNvbm4g
PSBoY2lfcHJpb19zZW50KGhkZXYsIFNDT19MSU5LLCAmcXVldWUsICZxdW90ZSkpKSB7DQo+ICsg
ICAgICAgICAgICAgICB3aGlsZSAocXVvdGUtLSAmJiAoc2tiID0gc2tiX2RlcXVldWUocXVldWUp
KSkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBCVF9EQkcoImNvbm4gJXAgc2tiICVwIGxl
biAlZCBwcmlvcml0eSAldSIsIGNvbm4sIHNrYiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2tiLT5sZW4sIHNrYi0+cHJpb3JpdHkpOw0KPiAgICAg
ICAgICAgICAgICAgICAgICAgICBoY2lfc2VuZF9mcmFtZShza2IpOw0KPg0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25uLT5zZW50Kys7DQo+IEBAIC0yMTc5LDEzICsyMjA5LDE2IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBoY2lfc2NoZWRfZXNjbyhzdHJ1Y3QgaGNpX2RldiAqaGRldikNCj4g
IHsNCj4gICAgICAgICBzdHJ1Y3QgaGNpX2Nvbm4gKmNvbm47DQo+ICAgICAgICAgc3RydWN0IHNr
X2J1ZmYgKnNrYjsNCj4gKyAgICAgICBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZSA9IE5VTEw7
DQo+ICAgICAgICAgaW50IHF1b3RlOw0KPg0KPiAgICAgICAgIEJUX0RCRygiJXMiLCBoZGV2LT5u
YW1lKTsNCj4NCj4gLSAgICAgICB3aGlsZSAoaGRldi0+c2NvX2NudCAmJiAoY29ubiA9IGhjaV9s
b3dfc2VudChoZGV2LCBFU0NPX0xJTkssICZxdW90ZSkpKSB7DQo+IC0gICAgICAgICAgICAgICB3
aGlsZSAocXVvdGUtLSAmJiAoc2tiID0gc2tiX2RlcXVldWUoJmNvbm4tPmRhdGFfcSkpKSB7DQo+
IC0gICAgICAgICAgICAgICAgICAgICAgIEJUX0RCRygic2tiICVwIGxlbiAlZCIsIHNrYiwgc2ti
LT5sZW4pOw0KPiArICAgICAgIHdoaWxlIChoZGV2LT5zY29fY250ICYmDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgIChjb25uID0gaGNpX3ByaW9fc2VudChoZGV2LCBFU0NPX0xJTkssICZxdWV1
ZSwgJnF1b3RlKSkpIHsNCj4gKyAgICAgICAgICAgICAgIHdoaWxlIChxdW90ZS0tICYmIChza2Ig
PSBza2JfZGVxdWV1ZShxdWV1ZSkpKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIEJUX0RC
RygiY29ubiAlcCBza2IgJXAgbGVuICVkIHByaW9yaXR5ICV1IiwgY29ubiwgc2tiLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2ItPmxlbiwgc2ti
LT5wcmlvcml0eSk7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGhjaV9zZW5kX2ZyYW1lKHNr
Yik7DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm4tPnNlbnQrKzsNCj4gQEAgLTIx
OTksNiArMjIzMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBoY2lfc2NoZWRfbGUoc3RydWN0IGhj
aV9kZXYgKmhkZXYpDQo+ICB7DQo+ICAgICAgICAgc3RydWN0IGhjaV9jb25uICpjb25uOw0KPiAg
ICAgICAgIHN0cnVjdCBza19idWZmICpza2I7DQo+ICsgICAgICAgc3RydWN0IHNrX2J1ZmZfaGVh
ZCAqcXVldWUgPSBOVUxMOw0KPiAgICAgICAgIGludCBxdW90ZSwgY250Ow0KPg0KPiAgICAgICAg
IEJUX0RCRygiJXMiLCBoZGV2LT5uYW1lKTsNCj4gQEAgLTIyMTIsOSArMjI0NiwxMCBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgaGNpX3NjaGVkX2xlKHN0cnVjdCBoY2lfZGV2ICpoZGV2KQ0KPiAgICAg
ICAgIH0NCj4NCj4gICAgICAgICBjbnQgPSBoZGV2LT5sZV9wa3RzID8gaGRldi0+bGVfY250IDog
aGRldi0+YWNsX2NudDsNCj4gLSAgICAgICB3aGlsZSAoY250ICYmIChjb25uID0gaGNpX2xvd19z
ZW50KGhkZXYsIExFX0xJTkssICZxdW90ZSkpKSB7DQo+IC0gICAgICAgICAgICAgICB3aGlsZSAo
cXVvdGUtLSAmJiAoc2tiID0gc2tiX2RlcXVldWUoJmNvbm4tPmRhdGFfcSkpKSB7DQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgIEJUX0RCRygic2tiICVwIGxlbiAlZCIsIHNrYiwgc2tiLT5sZW4p
Ow0KPiArICAgICAgIHdoaWxlIChjbnQgJiYgKGNvbm4gPSBoY2lfcHJpb19zZW50KGhkZXYsIExF
X0xJTkssICZxdWV1ZSwgJnF1b3RlKSkpIHsNCj4gKyAgICAgICAgICAgICAgIHdoaWxlIChxdW90
ZS0tICYmIChza2IgPSBza2JfZGVxdWV1ZShxdWV1ZSkpKSB7DQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgIEJUX0RCRygiY29ubiAlcCBza2IgJXAgbGVuICVkIHByaW9yaXR5ICV1IiwgY29ubiwg
c2tiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
a2ItPmxlbiwgc2tiLT5wcmlvcml0eSk7DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGhj
aV9zZW5kX2ZyYW1lKHNrYik7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGhkZXYtPmxlX2xh
c3RfdHggPSBqaWZmaWVzOw0KPiBAQCAtMjIyOSw2ICsyMjY0LDM0IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBoY2lfc2NoZWRfbGUoc3RydWN0IGhjaV9kZXYgKmhkZXYpDQo+ICAgICAgICAgICAgICAg
ICBoZGV2LT5hY2xfY250ID0gY250Ow0KPiAgfQ0KPg0KPiArc3RhdGljIHZvaWQgaGNpX3ByaW9f
cmVjYWxjdWxhdGUoc3RydWN0IGhjaV9kZXYgKmhkZXYpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0
IGhjaV9jb25uX2hhc2ggKmggPSAmaGRldi0+Y29ubl9oYXNoOw0KPiArICAgICAgIGludCBpOw0K
PiArDQo+ICsgICAgICAgQlRfREJHKCIlcyIsIGhkZXYtPm5hbWUpOw0KPiArDQo+ICsgICAgICAg
Zm9yIChpID0gSENJX1BSSU9fTUFYIC0gMTsgaSA+IDA7IGktLSkgew0KPiArICAgICAgICAgICAg
ICAgc3RydWN0IGxpc3RfaGVhZCAqcDsNCj4gKw0KPiArICAgICAgICAgICAgICAgbGlzdF9mb3Jf
ZWFjaChwLCAmaC0+bGlzdCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaGNp
X2Nvbm4gKmM7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGMgPSBsaXN0X2VudHJ5KHAsIHN0
cnVjdCBoY2lfY29ubiwgbGlzdCk7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGMtPnNlbnQgfHwgc2tiX3F1ZXVlX2VtcHR5KCZjLT5kYXRhX3FbaSAtIDFdKSkNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCg0KVGhlIHRlc3QgZm9yIHVuYWNr
ZWQgcGFja2V0cyBkb2VzIG5vdCBhbGxvdyB0aGUgcHJpb3JpdHkgdG8gYWR2YW5jZSBpZg0KdGhl
IHVuYWNrZWQgcGFja2V0cyBhcmUgZnJvbSBhIHByZXZpb3VzbHkgZXhlY3V0ZWQgaGNpX3R4X3Rh
c2sgKGllLiwgYQ0KY29ubmVjdGlvbiB0cmFuc21pdHRlZCBwYWNrZXRzIG9uIGFuIGVhcmxpZXIg
c2NoZWR1bGVkIHR4X3Rhc2sgYnV0IHRob3NlDQpwYWNrZXRzIGhhdmVuJ3QgYmVlbiBhY2tlZCB5
ZXQpLg0KDQpUaGlzIHdvdWxkIGFsbG93IGEgaGlnaGVyIHByaW9yaXR5IGNvbm5lY3Rpb24gdG8g
YWxtb3N0IG1vbm9wb2xpemUNCnRyYW5zbWlzc2lvbiB3aGVuIHRoZSBjb250cm9sbGVyIGlzIG5l
YXIgbWF4IGxvYWQuIEEgaGlnaGVyIHByaW9yaXR5DQpsaW5rIHdpbGwgcmVjZWl2ZSBhIHR4IHF1
b3RhIG9mIGFsbCBhdmFpbGFibGUgdHggYnVmZmVycywgd2hlcmVhcyBhDQpsb3dlciBwcmlvcml0
eSBsaW5rIHdpbGwgbm90IGFkdmFuY2UgdW50aWwgaXQncyBwcmV2aW91cyB0eCBwYWNrZXRzIGFy
ZQ0KYWNrZWQuIFdvcnN0LWNhc2Ugc2NoZWR1bGluZyBjb3VsZCB0YWtlIGEgbG9uZyB0aW1lIHRv
IHNjaGVkdWxlIGEgbG93ZXINCnByaW9yaXR5IHBhY2tldC4NCg0KPiArDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjLT5zdGF0ZSAhPSBCVF9DT05ORUNURUQgJiYgYy0+c3RhdGUgIT0g
QlRfQ09ORklHKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0K
PiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIEJUX0RCRygiY29ubiAlcCBpbmRleCAlZCBw
cm9tb3RlZCB0byAlZCIsIGMsIGkgLSAxLCBpKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgICAg
ICAgICBza2JfcXVldWVfc3BsaWNlX3RhaWxfaW5pdCgmYy0+ZGF0YV9xW2kgLSAxXSwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYy0+
ZGF0YV9xW2ldKTsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gKyAgICAgICB9DQo+ICt9DQo+ICsN
Cj4gIHN0YXRpYyB2b2lkIGhjaV90eF90YXNrKHVuc2lnbmVkIGxvbmcgYXJnKQ0KPiAgew0KPiAg
ICAgICAgIHN0cnVjdCBoY2lfZGV2ICpoZGV2ID0gKHN0cnVjdCBoY2lfZGV2ICopIGFyZzsNCj4g
QEAgLTIyNTMsNiArMjMxNiw4IEBAIHN0YXRpYyB2b2lkIGhjaV90eF90YXNrKHVuc2lnbmVkIGxv
bmcgYXJnKQ0KPiAgICAgICAgIHdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoJmhkZXYtPnJhd19x
KSkpDQo+ICAgICAgICAgICAgICAgICBoY2lfc2VuZF9mcmFtZShza2IpOw0KPg0KPiArICAgICAg
IGhjaV9wcmlvX3JlY2FsY3VsYXRlKGhkZXYpOw0KDQpUaGUgcHJpb3JpdHkgcmVjYWxjdWxhdGlv
biBzaG91bGQgb25seSBiZSBwZXJmb3JtZWQgaWYgb25lIG9mIHRoZQ0KaGNpX3NjaGVkXyogZnVu
Y3Rpb25zIHdhcyB1bmFibGUgdG8gc2NoZWR1bGUgYWxsIG91dHN0YW5kaW5nIHBhY2tldHMNCihp
ZS4sIGEgdHggYnVmZmVyIGNvdW50IGRyb3BwZWQgdG8gemVybykuDQoNCkhvdyBkb2VzIHRoaXMg
c2NoZWR1bGVyICsgcHJpb3JpdHkgcmVjYWxjIGJlaGF2ZSBpZiAqbm8qIHBhY2tldHMgY291bGQN
CmJlIHNjaGVkdWxlZCBhdCBhbGw/IEZvciBleGFtcGxlLCBpZiBhY2xfY250ID09IDAgd2hlbiB0
aGUgdHhfdGFzayBpcw0Kc2NoZWR1bGVkPw0KDQo+ICsNCj4gICAgICAgICByZWFkX3VubG9jaygm
aGNpX3Rhc2tfbG9jayk7DQo+ICB9DQo+DQo+IGRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL3Jm
Y29tbS9zb2NrLmMgYi9uZXQvYmx1ZXRvb3RoL3JmY29tbS9zb2NrLmMNCj4gaW5kZXggOGYwMWU2
Yi4uMDIyOGUxZiAxMDA2NDQNCj4gLS0tIGEvbmV0L2JsdWV0b290aC9yZmNvbW0vc29jay5jDQo+
ICsrKyBiL25ldC9ibHVldG9vdGgvcmZjb21tL3NvY2suYw0KPiBAQCAtNTYxLDYgKzU2MSw3IEBA
IHN0YXRpYyBpbnQgcmZjb21tX3NvY2tfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj
dCBzb2NrZXQgKnNvY2ssDQo+ICAgICAgICAgc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7DQo+
ICAgICAgICAgc3RydWN0IHJmY29tbV9kbGMgKmQgPSByZmNvbW1fcGkoc2spLT5kbGM7DQo+ICAg
ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYjsNCj4gKyAgICAgICB1MzIgcHJpb3JpdHk7DQo+ICAg
ICAgICAgaW50IHNlbnQgPSAwOw0KPg0KPiAgICAgICAgIGlmICh0ZXN0X2JpdChSRkNPTU1fREVG
RVJfU0VUVVAsICZkLT5mbGFncykpDQo+IEBAIC01NzIsNiArNTczLDExIEBAIHN0YXRpYyBpbnQg
cmZjb21tX3NvY2tfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNv
Y2ssDQo+ICAgICAgICAgaWYgKHNrLT5za19zaHV0ZG93biAmIFNFTkRfU0hVVERPV04pDQo+ICAg
ICAgICAgICAgICAgICByZXR1cm4gLUVQSVBFOw0KPg0KPiArICAgICAgIGlmIChtc2ctPm1zZ19m
bGFncyAmIE1TR19UUllIQVJEKQ0KPiArICAgICAgICAgICAgICAgcHJpb3JpdHkgPSBIQ0lfUFJJ
T19NQVg7DQo+ICsgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAgICAgcHJpb3JpdHkgPSBzay0+
c2tfcHJpb3JpdHk7DQo+ICsNCj4gICAgICAgICBCVF9EQkcoInNvY2sgJXAsIHNrICVwIiwgc29j
aywgc2spOw0KPg0KPiAgICAgICAgIGxvY2tfc29jayhzayk7DQo+IEBAIC01OTcsNiArNjAzLDgg
QEAgc3RhdGljIGludCByZmNvbW1fc29ja19zZW5kbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry
dWN0IHNvY2tldCAqc29jaywNCj4gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAg
ICAgICAgICAgICAgICB9DQo+DQo+ICsgICAgICAgICAgICAgICBza2ItPnByaW9yaXR5ID0gcHJp
b3JpdHk7DQo+ICsNCj4gICAgICAgICAgICAgICAgIGVyciA9IHJmY29tbV9kbGNfc2VuZChkLCBz
a2IpOw0KPiAgICAgICAgICAgICAgICAgaWYgKGVyciA8IDApIHsNCj4gICAgICAgICAgICAgICAg
ICAgICAgICAga2ZyZWVfc2tiKHNrYik7DQo+IC0tDQo+IDEuNy42DQo+DQo+IC0tDQo+IFRvIHVu
c3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51
eC1ibHVldG9vdGgiIGluDQo+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdl
ci5rZXJuZWwub3JnDQo+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5l
bC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KDQo=
next prev parent reply other threads:[~2011-08-03 16:25 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-03 13:11 [PATCH 0/3] RFC: prioritizing data over HCI Luiz Augusto von Dentz
2011-08-03 13:11 ` [RFC 1/3] Bluetooth: " Luiz Augusto von Dentz
2011-08-03 16:25 ` Peter Hurley [this message]
2011-08-03 17:49 ` Luiz Augusto von Dentz
2011-08-03 20:44 ` Gustavo Padovan
2011-08-03 20:53 ` Peter Hurley
2011-08-04 9:04 ` Luiz Augusto von Dentz
2011-08-03 13:11 ` [RFC 2/3] Bluetooth: set skbuffer priority based on L2CAP socket priority Luiz Augusto von Dentz
2011-08-03 13:11 ` [RFC 3/3] Bluetooth: make use sk_priority to priritize RFCOMM packets Luiz Augusto von Dentz
2011-08-03 21:14 ` [PATCH 0/3] RFC: prioritizing data over HCI Peter Hurley
2011-08-04 8:20 ` Luiz Augusto von Dentz
2011-08-04 12:55 ` Peter Hurley
2011-08-04 17:37 ` Mat Martineau
2011-08-04 23:09 ` Peter Hurley
2011-08-05 19:12 ` Gustavo Padovan
2011-08-08 23:29 ` Mat Martineau
2011-08-09 4:32 ` Gustavo Padovan
2011-08-10 17:38 ` Mat Martineau
2011-08-10 18:16 ` Luiz Augusto von Dentz
2011-08-10 22:15 ` Mat Martineau
2011-08-10 19:43 ` Peter Hurley
2011-08-11 0:18 ` Marcel Holtmann
2011-08-05 6:09 ` Luiz Augusto von Dentz
2011-08-05 19:14 ` Gustavo Padovan
2011-08-05 22:49 ` Luiz Augusto von Dentz
2011-08-06 18:53 ` Gustavo Padovan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1312388716.3358.58.camel@THOR \
--to=peter@hurleysoftware.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).