[PATCH (masq)] 2.0.33 crashes

JuanJo Ciarlante (irriga@impsat1.com.ar)
Mon, 23 Feb 1998 15:41:28 -0300 (ART)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1463809278-1955317287-888250840=:781
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.96.980223132258.781C@kosa>

Hi!
I've attached a patch that *could* solve masquerading related
2.0.33 freezes.
It changes:
- use soft (instead of hard, cli() ) irq locking for
. control connection handling (eg. ftp)
. /proc/net/ip_masquerade
- [bonus:] cleanup ip_autofw timers when deleting/flushing.

It will be great if ppl reporting freezes could test this (greater if it
solves them :))

Regards...

-- Juanjo http://juanjox.home.ml.org

---1463809278-1955317287-888250840=:781
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="ip_masq-v0.12mini-for_2.0.33.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.980223132039.781A@kosa>
Content-Description:

LS0tIGxpbnV4L2luY2x1ZGUvbmV0L2lwX21hc3EuaC5kaXN0CVR1ZSBEZWMg
IDIgMTk6MjA6MzkgMTk5Nw0KKysrIGxpbnV4L2luY2x1ZGUvbmV0L2lwX21h
c3EuaAlNb24gRmViIDIzIDA5OjU3OjQzIDE5OTgNCkBAIC0xLDUgKzEsNyBA
QA0KIC8qDQogICogCUlQIG1hc3F1ZXJhZGluZyBmdW5jdGlvbmFsaXR5IGRl
ZmluaXRpb25zDQorICoNCisgKgkkSWQ6IGlwX21hc3EuaCx2IDAuMTIgMTk5
OC8wMi8yMyAxMTo0MToxOSBqam8gRXhwIGpqbyAkDQogICovDQogDQogI2lm
bmRlZiBfSVBfTUFTUV9IDQpAQCAtMzIsNiArMzQsNyBAQA0KICNkZWZpbmUg
TUFTUVVFUkFERV9FWFBJUkVfVENQICAgICAxNSo2MCpIWg0KICNkZWZpbmUg
TUFTUVVFUkFERV9FWFBJUkVfVENQX0ZJTiAgMio2MCpIWg0KICNkZWZpbmUg
TUFTUVVFUkFERV9FWFBJUkVfVURQICAgICAgNSo2MCpIWg0KKyNkZWZpbmUg
TUFTUVVFUkFERV9FWFBJUkVfUkVUUlkJICAgMSo2MCpIWg0KIC8qIA0KICAq
IElDTVAgY2FuIG5vIGxvbmdlciBiZSBtb2RpZmllZCBvbiB0aGUgZmx5IHVz
aW5nIGFuIGlvY3RsIC0gdGhpcw0KICAqIGRlZmluZSBpcyB0aGUgb25seSB3
YXkgdG8gY2hhbmdlIHRoZSB0aW1lb3V0cyANCkBAIC01MSw3ICs1NCw5IEBA
DQogI2RlZmluZSBJUF9NQVNRX0ZfU0FXX0ZJTgkJKElQX01BU1FfRl9TQVdf
RklOX0lOIHwgXA0KIAkJCQkJIElQX01BU1FfRl9TQVdfRklOX09VVCkNCiAJ
CQkJCQkvKiB0Y3AgZmluIHBrdHMgc2VlbiAqLw0KKyNpZiAwDQogI2RlZmlu
ZSBJUF9NQVNRX0ZfQ09OVFJPTAkJMHgxMDAgCS8qIHRoaXMgaXMgYSBjb250
cm9sIGNoYW5uZWwgKi8NCisjZW5kaWYNCiAjZGVmaW5lIElQX01BU1FfRl9O
T19TUE9SVCAgICAJCTB4MjAwCS8qIG5vIHNwb3J0IHNldCB5ZXQgKi8NCiAj
ZGVmaW5lIElQX01BU1FfRl9GVFBfUEFTVgkgICAgCTB4NDAwCS8qIGZ0cCBQ
QVNWIGNvbW1hbmQganVzdCBpc3N1ZWQgKi8NCiAjZGVmaW5lIElQX01BU1Ff
Rl9OT19SRVBMWQkJMHg4MDAgCS8qIG5vIHJlcGx5IHlldCBmcm9tIG91dHNp
ZGUgKi8NCkBAIC04Myw3ICs4OCw4IEBADQogCXN0cnVjdCBpcF9tYXNxX2Fw
cCAqYXBwOwkvKiBib3VuZCBpcF9tYXNxX2FwcCBvYmplY3QgKi8NCiAJdm9p
ZAkJKmFwcF9kYXRhOwkvKiBBcHBsaWNhdGlvbiBwcml2YXRlIGRhdGEgKi8N
CiAJdW5zaWduZWQgIGZsYWdzOyAgICAgICAgCS8qIHN0YXR1cyBmbGFncyAq
Lw0KLQlzdHJ1Y3QgaXBfbWFzcQkqY29udHJvbDsJLyogQ29ycmVzcG9uZGlu
ZyBjb250cm9sIGNvbm5lY3Rpb24gKi8NCisJc3RydWN0IGlwX21hc3EJKmNv
bnRyb2w7CS8qIE1hc3RlciBjb250cm9sIGNvbm5lY3Rpb24gKi8NCisJYXRv
bWljX3QgICAgICAgIG5fY29udHJvbDsJLyogTnVtYmVyIG9mICJjb250cm9s
bGVkIiBtYXNxcyAqLw0KIH07DQogDQogLyoNCkBAIC0xMjQsNiArMTMwLDEw
IEBADQogZXh0ZXJuIHN0cnVjdCBpcF9tYXNxICppcF9tYXNxX25ldyhzdHJ1
Y3QgZGV2aWNlICpkZXYsIGludCBwcm90bywgX191MzIgc2FkZHIsIF9fdTE2
IHNwb3J0LCBfX3UzMiBkYWRkciwgX191MTYgZHBvcnQsIHVuc2lnbmVkIGZs
YWdzKTsNCiBleHRlcm4gdm9pZCBpcF9tYXNxX3NldF9leHBpcmUoc3RydWN0
IGlwX21hc3EgKm1zLCB1bnNpZ25lZCBsb25nIHRvdXQpOw0KIA0KK2V4dGVy
biB2b2lkIGlwX21hc3FfY29udHJvbF9hZGQoc3RydWN0IGlwX21hc3EgKm1z
LCBzdHJ1Y3QgaXBfbWFzcSogY3RsX21zKTsNCitleHRlcm4gdm9pZCBpcF9t
YXNxX2NvbnRyb2xfZGVsKHN0cnVjdCBpcF9tYXNxICptcyk7DQorZXh0ZXJu
IHN0cnVjdCBpcF9tYXNxICogaXBfbWFzcV9jb250cm9sX2dldChzdHJ1Y3Qg
aXBfbWFzcSAqbXMpOw0KKw0KICNpZmRlZiBDT05GSUdfSVBfTUFTUVVFUkFE
RV9JUEFVVE9GVw0KIGV4dGVybiB2b2lkIGlwX2F1dG9md19leHBpcmUodW5z
aWduZWQgbG9uZyBkYXRhKTsNCiAjZW5kaWYNCkBAIC0xOTksNiArMjA5LDgx
IEBADQogI2lmZGVmIENPTkZJR19JUF9NQVNRVUVSQURFX0lQQVVUT0ZXDQog
ZXh0ZXJuIHN0cnVjdCBpcF9hdXRvZncgKiBpcF9hdXRvZndfaG9zdHM7DQog
I2VuZGlmIC8qIENPTkZJR19JUF9NQVNRVUVSQURFX0lQQVVUT0ZXICovDQor
DQorLyoNCisgKiAJYXRvbWljX3Qgc3R1ZmYNCisgKi8NCisjZGVmaW5lIEFU
T01JQ19JTklUKHgpICAgKHgpIA0KKyNkZWZpbmUgYXRvbWljX3JlYWQocHgp
ICAoKihweCkpDQorDQorDQorLyogDQorICoJTG9ja2luZyBzdHVmZg0KKyAq
Lw0KKw0KKw0KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgaXBfbWFzcV9sb2Nr
KGF0b21pY190ICpsb2NrLCBpbnQgcncpDQorew0KKyNpZiAwDQorCWlmIChy
dykgDQorI2VuZGlmDQorCQlzdGFydF9iaF9hdG9taWMoKTsNCisJYXRvbWlj
X2luYyhsb2NrKTsNCit9DQorDQorc3RhdGljIF9faW5saW5lX18gdm9pZCBp
cF9tYXNxX3VubG9jayhhdG9taWNfdCAqbG9jaywgaW50IHJ3KQ0KK3sNCisJ
YXRvbWljX2RlYyhsb2NrKTsNCisjaWYgMA0KKwlpZiAocncpIA0KKyNlbmRp
Zg0KKwkJZW5kX2JoX2F0b21pYygpOw0KK30NCisNCisvKg0KKyAqCVNsZWVw
LWFibGUgbG9ja3p6ei4uLg0KKyAqLw0KK3N0YXRpYyBfX2lubGluZV9fIHZv
aWQgaXBfbWFzcV9sb2NreihhdG9taWNfdCAqbG9jaywgc3RydWN0IHdhaXRf
cXVldWUgKiogd2FpdHEsIGludCBydykNCit7DQorCWlmIChydykNCisJCXdo
aWxlKGF0b21pY19yZWFkKGxvY2spKSBzbGVlcF9vbih3YWl0cSk7DQorCWlw
X21hc3FfbG9jayhsb2NrLCBydyk7DQorfQ0KKw0KK3N0YXRpYyBfX2lubGlu
ZV9fIHZvaWQgaXBfbWFzcV91bmxvY2t6KGF0b21pY190ICpsb2NrLCBzdHJ1
Y3Qgd2FpdF9xdWV1ZSAqKiB3YWl0cSwgaW50IHJ3KQ0KK3sNCisJaXBfbWFz
cV91bmxvY2sobG9jaywgcncpOw0KKwlpZiAocncpDQorCQl3YWtlX3VwKHdh
aXRxKTsNCit9DQorCQ0KKy8qDQorICoJUGVyZmVjdCBmb3Igd2lubmluZyBy
YWNlcyAuLi4gOykNCisgKi8NCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgaXBf
bWFzcV9ubG9ja3MoYXRvbWljX3QgKmxvY2spDQorew0KKwlyZXR1cm4gYXRv
bWljX3JlYWQobG9jayk7DQorfQ0KKw0KK2V4dGVybiBhdG9taWNfdCBfX2lw
X21hc3FfbG9jazsNCisNCisvKg0KKyAqCURlYnVnZ2luZyBzdHVmZg0KKyAq
Lw0KKw0KKyAgICAgDQorI2RlZmluZSBJUF9NQVNRX0lORk8obXNnLi4uKSBc
DQorCXByaW50ayhLRVJOX0lORk8gIklQX01BU1E6IiAjIyBtc2cpDQorICAg
ICANCisjZGVmaW5lIElQX01BU1FfREVCVUcobXNnLi4uKSBcDQorCXByaW50
ayhLRVJOX0RFQlVHICJJUF9NQVNROiIgIyMgbXNnKQ0KKw0KKyNkZWZpbmUg
SVBfTUFTUV9FUlIobXNnLi4uKSBcDQorCXByaW50ayhLRVJOX0VSUiAiSVBf
TUFTUToiICMjIG1zZykNCisNCisjZGVmaW5lIElQX01BU1FfV0FSTklORyht
c2cuLi4pIFwNCisJcHJpbnRrKEtFUk5fV0FSTklORyAiSVBfTUFTUToiICMj
IG1zZykNCisNCiANCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLw0KIA0KLS0t
IGxpbnV4L25ldC9pcHY0L2lwX21hc3EuYy5kaXN0CVR1ZSBBdWcgIDUgMTQ6
NDQ6MjYgMTk5Nw0KKysrIGxpbnV4L25ldC9pcHY0L2lwX21hc3EuYwlNb24g
RmViIDIzIDA5OjA2OjM2IDE5OTgNCkBAIC00LDYgKzQsOCBAQA0KICAqDQog
ICogCUNvcHlyaWdodCAoYykgMTk5NCBQYXVsaW5lIE1pZGRlbGluaw0KICAq
DQorICoJJElkOiBpcF9tYXNxLmMsdiAwLjEyIDE5OTgvMDIvMjMgMTE6NDA6
NDkgampvIEV4cCBqam8gJA0KKyAqDQogICoJU2VlIGlwX2Z3LmMgZm9yIG9y
aWdpbmFsIGxvZw0KICAqDQogICogRml4ZXM6DQpAQCAtMjAsNiArMjIsOCBA
QA0KICAqCURlbGlhbiBEZWxjaGV2CQk6CUFkZGVkIHN1cHBvcnQgZm9yIElD
TVAgcmVxdWVzdHMgYW5kIHJlcGx5cw0KICAqCU5pZ2VsIE1ldGhlcmluZ2hh
bQk6CUlDTVAgaW4gSUNNUCBoYW5kbGluZywgdGlkeSB1cHMsIGJ1ZyBmaXhl
cywgbWFkZSBJQ01QIG9wdGlvbmFsDQogICoJSnVhbiBKb3NlIENpYXJsYW50
ZQk6CXJlLWFzc2lnbiBtYWRkciBpZiBubyBwYWNrZXQgcmVjZWl2ZWQgZnJv
bSBvdXRzaWRlDQorICoJSnVhbiBKb3NlIENpYXJsYW50ZQk6CXNvZnRsb2Nr
aW5nLg0KKyAqCUp1YW4gSm9zZSBDaWFybGFudGUJOglsaXR0bCBhdXRvZncg
b29wcyBmaXgNCiAgKgkNCiAgKi8NCiANCkBAIC00NSw2ICs0OSwxNCBAQA0K
IA0KICNkZWZpbmUgSVBfTUFTUV9UQUJfU0laRSAyNTYgICAgLyogbXVzdCBi
ZSBwb3dlciBvZiAyICovDQogDQorDQorLyoNCisgKiAgICAgIGRlbGV0aW9u
LXByb2NpbmZvIG11dGV4IGxvY2sNCisgKi8NCitzdGF0aWMgc3RydWN0IHdh
aXRfcXVldWUgKm1hc3Ffd2FpdDsNCithdG9taWNfdCBfX2lwX21hc3FfbG9j
ayA9IEFUT01JQ19JTklUKDApOw0KKw0KKw0KIC8qDQogICoJSW1wbGVtZW50
IElQIHBhY2tldCBtYXNxdWVyYWRpbmcNCiAgKi8NCkBAIC0xMzAsNiArMTQy
LDEwIEBADQogICAgICAgICBYKGlwX21hc3FfZnJlZV9wb3J0cyksDQogCVgo
aXBfbWFzcV9leHBpcmUpLA0KIAlYKGlwX21hc3Ffb3V0X2dldF8yKSwNCisg
ICAgICAgIFgoX19pcF9tYXNxX2xvY2spLA0KKyAgICAgICAgWChpcF9tYXNx
X2NvbnRyb2xfYWRkKSwNCisgICAgICAgIFgoaXBfbWFzcV9jb250cm9sX2Rl
bCksDQorICAgICAgICBYKGlwX21hc3FfY29udHJvbF9nZXQpLA0KICNpbmNs
dWRlIDxsaW51eC9zeW10YWJfZW5kLmg+DQogfTsNCiANCkBAIC01MTksNTQg
KzUzNSw0MSBAQA0KICAgICAgICAgcmV0dXJuIE5VTEw7DQogfQ0KIA0KKy8q
DQorICoJTG9jay1wcm90ZWN0IGFnYWluc3QgL3Byb2MgYWNjZXNzIChjdXJy
ZW50bHkgdGhlIG9ubHkNCisgKglzaW11bHRhbmVvdXMgcG9zc2liaWxpdHkp
Lg0KKyAqCUZvcmdldCBhYm91dCBjbGkoKSBhbmQgZnJpZW5kcy4NCisgKi8N
CiBzdGF0aWMgdm9pZCBtYXNxX2V4cGlyZSh1bnNpZ25lZCBsb25nIGRhdGEp
DQogew0KLQlzdHJ1Y3QgaXBfbWFzcSAqbXMgPSAoc3RydWN0IGlwX21hc3Eg
KilkYXRhLCAqbXNfZGF0YTsNCi0JdW5zaWduZWQgbG9uZyBmbGFnczsNCi0N
Ci0JaWYgKG1zLT5mbGFncyAmIElQX01BU1FfRl9DT05UUk9MKSB7DQotCQkv
KiBhIGNvbnRyb2wgY2hhbm5lbCBpcyBhYm91dCB0byBleHBpcmUgKi8NCi0J
CWludCBpZHggPSAwLCByZXByaWV2ZSA9IDA7DQotI2lmZGVmIERFQlVHX0NP
TkZJR19JUF9NQVNRVUVSQURFDQotCQlwcmludGsoIk1hc3F1ZXJhZGUgY29u
dHJvbCAlcyAlbFg6JVggYWJvdXQgdG8gZXhwaXJlXG4iLA0KLQkJCQltYXNx
X3Byb3RvX25hbWUobXMtPnByb3RvY29sKSwNCi0JCQkJbnRvaGwobXMtPnNh
ZGRyKSxudG9ocyhtcy0+c3BvcnQpKTsNCi0jZW5kaWYNCi0JCXNhdmVfZmxh
Z3MoZmxhZ3MpOw0KLQkJY2xpKCk7DQorCXN0cnVjdCBpcF9tYXNxICptcyA9
IChzdHJ1Y3QgaXBfbWFzcSAqKWRhdGE7DQorICAgICAgICANCisJaXBfbWFz
cV9sb2NrKCZfX2lwX21hc3FfbG9jaywgMSk7DQogDQotCQkvKg0KLQkJICog
SWYgYW55IG90aGVyIG1hc3F1ZXJhZGUgZW50cnkgY2xhaW1zIHRoYXQgdGhl
IGV4cGlyaW5nIGVudHJ5DQotCQkgKiBpcyBpdHMgY29udHJvbCBjaGFubmVs
IHRoZW4ga2VlcCB0aGUgY29udHJvbCBlbnRyeSBhbGl2ZS4NCi0JCSAqIFVz
ZWZ1bCBmb3IgbG9uZyBydW5uaW5nIGRhdGEgY2hhbm5lbHMgd2l0aCBpbmFj
dGl2ZSBjb250cm9sDQotCQkgKiBsaW5rcyB3aGljaCB3ZSBkb24ndCB3YW50
IHRvIGxvc2UsIGUuZy4gZnRwLg0KLQkJICogQXNzdW1wdGlvbjogbG9vcHMg
c3VjaCBhcyBhLT5iLT5hIG9yIGEtPmEgd2lsbCBuZXZlciBvY2N1ci4NCi0J
CSAqLw0KLQkJZm9yIChpZHggPSAwOyBpZHggPCBJUF9NQVNRX1RBQl9TSVpF
ICYmICFyZXByaWV2ZTsgaWR4KyspIHsNCi0JCQlmb3IgKG1zX2RhdGEgPSBp
cF9tYXNxX21fdGFiW2lkeF07IG1zX2RhdGEgOyBtc19kYXRhID0gbXNfZGF0
YS0+bV9saW5rKSB7DQotCQkJCWlmIChtc19kYXRhLT5jb250cm9sID09IG1z
KSB7DQotCQkJCQlyZXByaWV2ZSA9IDE7CS8qIHRoaXMgY29udHJvbCBjb25u
ZWN0aW9uIGNhbiBsaXZlIGEgYml0IGxvbmdlciAqLw0KLQkJCQkJaXBfbWFz
cV9zZXRfZXhwaXJlKG1zLCBpcF9tYXNxX2V4cGlyZS0+dGNwX3RpbWVvdXQp
Ow0KLSNpZmRlZiBERUJVR19DT05GSUdfSVBfTUFTUVVFUkFERQ0KLQkJCQkJ
cHJpbnRrKCJNYXNxdWVyYWRlIGNvbnRyb2wgJXMgJWxYOiVYIGV4cGlyeSBy
ZXByaWV2ZWRcbiIsDQotCQkJCQkJCW1hc3FfcHJvdG9fbmFtZShtcy0+cHJv
dG9jb2wpLA0KLQkJCQkJCQludG9obChtcy0+c2FkZHIpLG50b2hzKG1zLT5z
cG9ydCkpOw0KLSNlbmRpZg0KLQkJCQkJYnJlYWs7DQotCQkJCX0NCi0JCQl9
DQotCQl9DQotCQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCi0JCWlmIChyZXBy
aWV2ZSkNCi0JCQlyZXR1cm47DQorCS8qDQorCSAqCUFscmVhZHkgbG9ja2Vk
LCBkbyBib3VuY2UgLi4uDQorCSAqLw0KKwlpZiAoaXBfbWFzcV9ubG9ja3Mo
Jl9faXBfbWFzcV9sb2NrKSAhPSAxKSB7DQorCQlnb3RvIG1hc3FfZXhwaXJl
X2xhdGVyOw0KIAl9DQogDQorCS8qDQorCSAqIAlkbyBJIGNvbnRyb2wgYW55
Ym9keT8NCisJICovDQorCWlmIChhdG9taWNfcmVhZCgmbXMtPm5fY29udHJv
bCkpIA0KKwkJZ290byBtYXNxX2V4cGlyZV9sYXRlcjsNCisgICAgICAgIA0K
KwkvKiAJDQorCSAqCWRvZXMgYW55Ym9keSBjb250cm9scyBtZT8NCisJICov
DQorDQorCWlmIChtcy0+Y29udHJvbCkgDQorCQlpcF9tYXNxX2NvbnRyb2xf
ZGVsKG1zKTsNCisNCiAjaWZkZWYgREVCVUdfQ09ORklHX0lQX01BU1FVRVJB
REUNCiAJcHJpbnRrKCJNYXNxdWVyYWRlZCAlcyAlbFg6JVggZXhwaXJlZFxu
IixtYXNxX3Byb3RvX25hbWUobXMtPnByb3RvY29sKSxudG9obChtcy0+c2Fk
ZHIpLG50b2hzKG1zLT5zcG9ydCkpOw0KICNlbmRpZg0KIAkNCi0Jc2F2ZV9m
bGFncyhmbGFncyk7DQotCWNsaSgpOw0KIA0KICAgICAgICAgaWYgKGlwX21h
c3FfdW5oYXNoKG1zKSkgew0KICAgICAgICAgICAgICAgICBpcF9tYXNxX2Zy
ZWVfcG9ydHNbbWFzcV9wcm90b19udW0obXMtPnByb3RvY29sKV0rKzsNCkBA
IC01NzUsNyArNTc4LDE2IEBADQogICAgICAgICAgICAgICAgIGtmcmVlX3Mo
bXMsc2l6ZW9mKCptcykpOw0KICAgICAgICAgfQ0KIA0KLQlyZXN0b3JlX2Zs
YWdzKGZsYWdzKTsNCittYXNxX2V4cGlyZV9sYXRlcjoNCisJSVBfTUFTUV9E
RUJVRygibWFzcV9leHBpcmUgZGVsYXllZDogJXMgJTA4bFg6JTA0WC0+JTA4
bFg6JTA0WCBubG9ja3MtMT0lZCBtYXNxLm5fY29udHJvbD0lZFxuIiwNCisJ
CW1hc3FfcHJvdG9fbmFtZShtcy0+cHJvdG9jb2wpLA0KKwkJbnRvaGwobXMt
PnNhZGRyKSwgbnRvaHMobXMtPnNwb3J0KSwNCisJCW50b2hsKG1zLT5kYWRk
ciksIG50b2hzKG1zLT5kcG9ydCksDQorCQlpcF9tYXNxX25sb2NrcygmX19p
cF9tYXNxX2xvY2spLTEsDQorCQlhdG9taWNfcmVhZCgmbXMtPm5fY29udHJv
bCkpOw0KKw0KKwlpcF9tYXNxX3VubG9jaygmX19pcF9tYXNxX2xvY2ssIDEp
Ow0KKyAgICAgICAgaXBfbWFzcV9zZXRfZXhwaXJlKG1zLCBNQVNRVUVSQURF
X0VYUElSRV9SRVRSWSk7DQogfQ0KIA0KICNpZmRlZiBDT05GSUdfSVBfTUFT
UVVFUkFERV9JUEFVVE9GVw0KQEAgLTE1NDcsNiArMTU1OSw0OSBAQA0KICAJ
cmV0dXJuIDA7DQogfQ0KIA0KK3ZvaWQgaXBfbWFzcV9jb250cm9sX2FkZChz
dHJ1Y3QgaXBfbWFzcSAqbXMsIHN0cnVjdCBpcF9tYXNxKiBjdGxfbXMpDQor
ew0KKwlpZiAobXMtPmNvbnRyb2wpIHsNCisJCUlQX01BU1FfRVJSKCAicmVx
dWVzdCBjb250cm9sIEFERCBmb3IgYWxyZWFkeSBjb250cm9sbGVkOiAlZC4l
ZC4lZC4lZDolZCB0byAlZC4lZC4lZC4lZDolZFxuIiwNCisJCQkJTklQUVVB
RChtcy0+c2FkZHIpLG50b2hzKG1zLT5zcG9ydCksDQorCQkJCU5JUFFVQUQo
bXMtPmRhZGRyKSxudG9ocyhtcy0+ZHBvcnQpKTsNCisJCWlwX21hc3FfY29u
dHJvbF9kZWwobXMpOw0KKwl9DQorCUlQX01BU1FfREVCVUcoIkFERGluZyBj
b250cm9sIGZvcjogbXMuZHN0PSVkLiVkLiVkLiVkOiVkIGN0bF9tcy5kc3Q9
JWQuJWQuJWQuJWQ6JWRcbiIsDQorCQkJCU5JUFFVQUQobXMtPmRhZGRyKSxu
dG9ocyhtcy0+ZHBvcnQpLA0KKwkJCQlOSVBRVUFEKGN0bF9tcy0+ZGFkZHIp
LG50b2hzKGN0bF9tcy0+ZHBvcnQpKTsNCisJbXMtPmNvbnRyb2wgPSBjdGxf
bXM7DQorCWF0b21pY19pbmMoJmN0bF9tcy0+bl9jb250cm9sKTsNCit9DQor
DQordm9pZCBpcF9tYXNxX2NvbnRyb2xfZGVsKHN0cnVjdCBpcF9tYXNxICpt
cykNCit7DQorCXN0cnVjdCBpcF9tYXNxICpjdGxfbXMgPSBtcy0+Y29udHJv
bDsNCisJaWYgKCFjdGxfbXMpIHsNCisJCUlQX01BU1FfRVJSKCAicmVxdWVz
dCBjb250cm9sIERFTCBmb3IgdW5jb250cm9sbGVkOiAlZC4lZC4lZC4lZDol
ZCB0byAlZC4lZC4lZC4lZDolZFxuIiwNCisJCQkJTklQUVVBRChtcy0+c2Fk
ZHIpLG50b2hzKG1zLT5zcG9ydCksDQorCQkJCU5JUFFVQUQobXMtPmRhZGRy
KSxudG9ocyhtcy0+ZHBvcnQpKTsNCisJCQlyZXR1cm47DQorCX0NCisJSVBf
TUFTUV9ERUJVRygiREVMZXRpbmcgY29udHJvbCBmb3I6IG1zLmRzdD0lZC4l
ZC4lZC4lZDolZCBjdGxfbXMuZHN0PSVkLiVkLiVkLiVkOiVkXG4iLA0KKwkJ
CQlOSVBRVUFEKG1zLT5kYWRkciksbnRvaHMobXMtPmRwb3J0KSwNCisJCQkJ
TklQUVVBRChjdGxfbXMtPmRhZGRyKSxudG9ocyhjdGxfbXMtPmRwb3J0KSk7
DQorCW1zLT5jb250cm9sID0gTlVMTDsNCisJaWYgKGF0b21pY19yZWFkKCZj
dGxfbXMtPm5fY29udHJvbCkgPT0gMCkgew0KKwkJSVBfTUFTUV9FUlIoICJC
VUcgY29udHJvbCBERUwgd2l0aCBuPTAgOiAlZC4lZC4lZC4lZDolZCB0byAl
ZC4lZC4lZC4lZDolZFxuIiwNCisJCQkJTklQUVVBRChtcy0+c2FkZHIpLG50
b2hzKG1zLT5zcG9ydCksDQorCQkJCU5JUFFVQUQobXMtPmRhZGRyKSxudG9o
cyhtcy0+ZHBvcnQpKTsNCisJCQlyZXR1cm47DQorCQkNCisJfQ0KKwlhdG9t
aWNfZGVjKCZjdGxfbXMtPm5fY29udHJvbCk7DQorfQ0KKw0KK3N0cnVjdCBp
cF9tYXNxICogaXBfbWFzcV9jb250cm9sX2dldChzdHJ1Y3QgaXBfbWFzcSAq
bXMpDQorew0KKwlyZXR1cm4gbXMtPmNvbnRyb2w7DQorfQ0KKw0KIC8qDQog
ICoJL3Byb2MvbmV0IGVudHJpZXMNCiAgKi8NCkBAIC0xNjAxLDEwICsxNjU2
LDExIEBADQogew0KIAlvZmZfdCBwb3M9MCwgYmVnaW47DQogCXN0cnVjdCBp
cF9tYXNxICptczsNCi0JdW5zaWduZWQgbG9uZyBmbGFnczsNCiAJY2hhciB0
ZW1wWzEyOV07DQogICAgICAgICBpbnQgaWR4ID0gMDsNCiAJaW50IGxlbj0w
Ow0KKyAgICAgICAgDQorCWlwX21hc3FfbG9ja3ooJl9faXBfbWFzcV9sb2Nr
LCAmbWFzcV93YWl0LCAwKTsNCiAJDQogCWlmIChvZmZzZXQgPCAxMjgpIA0K
IAl7DQpAQCAtMTYyMCw4ICsxNjc2LDYgQEANCiAJCWxlbiA9IHNwcmludGYo
YnVmZmVyLCAiJS0xMjdzXG4iLCB0ZW1wKTsNCiAJfQ0KIAlwb3MgPSAxMjg7
DQotCXNhdmVfZmxhZ3MoZmxhZ3MpOw0KLQljbGkoKTsNCiAgICAgICAgIA0K
ICAgICAgICAgZm9yKGlkeCA9IDA7IGlkeCA8IElQX01BU1FfVEFCX1NJWkU7
IGlkeCsrKQ0KICAgICAgICAgZm9yKG1zID0gaXBfbWFzcV9tX3RhYltpZHhd
OyBtcyA7IG1zID0gbXMtPm1fbGluaykNCkBAIC0xNjUxLDcgKzE3MDUsOCBA
QA0KIAkJCWdvdG8gZG9uZTsNCiAgICAgICAgIH0NCiBkb25lOg0KLQlyZXN0
b3JlX2ZsYWdzKGZsYWdzKTsNCisJaXBfbWFzcV91bmxvY2t6KCZfX2lwX21h
c3FfbG9jaywgJm1hc3Ffd2FpdCwgMCk7DQorICAgICAgICANCiAJYmVnaW4g
PSBsZW4gLSAocG9zIC0gb2Zmc2V0KTsNCiAJKnN0YXJ0ID0gYnVmZmVyICsg
YmVnaW47DQogCWxlbiAtPSBiZWdpbjsNCi0tLSBsaW51eC9uZXQvaXB2NC9p
cF9tYXNxX2Z0cC5jLmRpc3QJVHVlIEFwciAgOCAxMjo0Nzo0NyAxOTk3DQor
KysgbGludXgvbmV0L2lwdjQvaXBfbWFzcV9mdHAuYwlNb24gRmViIDIzIDA5
OjA2OjM2IDE5OTgNCkBAIC0xLDE3ICsxLDE2IEBADQogLyoNCiAgKgkJSVBf
TUFTUV9GVFAgZnRwIG1hc3F1ZXJhZGluZyBtb2R1bGUNCiAgKg0KLSAqDQot
ICogVmVyc2lvbjoJQCgjKWlwX21hc3FfZnRwLmMgMC4wMSAgIDAyLzA1Lzk2
DQotICoNCiAgKiBBdXRob3I6CVdvdXRlciBHYWRleW5lDQogICoJCQ0KKyAq
IAkkSWQ6IGlwX21hc3FfZnRwLmMsdiAwLjMgMTk5OC8wMi8yMyAxMTo0Njoz
NiBqam8gRXhwIGpqbyAkCQ0KICAqDQogICogRml4ZXM6DQogICoJV291dGVy
IEdhZGV5bmUJCToJRml4ZWQgbWFzcXVlcmFkaW5nIHN1cHBvcnQgb2YgZnRw
IFBPUlQgY29tbWFuZHMNCiAgKiAJSnVhbiBKb3NlIENpYXJsYW50ZQk6CUNv
ZGUgbW92ZWQgYW5kIGFkYXB0ZWQgZnJvbSBpcF9mdy5jDQogICogCUtlaXRo
IE93ZW5zCQk6CUFkZCBrZWVwIGFsaXZlIGZvciBmdHAgY29udHJvbCBjaGFu
bmVsDQogICoJTmlnZWwgTWV0aGVyaW5naGFtCToJQWRkZWQgbXVsdGlwbGUg
cG9ydCBzdXBwb3J0DQorICoJSnVhbiBKb3NlIENpYXJsYW50ZQk6CXVzZSBp
cF9tYXNxX2NvbnRyb2xfeHh4IGZ1bmN0aW9ucw0KICAqCQ0KICAqDQogICoN
CkBAIC0xNDYsOCArMTQ1LDcgQEANCiAJCQkJCQ0KIAkJCWlmIChuX21zPT1O
VUxMKQ0KIAkJCQlyZXR1cm4gMDsNCi0JCQluX21zLT5jb250cm9sID0gbXM7
CQkvKiBrZWVwYWxpdmUgZnJvbSBkYXRhIHRvIHRoZSBjb250cm9sIGNoYW5u
ZWwgKi8NCi0JCQltcy0+ZmxhZ3MgfD0gSVBfTUFTUV9GX0NPTlRST0w7CS8q
IHRoaXMgaXMgYSBjb250cm9sIGNoYW5uZWwgKi8NCisgICAgICAgICAgICAg
ICAgICAgICAgICBpcF9tYXNxX2NvbnRyb2xfYWRkKG5fbXMsIG1zKTsNCiAJ
CX0NCiANCiAgICAgICAgICAgICAgICAgLyoNCkBAIC0yODUsOCArMjgzLDgg
QEANCiANCiAJCWlmIChuX21zPT1OVUxMKQ0KIAkJCXJldHVybiAwOw0KLQkJ
bl9tcy0+Y29udHJvbCA9IG1zOwkJLyoga2VlcGFsaXZlIGZyb20gZGF0YSB0
byB0aGUgY29udHJvbCBjaGFubmVsICovDQotCQltcy0+ZmxhZ3MgfD0gSVBf
TUFTUV9GX0NPTlRST0w7CS8qIHRoaXMgaXMgYSBjb250cm9sIGNoYW5uZWwg
Ki8NCisgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIGlwX21h
c3FfY29udHJvbF9hZGQobl9tcywgbXMpOw0KIAl9DQogDQogCS8qDQotLS0g
bGludXgvbmV0L2lwdjQvaXBfZncuYy5kaXN0CVR1ZSBBdWcgMTIgMTU6MzA6
MjggMTk5Nw0KKysrIGxpbnV4L25ldC9pcHY0L2lwX2Z3LmMJTW9uIEZlYiAy
MyAwOTowODoxNCAxOTk4DQpAQCAtOTMzLDExICs5MzMsMTUgQEANCiAJCQlp
ZiAocHJldikNCiAJCQl7DQogCQkJCXByZXYtPm5leHQ9Y3Vyci0+bmV4dDsN
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyLT5m
bGFncyZJUF9BVVRPRldfQUNUSVZFKQ0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWxfdGltZXIoJmN1cnItPnRpbWVyKTsN
CiAJIAkJCWtmcmVlX3MoY3VycixzaXplb2Yoc3RydWN0IGlwX2F1dG9mdykp
Ow0KIAkJCQlyZXR1cm4oMCk7DQogCQkJfQ0KIAkJCWVsc2UNCiAJCQl7DQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXBfYXV0b2Z3
X2hvc3RzLT5mbGFncyZJUF9BVVRPRldfQUNUSVZFKQ0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxfdGltZXIoJmlwX2F1
dG9md19ob3N0cy0+dGltZXIpOw0KIAkgCQkJa2ZyZWVfcyhpcF9hdXRvZndf
aG9zdHMsc2l6ZW9mKHN0cnVjdCBpcF9hdXRvZncpKTsNCiAJCQkJaXBfYXV0
b2Z3X2hvc3RzPWN1cnItPm5leHQ7DQogCQkJCXJldHVybigwKTsNCkBAIC05
NTYsNiArOTYwLDggQEANCiAJew0KIAkJYWY9aXBfYXV0b2Z3X2hvc3RzOw0K
IAkJaXBfYXV0b2Z3X2hvc3RzPWlwX2F1dG9md19ob3N0cy0+bmV4dDsNCisJ
CWlmIChhZi0+ZmxhZ3MmSVBfQVVUT0ZXX0FDVElWRSkNCisJCQlkZWxfdGlt
ZXIoJmFmLT50aW1lcik7DQogCQlrZnJlZV9zKGFmLHNpemVvZihzdHJ1Y3Qg
aXBfYXV0b2Z3KSk7DQogCX0NCiAJcmV0dXJuKDApOw0K
---1463809278-1955317287-888250840=:781--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu