Thread (7 messages) 7 messages, 4 authors, 2018-06-26

Re: [RESEND PATCH] lightnvm: pblk: add asynchronous partial read

From: Javier Gonzalez <hidden>
Date: 2018-06-26 20:02:41

DQo+IE9uIDI2IEp1biAyMDE4LCBhdCAyMC40NywgSGVpbmVyIExpdHogPGhsaXR6QHVjc2MuZWR1
PiB3cm90ZToNCj4gDQo+PiBPbiBGcmksIEp1biAyMiwgMjAxOCBhdCAxMToxNyBBTSBNYXRpYXMg
QmrDuHJsaW5nIDxtYkBsaWdodG52bS5pbz4gd3JvdGU6DQo+PiANCj4+PiBPbiAwNi8xOC8yMDE4
IDA3OjU2IFBNLCBIZWluZXIgTGl0eiB3cm90ZToNCj4+PiBJbiB0aGUgcmVhZCBwYXRoLCBwYXJ0
aWFsIHJlYWRzIGFyZSBjdXJyZW50bHkgcGVyZm9ybWVkIHN5bmNocm9ub3VzbHkNCj4+PiB3aGlj
aCBhZmZlY3RzIHBlcmZvcm1hbmNlIGZvciB3b3JrbG9hZHMgdGhhdCBnZW5lcmF0ZSBtYW55IHBh
cnRpYWwNCj4+PiByZWFkcy4gVGhpcyBwYXRjaCBhZGRzIGFuIGFzeW5jaHJvbm91cyBwYXJ0aWFs
IHJlYWQgcGF0aCBhcyB3ZWxsIGFzDQo+Pj4gdGhlIHJlcXVpcmVkIHBhcnRpYWwgcmVhZCBjdHgu
DQo+Pj4gDQo+Pj4gU2lnbmVkLW9mZi1ieTogSGVpbmVyIExpdHogPGhsaXR6QHVjc2MuZWR1Pg0K
Pj4+IC0tLQ0KPj4+ICBkcml2ZXJzL2xpZ2h0bnZtL3BibGstcmVhZC5jIHwgMTgzICsrKysrKysr
KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4+PiAgZHJpdmVycy9saWdodG52
bS9wYmxrLmggICAgICB8ICAxMCArKysNCj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0
aW9ucygrKSwgNjMgZGVsZXRpb25zKC0pDQo+Pj4gDQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv
bGlnaHRudm0vcGJsay1yZWFkLmMgYi9kcml2ZXJzL2xpZ2h0bnZtL3BibGstcmVhZC5jDQo+Pj4g
aW5kZXggNmU5M2M0OC4uODI4ZGY5OCAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2xpZ2h0bnZt
L3BibGstcmVhZC5jDQo+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxrLXJlYWQuYw0KPj4+
IEBAIC0yMzEsNzQgKzIzMSwzNiBAQCBzdGF0aWMgdm9pZCBwYmxrX2VuZF9pb19yZWFkKHN0cnVj
dCBudm1fcnEgKnJxZCkNCj4+PiAgICAgIF9fcGJsa19lbmRfaW9fcmVhZChwYmxrLCBycWQsIHRy
dWUpOw0KPj4+ICB9DQo+Pj4gDQo+Pj4gLXN0YXRpYyBpbnQgcGJsa19wYXJ0aWFsX3JlYWQoc3Ry
dWN0IHBibGsgKnBibGssIHN0cnVjdCBudm1fcnEgKnJxZCwNCj4+PiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgYmlvICpvcmlnX2JpbywgdW5zaWduZWQgaW50IGJpb19pbml0X2lk
eCwNCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpyZWFkX2Jp
dG1hcCkNCj4+PiArc3RhdGljIHZvaWQgcGJsa19lbmRfcGFydGlhbF9yZWFkKHN0cnVjdCBudm1f
cnEgKnJxZCkNCj4+PiAgew0KPj4+IC0gICAgIHN0cnVjdCBwYmxrX3NlY19tZXRhICptZXRhX2xp
c3QgPSBycWQtPm1ldGFfbGlzdDsNCj4+PiAtICAgICBzdHJ1Y3QgYmlvICpuZXdfYmlvOw0KPj4+
ICsgICAgIHN0cnVjdCBwYmxrICpwYmxrID0gcnFkLT5wcml2YXRlOw0KPj4+ICsgICAgIHN0cnVj
dCBwYmxrX2dfY3R4ICpyX2N0eCA9IG52bV9ycV90b19wZHUocnFkKTsNCj4+PiArICAgICBzdHJ1
Y3QgcGJsa19wcl9jdHggKnByX2N0eCA9IHJfY3R4LT5wcml2YXRlOw0KPj4+ICsgICAgIHN0cnVj
dCBiaW8gKm5ld19iaW8gPSBycWQtPmJpbzsNCj4+PiArICAgICBzdHJ1Y3QgYmlvICpiaW8gPSBw
cl9jdHgtPm9yaWdfYmlvOw0KPj4+ICAgICAgc3RydWN0IGJpb192ZWMgc3JjX2J2LCBkc3RfYnY7
DQo+Pj4gLSAgICAgdm9pZCAqcHBhX3B0ciA9IE5VTEw7DQo+Pj4gLSAgICAgdm9pZCAqc3JjX3As
ICpkc3RfcDsNCj4+PiAtICAgICBkbWFfYWRkcl90IGRtYV9wcGFfbGlzdCA9IDA7DQo+Pj4gLSAg
ICAgX19sZTY0ICpsYmFfbGlzdF9tZW0sICpsYmFfbGlzdF9tZWRpYTsNCj4+PiAtICAgICBpbnQg
bnJfc2VjcyA9IHJxZC0+bnJfcHBhczsNCj4+PiArICAgICBzdHJ1Y3QgcGJsa19zZWNfbWV0YSAq
bWV0YV9saXN0ID0gcnFkLT5tZXRhX2xpc3Q7DQo+Pj4gKyAgICAgaW50IGJpb19pbml0X2lkeCA9
IHByX2N0eC0+YmlvX2luaXRfaWR4Ow0KPj4+ICsgICAgIHVuc2lnbmVkIGxvbmcgKnJlYWRfYml0
bWFwID0gJnByX2N0eC0+Yml0bWFwOw0KPj4+ICsgICAgIGludCBucl9zZWNzID0gcHJfY3R4LT5v
cmlnX25yX3NlY3M7DQo+Pj4gICAgICBpbnQgbnJfaG9sZXMgPSBucl9zZWNzIC0gYml0bWFwX3dl
aWdodChyZWFkX2JpdG1hcCwgbnJfc2Vjcyk7DQo+Pj4gLSAgICAgaW50IGksIHJldCwgaG9sZTsN
Cj4+PiAtDQo+Pj4gLSAgICAgLyogUmUtdXNlIGFsbG9jYXRlZCBtZW1vcnkgZm9yIGludGVybWVk
aWF0ZSBsYmFzICovDQo+Pj4gLSAgICAgbGJhX2xpc3RfbWVtID0gKCgodm9pZCAqKXJxZC0+cHBh
X2xpc3QpICsgcGJsa19kbWFfcHBhX3NpemUpOw0KPj4+IC0gICAgIGxiYV9saXN0X21lZGlhID0g
KCgodm9pZCAqKXJxZC0+cHBhX2xpc3QpICsgMiAqIHBibGtfZG1hX3BwYV9zaXplKTsNCj4+PiAt
DQo+Pj4gLSAgICAgbmV3X2JpbyA9IGJpb19hbGxvYyhHRlBfS0VSTkVMLCBucl9ob2xlcyk7DQo+
Pj4gLQ0KPj4+IC0gICAgIGlmIChwYmxrX2Jpb19hZGRfcGFnZXMocGJsaywgbmV3X2JpbywgR0ZQ
X0tFUk5FTCwgbnJfaG9sZXMpKQ0KPj4+IC0gICAgICAgICAgICAgZ290byBmYWlsX2FkZF9wYWdl
czsNCj4+PiAtDQo+Pj4gLSAgICAgaWYgKG5yX2hvbGVzICE9IG5ld19iaW8tPmJpX3ZjbnQpIHsN
Cj4+PiAtICAgICAgICAgICAgIHByX2VycigicGJsazogbWFsZm9ybWVkIGJpb1xuIik7DQo+Pj4g
LSAgICAgICAgICAgICBnb3RvIGZhaWw7DQo+Pj4gLSAgICAgfQ0KPj4+IC0NCj4+PiAtICAgICBm
b3IgKGkgPSAwOyBpIDwgbnJfc2VjczsgaSsrKQ0KPj4+IC0gICAgICAgICAgICAgbGJhX2xpc3Rf
bWVtW2ldID0gbWV0YV9saXN0W2ldLmxiYTsNCj4+PiAtDQo+Pj4gLSAgICAgbmV3X2Jpby0+Ymlf
aXRlci5iaV9zZWN0b3IgPSAwOyAvKiBpbnRlcm5hbCBiaW8gKi8NCj4+PiAtICAgICBiaW9fc2V0
X29wX2F0dHJzKG5ld19iaW8sIFJFUV9PUF9SRUFELCAwKTsNCj4+PiAtDQo+Pj4gLSAgICAgcnFk
LT5iaW8gPSBuZXdfYmlvOw0KPj4+IC0gICAgIHJxZC0+bnJfcHBhcyA9IG5yX2hvbGVzOw0KPj4+
IC0gICAgIHJxZC0+ZmxhZ3MgPSBwYmxrX3NldF9yZWFkX21vZGUocGJsaywgUEJMS19SRUFEX1JB
TkRPTSk7DQo+Pj4gLQ0KPj4+IC0gICAgIGlmICh1bmxpa2VseShucl9ob2xlcyA9PSAxKSkgew0K
Pj4+IC0gICAgICAgICAgICAgcHBhX3B0ciA9IHJxZC0+cHBhX2xpc3Q7DQo+Pj4gLSAgICAgICAg
ICAgICBkbWFfcHBhX2xpc3QgPSBycWQtPmRtYV9wcGFfbGlzdDsNCj4+PiAtICAgICAgICAgICAg
IHJxZC0+cHBhX2FkZHIgPSBycWQtPnBwYV9saXN0WzBdOw0KPj4+IC0gICAgIH0NCj4+PiAtDQo+
Pj4gLSAgICAgcmV0ID0gcGJsa19zdWJtaXRfaW9fc3luYyhwYmxrLCBycWQpOw0KPj4+IC0gICAg
IGlmIChyZXQpIHsNCj4+PiAtICAgICAgICAgICAgIGJpb19wdXQocnFkLT5iaW8pOw0KPj4+IC0g
ICAgICAgICAgICAgcHJfZXJyKCJwYmxrOiBzeW5jIHJlYWQgSU8gc3VibWlzc2lvbiBmYWlsZWRc
biIpOw0KPj4+IC0gICAgICAgICAgICAgZ290byBmYWlsOw0KPj4+IC0gICAgIH0NCj4+PiAtDQo+
Pj4gLSAgICAgaWYgKHJxZC0+ZXJyb3IpIHsNCj4+PiAtICAgICAgICAgICAgIGF0b21pY19sb25n
X2luYygmcGJsay0+cmVhZF9mYWlsZWQpOw0KPj4+IC0jaWZkZWYgQ09ORklHX05WTV9QQkxLX0RF
QlVHDQo+Pj4gLSAgICAgICAgICAgICBwYmxrX3ByaW50X2ZhaWxlZF9ycWQocGJsaywgcnFkLCBy
cWQtPmVycm9yKTsNCj4+PiAtI2VuZGlmDQo+Pj4gLSAgICAgfQ0KPj4+ICsgICAgIF9fbGU2NCAq
bGJhX2xpc3RfbWVtLCAqbGJhX2xpc3RfbWVkaWE7DQo+Pj4gKyAgICAgdm9pZCAqc3JjX3AsICpk
c3RfcDsNCj4+PiArICAgICBpbnQgaG9sZSwgaTsNCj4+PiANCj4+PiAgICAgIGlmICh1bmxpa2Vs
eShucl9ob2xlcyA9PSAxKSkgew0KPj4+ICAgICAgICAgICAgICBzdHJ1Y3QgcHBhX2FkZHIgcHBh
Ow0KPj4+IA0KPj4+ICAgICAgICAgICAgICBwcGEgPSBycWQtPnBwYV9hZGRyOw0KPj4+IC0gICAg
ICAgICAgICAgcnFkLT5wcGFfbGlzdCA9IHBwYV9wdHI7DQo+Pj4gLSAgICAgICAgICAgICBycWQt
PmRtYV9wcGFfbGlzdCA9IGRtYV9wcGFfbGlzdDsNCj4+PiArICAgICAgICAgICAgIHJxZC0+cHBh
X2xpc3QgPSBwcl9jdHgtPnBwYV9wdHI7DQo+Pj4gKyAgICAgICAgICAgICBycWQtPmRtYV9wcGFf
bGlzdCA9IHByX2N0eC0+ZG1hX3BwYV9saXN0Ow0KPj4+ICAgICAgICAgICAgICBycWQtPnBwYV9s
aXN0WzBdID0gcHBhOw0KPj4+ICAgICAgfQ0KPj4+IA0KPj4+ICsgICAgIC8qIFJlLXVzZSBhbGxv
Y2F0ZWQgbWVtb3J5IGZvciBpbnRlcm1lZGlhdGUgbGJhcyAqLw0KPj4+ICsgICAgIGxiYV9saXN0
X21lbSA9ICgoKHZvaWQgKilycWQtPnBwYV9saXN0KSArIHBibGtfZG1hX3BwYV9zaXplKTsNCj4+
PiArICAgICBsYmFfbGlzdF9tZWRpYSA9ICgoKHZvaWQgKilycWQtPnBwYV9saXN0KSArIDIgKiBw
YmxrX2RtYV9wcGFfc2l6ZSk7DQo+Pj4gKw0KPj4+ICAgICAgZm9yIChpID0gMDsgaSA8IG5yX3Nl
Y3M7IGkrKykgew0KPj4+ICAgICAgICAgICAgICBsYmFfbGlzdF9tZWRpYVtpXSA9IG1ldGFfbGlz
dFtpXS5sYmE7DQo+Pj4gICAgICAgICAgICAgIG1ldGFfbGlzdFtpXS5sYmEgPSBsYmFfbGlzdF9t
ZW1baV07DQo+Pj4gQEAgLTMxNiw3ICsyNzgsNyBAQCBzdGF0aWMgaW50IHBibGtfcGFydGlhbF9y
ZWFkKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgbnZtX3JxICpycWQsDQo+Pj4gICAgICAgICAg
ICAgIG1ldGFfbGlzdFtob2xlXS5sYmEgPSBsYmFfbGlzdF9tZWRpYVtpXTsNCj4+PiANCj4+PiAg
ICAgICAgICAgICAgc3JjX2J2ID0gbmV3X2Jpby0+YmlfaW9fdmVjW2krK107DQo+Pj4gLSAgICAg
ICAgICAgICBkc3RfYnYgPSBvcmlnX2Jpby0+YmlfaW9fdmVjW2Jpb19pbml0X2lkeCArIGhvbGVd
Ow0KPj4+ICsgICAgICAgICAgICAgZHN0X2J2ID0gYmlvLT5iaV9pb192ZWNbYmlvX2luaXRfaWR4
ICsgaG9sZV07DQo+Pj4gDQo+Pj4gICAgICAgICAgICAgIHNyY19wID0ga21hcF9hdG9taWMoc3Jj
X2J2LmJ2X3BhZ2UpOw0KPj4+ICAgICAgICAgICAgICBkc3RfcCA9IGttYXBfYXRvbWljKGRzdF9i
di5idl9wYWdlKTsNCj4+PiBAQCAtMzM0LDE5ICsyOTYsMTA3IEBAIHN0YXRpYyBpbnQgcGJsa19w
YXJ0aWFsX3JlYWQoc3RydWN0IHBibGsgKnBibGssIHN0cnVjdCBudm1fcnEgKnJxZCwNCj4+PiAg
ICAgIH0gd2hpbGUgKGhvbGUgPCBucl9zZWNzKTsNCj4+PiANCj4+PiAgICAgIGJpb19wdXQobmV3
X2Jpbyk7DQo+Pj4gKyAgICAga2ZyZWUocHJfY3R4KTsNCj4+PiANCj4+PiAgICAgIC8qIHJlc3Rv
cmUgb3JpZ2luYWwgcmVxdWVzdCAqLw0KPj4+ICAgICAgcnFkLT5iaW8gPSBOVUxMOw0KPj4+ICAg
ICAgcnFkLT5ucl9wcGFzID0gbnJfc2VjczsNCj4+PiANCj4+PiArICAgICBiaW9fZW5kaW8oYmlv
KTsNCj4+PiAgICAgIF9fcGJsa19lbmRfaW9fcmVhZChwYmxrLCBycWQsIGZhbHNlKTsNCj4+PiAt
ICAgICByZXR1cm4gTlZNX0lPX0RPTkU7DQo+Pj4gK30NCj4+PiANCj4+PiAtZmFpbDoNCj4+PiAt
ICAgICAvKiBGcmVlIGFsbG9jYXRlZCBwYWdlcyBpbiBuZXcgYmlvICovDQo+Pj4gK3N0YXRpYyBp
bnQgcGJsa19zZXR1cF9wYXJ0aWFsX3JlYWQoc3RydWN0IHBibGsgKnBibGssIHN0cnVjdCBudm1f
cnEgKnJxZCwNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBiaW9f
aW5pdF9pZHgsDQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpy
ZWFkX2JpdG1hcCwNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGludCBucl9ob2xlcykN
Cj4+PiArew0KPj4+ICsgICAgIHN0cnVjdCBwYmxrX3NlY19tZXRhICptZXRhX2xpc3QgPSBycWQt
Pm1ldGFfbGlzdDsNCj4+PiArICAgICBzdHJ1Y3QgcGJsa19nX2N0eCAqcl9jdHggPSBudm1fcnFf
dG9fcGR1KHJxZCk7DQo+Pj4gKyAgICAgc3RydWN0IHBibGtfcHJfY3R4ICpwcl9jdHg7DQo+Pj4g
KyAgICAgc3RydWN0IGJpbyAqbmV3X2JpbywgKmJpbyA9IHJfY3R4LT5wcml2YXRlOw0KPj4+ICsg
ICAgIF9fbGU2NCAqbGJhX2xpc3RfbWVtOw0KPj4+ICsgICAgIGludCBucl9zZWNzID0gcnFkLT5u
cl9wcGFzOw0KPj4+ICsgICAgIGludCBpOw0KPj4+ICsNCj4+PiArICAgICAvKiBSZS11c2UgYWxs
b2NhdGVkIG1lbW9yeSBmb3IgaW50ZXJtZWRpYXRlIGxiYXMgKi8NCj4+PiArICAgICBsYmFfbGlz
dF9tZW0gPSAoKCh2b2lkICopcnFkLT5wcGFfbGlzdCkgKyBwYmxrX2RtYV9wcGFfc2l6ZSk7DQo+
Pj4gKw0KPj4+ICsgICAgIG5ld19iaW8gPSBiaW9fYWxsb2MoR0ZQX0tFUk5FTCwgbnJfaG9sZXMp
Ow0KPj4gDQo+PiANCj4+IG5ld19iaW8gY2FuIHJldHVybiBOVUxMLg0KPiANCj4gc2VlIEplbnMn
cyBlbWFpbA0KDQpZZXMsIHRoaXMgaXMgdGhlIHNhbWUgYXMgaW4gdGhlIG9yaWdpbmFsIHBhcnRp
YWwgcGF0aA0KPiANCj4+IA0KPj4+ICsNCj4+PiArICAgICBpZiAocGJsa19iaW9fYWRkX3BhZ2Vz
KHBibGssIG5ld19iaW8sIEdGUF9LRVJORUwsIG5yX2hvbGVzKSkNCj4+PiArICAgICAgICAgICAg
IGdvdG8gZmFpbDsNCj4+IA0KPj4gZ290byBiaW9fcHV0Pw0KPiANCj4gZG8geW91IG9ubHkgd2Fu
dCB0aGUgbGFiZWwgdG8gYmUgY2hhbmdlZD8gc3VyZQ0KDQpUbyBiZSBjb25zaXN0ZW50IHdpdGgg
dGhlIHJlc3Qgb2YgcGJsaywgdGhlIGxhYmVsIHNob3VsZCBiZSBmYWlsX2Jpb19wdXQuIA0KPiAN
Cj4+PiArDQo+Pj4gKyAgICAgaWYgKG5yX2hvbGVzICE9IG5ld19iaW8tPmJpX3ZjbnQpIHsNCj4+
PiArICAgICAgICAgICAgIHByX2VycigicGJsazogbWFsZm9ybWVkIGJpb1xuIik7DQo+PiANCj4+
IEkgZG9uJ3QgdGhpbmsgdGhlcmUgaXMgYSBuZWVkIGZvciBhbiBlcnJvciBtZXNzYWdlIGhlcmUu
IEluIHdoaWNoIGNhc2UNCj4+IHdvdWxkIHRoaXMgaGFwcGVuPw0KPiANCj4gVGhpcyBpcyB0YWtl
biBvdmVyIGZyb20gdGhlIG9yaWdpbmFsIHBhcnRpYWwgcmVhZCBwYXRoLiBNYXliZSBKYXZpZXIN
Cj4ga25vd3Mgd2h5IGl0IHdhcyBwdXQgaW4gdGhlcmUgaW4gdGhlIGZpcnN0IHBsYWNlLg0KDQpU
aGlzIHNob3VsZCBub3QgaGFwcGVuIGFuZCBpdOKAmXMgYSBwYmxrIGludGVybmFsIGVycm9yLiBJ
4oCZbSBvayB3aXRoIG1ha2luZyBpdCBhIFdBUk5fT05DRSgpDQo+IA0KPj4gDQo+Pj4gKyAgICAg
ICAgICAgICBnb3RvIGZhaWxfcGFnZXM7DQo+Pj4gKyAgICAgfQ0KPj4gDQo+PiBnb3RvIGZyZWVf
cGFnZXM/DQoNClNhbWUgYXMgYWJvdmUgZmFpbF9mcmVlX3BhZ2VzDQo+IA0KPiBzdXJlIEkgY2Fu
IGNoYW5nZSB0aGUgbGFiZWwNCj4gDQo+PiANCj4+PiArDQo+Pj4gKyAgICAgcHJfY3R4ID0ga21h
bGxvYyhzaXplb2Yoc3RydWN0IHBibGtfcHJfY3R4KSwgR0ZQX0tFUk5FTCk7DQo+Pj4gKyAgICAg
aWYgKCFwcl9jdHgpDQo+Pj4gKyAgICAgICAgICAgICBnb3RvIGZhaWxfcGFnZXM7DQo+Pj4gKw0K
Pj4+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBucl9zZWNzOyBpKyspDQo+Pj4gKyAgICAgICAgICAg
ICBsYmFfbGlzdF9tZW1baV0gPSBtZXRhX2xpc3RbaV0ubGJhOw0KPj4+ICsNCj4+PiArICAgICBu
ZXdfYmlvLT5iaV9pdGVyLmJpX3NlY3RvciA9IDA7IC8qIGludGVybmFsIGJpbyAqLw0KPj4+ICsg
ICAgIGJpb19zZXRfb3BfYXR0cnMobmV3X2JpbywgUkVRX09QX1JFQUQsIDApOw0KPj4+ICsNCj4+
PiArICAgICBycWQtPmJpbyA9IG5ld19iaW87DQo+Pj4gKyAgICAgcnFkLT5ucl9wcGFzID0gbnJf
aG9sZXM7DQo+Pj4gKyAgICAgcnFkLT5mbGFncyA9IHBibGtfc2V0X3JlYWRfbW9kZShwYmxrLCBQ
QkxLX1JFQURfUkFORE9NKTsNCj4+PiArDQo+Pj4gKyAgICAgcHJfY3R4LT5wcGFfcHRyID0gTlVM
TDsNCj4+PiArICAgICBwcl9jdHgtPm9yaWdfYmlvID0gYmlvOw0KPj4+ICsgICAgIHByX2N0eC0+
Yml0bWFwID0gKnJlYWRfYml0bWFwOw0KPj4+ICsgICAgIHByX2N0eC0+YmlvX2luaXRfaWR4ID0g
YmlvX2luaXRfaWR4Ow0KPj4+ICsgICAgIHByX2N0eC0+b3JpZ19ucl9zZWNzID0gbnJfc2VjczsN
Cj4+PiArICAgICByX2N0eC0+cHJpdmF0ZSA9IHByX2N0eDsNCj4+PiArDQo+Pj4gKyAgICAgaWYg
KHVubGlrZWx5KG5yX2hvbGVzID09IDEpKSB7DQo+Pj4gKyAgICAgICAgICAgICBwcl9jdHgtPnBw
YV9wdHIgPSBycWQtPnBwYV9saXN0Ow0KPj4+ICsgICAgICAgICAgICAgcHJfY3R4LT5kbWFfcHBh
X2xpc3QgPSBycWQtPmRtYV9wcGFfbGlzdDsNCj4+PiArICAgICAgICAgICAgIHJxZC0+cHBhX2Fk
ZHIgPSBycWQtPnBwYV9saXN0WzBdOw0KPj4+ICsgICAgIH0NCj4+PiArICAgICByZXR1cm4gMDsN
Cj4+PiArDQo+Pj4gK2ZhaWxfcGFnZXM6DQo+Pj4gICAgICBwYmxrX2Jpb19mcmVlX3BhZ2VzKHBi
bGssIG5ld19iaW8sIDAsIG5ld19iaW8tPmJpX3ZjbnQpOw0KPj4+IC1mYWlsX2FkZF9wYWdlczoN
Cj4+PiArZmFpbDoNCj4+PiArICAgICBiaW9fcHV0KG5ld19iaW8pOw0KPj4+ICsNCj4+PiArICAg
ICByZXR1cm4gLUVOT01FTTsNCj4+PiArfQ0KPj4+ICsNCj4+PiArc3RhdGljIGludCBwYmxrX3Bh
cnRpYWxfcmVhZF9iaW8oc3RydWN0IHBibGsgKnBibGssIHN0cnVjdCBudm1fcnEgKnJxZCwNCj4+
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJpb19pbml0X2lk
eCwNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqcmVh
ZF9iaXRtYXAsIGludCBucl9zZWNzKQ0KPj4+ICt7DQo+Pj4gKyAgICAgaW50IG5yX2hvbGVzOw0K
Pj4+ICsgICAgIGludCByZXQ7DQo+Pj4gKw0KPj4+ICsgICAgIG5yX2hvbGVzID0gbnJfc2VjcyAt
IGJpdG1hcF93ZWlnaHQocmVhZF9iaXRtYXAsIG5yX3NlY3MpOw0KPj4+ICsNCj4+PiArICAgICBp
ZiAocGJsa19zZXR1cF9wYXJ0aWFsX3JlYWQocGJsaywgcnFkLCBiaW9faW5pdF9pZHgsIHJlYWRf
Yml0bWFwLA0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucl9ob2xlcykp
DQo+Pj4gKyAgICAgICAgICAgICByZXR1cm4gTlZNX0lPX0VSUjsNCj4+PiArDQo+Pj4gKyAgICAg
cnFkLT5lbmRfaW8gPSBwYmxrX2VuZF9wYXJ0aWFsX3JlYWQ7DQo+Pj4gKw0KPj4+ICsgICAgIHJl
dCA9IHBibGtfc3VibWl0X2lvKHBibGssIHJxZCk7DQo+Pj4gKyAgICAgaWYgKHJldCkgew0KPj4+
ICsgICAgICAgICAgICAgYmlvX3B1dChycWQtPmJpbyk7DQo+Pj4gKyAgICAgICAgICAgICBwcl9l
cnIoInBibGs6IHBhcnRpYWwgcmVhZCBJTyBzdWJtaXNzaW9uIGZhaWxlZFxuIik7DQo+Pj4gKyAg
ICAgICAgICAgICBnb3RvIGVycjsNCj4+PiArICAgICB9DQo+Pj4gKw0KPj4+ICsgICAgIHJldHVy
biBOVk1fSU9fT0s7DQo+Pj4gKw0KPj4+ICtlcnI6DQo+Pj4gICAgICBwcl9lcnIoInBibGs6IGZh
aWxlZCB0byBwZXJmb3JtIHBhcnRpYWwgcmVhZFxuIik7DQo+Pj4gKw0KPj4+ICsgICAgIC8qIEZy
ZWUgYWxsb2NhdGVkIHBhZ2VzIGluIG5ldyBiaW8gKi8NCj4+PiArICAgICBwYmxrX2Jpb19mcmVl
X3BhZ2VzKHBibGssIHJxZC0+YmlvLCAwLCBycWQtPmJpby0+YmlfdmNudCk7DQo+Pj4gICAgICBf
X3BibGtfZW5kX2lvX3JlYWQocGJsaywgcnFkLCBmYWxzZSk7DQo+Pj4gICAgICByZXR1cm4gTlZN
X0lPX0VSUjsNCj4+PiAgfQ0KPj4+IEBAIC00ODAsOCArNTMwLDE1IEBAIGludCBwYmxrX3N1Ym1p
dF9yZWFkKHN0cnVjdCBwYmxrICpwYmxrLCBzdHJ1Y3QgYmlvICpiaW8pDQo+Pj4gICAgICAvKiBU
aGUgcmVhZCBiaW8gcmVxdWVzdCBjb3VsZCBiZSBwYXJ0aWFsbHkgZmlsbGVkIGJ5IHRoZSB3cml0
ZSBidWZmZXIsDQo+Pj4gICAgICAgKiBidXQgdGhlcmUgYXJlIHNvbWUgaG9sZXMgdGhhdCBuZWVk
IHRvIGJlIHJlYWQgZnJvbSB0aGUgZHJpdmUuDQo+Pj4gICAgICAgKi8NCj4+PiAtICAgICByZXR1
cm4gcGJsa19wYXJ0aWFsX3JlYWQocGJsaywgcnFkLCBiaW8sIGJpb19pbml0X2lkeCwgJnJlYWRf
Yml0bWFwKTsNCj4+PiArICAgICByZXQgPSBwYmxrX3BhcnRpYWxfcmVhZF9iaW8ocGJsaywgcnFk
LCBiaW9faW5pdF9pZHgsICZyZWFkX2JpdG1hcCwNCj4+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnJfc2Vjcyk7DQo+Pj4gKyAgICAgaWYgKHJldCkNCj4+PiArICAgICAgICAg
ICAgIGdvdG8gZmFpbF9tZXRhX2ZyZWU7DQo+Pj4gKw0KPj4+ICsgICAgIHJldHVybiBOVk1fSU9f
T0s7DQo+Pj4gDQo+Pj4gK2ZhaWxfbWV0YV9mcmVlOg0KPj4+ICsgICAgIG52bV9kZXZfZG1hX2Zy
ZWUoZGV2LT5wYXJlbnQsIHJxZC0+bWV0YV9saXN0LCBycWQtPmRtYV9tZXRhX2xpc3QpOw0KPj4+
ICBmYWlsX3JxZF9mcmVlOg0KPj4+ICAgICAgcGJsa19mcmVlX3JxZChwYmxrLCBycWQsIFBCTEtf
UkVBRCk7DQo+Pj4gICAgICByZXR1cm4gcmV0Ow0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2xp
Z2h0bnZtL3BibGsuaCBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay5oDQo+Pj4gaW5kZXggYzA3Mjk1
NS4uMWM3YWMwNiAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2xpZ2h0bnZtL3BibGsuaA0KPj4+
ICsrKyBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay5oDQo+Pj4gQEAgLTExOSw2ICsxMTksMTYgQEAg
c3RydWN0IHBibGtfZ19jdHggew0KPj4+ICAgICAgdTY0IGxiYTsNCj4+PiAgfTsNCj4+PiANCj4+
PiArLyogcGFydGlhbCByZWFkIGNvbnRleHQgKi8NCj4+PiArc3RydWN0IHBibGtfcHJfY3R4IHsN
Cj4+PiArICAgICBzdHJ1Y3QgYmlvICpvcmlnX2JpbzsNCj4+PiArICAgICB1bnNpZ25lZCBsb25n
IGJpdG1hcDsNCj4+IA0KPj4gR3VhcmFudGVlcyB0aGF0IHRoaXMgaXMgYXQgbGVhc3QgMzJiaXQs
IGJ1dCB0aGlzIHNob3VsZCBiZSBhdCBsZWFzdCA2NA0KPj4gYml0IHJpZ2h0Pw0KPj4gDQo+Pj4g
KyAgICAgdW5zaWduZWQgaW50IG9yaWdfbnJfc2VjczsNCj4+PiArICAgICB1bnNpZ25lZCBpbnQg
YmlvX2luaXRfaWR4Ow0KPj4+ICsgICAgIHZvaWQgKnBwYV9wdHI7DQo+Pj4gKyAgICAgZG1hX2Fk
ZHJfdCBkbWFfcHBhX2xpc3Q7DQo+Pj4gK307DQo+Pj4gKw0KPj4+ICAvKiBQYWQgY29udGV4dCAq
Lw0KPj4+ICBzdHJ1Y3QgcGJsa19wYWRfcnEgew0KPj4+ICAgICAgc3RydWN0IHBibGsgKnBibGs7
DQo+Pj4gDQo+PiANCg==
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help