[PATCH] userspace access in net-ioctl()s.

Daniel Kobras (daniel.kobras@student.uni-tuebingen.de)
Thu, 7 Jan 1999 04:21:52 +0100 (CET)


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.

---1463800988-1633887241-915679312=:196
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,

I hope I'm not missing something here... Recently when messing around with
my network card, I found the ioctl routine in rtl8139.c needed some
copy_(from|to)_user() calls to behave the way I'd expected it to. Digging
a little bit further, I found the same in various other ioctl()-code in
drivers/net/. Patch is attached. I'm pretty sure it does the Right
Thing[TM] for me in the rtl8139.c case, couldn't test the others though so
please check.

Thanks,

Daniel.

---1463800988-1633887241-915679312=:196
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=net-patch
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.990107042152.196B@abulafia>
Content-Description:

LS0tIGRyaXZlcnMvbmV0LzNjNTl4LmMub3JpZwlUaHUgSmFuICA3IDAyOjAw
OjQ5IDE5OTkNCisrKyBkcml2ZXJzL25ldC8zYzU5eC5jCVRodSBKYW4gIDcg
MDI6NTc6MzcgMTk5OQ0KQEAgLTgzLDYgKzgzLDcgQEANCiAjaW5jbHVkZSA8
YXNtL2lycS5oPgkJCS8qIEZvciBOUl9JUlFTIG9ubHkuICovDQogI2luY2x1
ZGUgPGFzbS9iaXRvcHMuaD4NCiAjaW5jbHVkZSA8YXNtL2lvLmg+DQorI2lu
Y2x1ZGUgPGFzbS91YWNjZXNzLmg+DQogDQogI2luY2x1ZGUgPGxpbnV4L25l
dGRldmljZS5oPg0KICNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPg0K
QEAgLTIwMDMsOSArMjAwNCwxMiBAQA0KIHsNCiAJc3RydWN0IHZvcnRleF9w
cml2YXRlICp2cCA9IChzdHJ1Y3Qgdm9ydGV4X3ByaXZhdGUgKilkZXYtPnBy
aXY7DQogCWludCBpb2FkZHIgPSBkZXYtPmJhc2VfYWRkcjsNCi0JdTE2ICpk
YXRhID0gKHUxNiAqKSZycS0+aWZyX2RhdGE7DQorCXUxNiBkYXRhWzRdOw0K
IAlpbnQgcGh5ID0gdnAtPnBoeXNbMF0gJiAweDFmOw0KIA0KKwlpZiAoY29w
eV9mcm9tX3VzZXIoZGF0YSxycS0+aWZyX2RhdGEsOCkpDQorCQlyZXR1cm4g
LUVGQVVMVDsNCisJDQogCWlmICh2b3J0ZXhfZGVidWcgPiAyKQ0KIAkJcHJp
bnRrKEtFUk5fREVCVUcgIiVzOiBJbiBpb2N0KCUtLjZzLCAlIzQuNHgpICU0
LjR4ICU0LjR4ICU0LjR4ICU0LjR4LlxuIiwNCiAJCQkgICBkZXYtPm5hbWUs
IHJxLT5pZnJfaWZybi5pZnJuX25hbWUsIGNtZCwNCkBAIC0yMDE3LDkgKzIw
MjEsMTEgQEANCiAJY2FzZSBTSU9DREVWUFJJVkFURSsxOgkJLyogUmVhZCB0
aGUgc3BlY2lmaWVkIE1JSSByZWdpc3Rlci4gKi8NCiAJCUVMM1dJTkRPVyg0
KTsNCiAJCWRhdGFbM10gPSBtZGlvX3JlYWQoaW9hZGRyLCBkYXRhWzBdICYg
MHgxZiwgZGF0YVsxXSAmIDB4MWYpOw0KKwkJaWYgKGNvcHlfdG9fdXNlcihy
cS0+aWZyX2RhdGEsZGF0YSw4KSkNCisJCQlyZXR1cm4gLUVGQVVMVDsNCiAJ
CXJldHVybiAwOw0KIAljYXNlIFNJT0NERVZQUklWQVRFKzI6CQkvKiBXcml0
ZSB0aGUgc3BlY2lmaWVkIE1JSSByZWdpc3RlciAqLw0KLQkJaWYgKCFzdXNl
cigpKQ0KKwkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURNSU4pKQ0KIAkJCXJl
dHVybiAtRVBFUk07DQogCQltZGlvX3dyaXRlKGlvYWRkciwgZGF0YVswXSAm
IDB4MWYsIGRhdGFbMV0gJiAweDFmLCBkYXRhWzJdKTsNCiAJCXJldHVybiAw
Ow0KLS0tIGRyaXZlcnMvbmV0L2VlcHJvMTAwLmMub3JpZwlUaHUgSmFuICA3
IDAyOjI4OjQ3IDE5OTkNCisrKyBkcml2ZXJzL25ldC9lZXBybzEwMC5jCVRo
dSBKYW4gIDcgMDI6MzA6NTIgMTk5OQ0KQEAgLTYyLDYgKzYyLDcgQEANCiAj
aW5jbHVkZSA8YXNtL3NwaW5sb2NrLmg+DQogI2luY2x1ZGUgPGFzbS9iaXRv
cHMuaD4NCiAjaW5jbHVkZSA8YXNtL2lvLmg+DQorI2luY2x1ZGUgPGFzbS91
YWNjZXNzLmg+DQogDQogLyoNCiAgKiBNb2R1bGUgZG9jdW1lbnRhdGlvbg0K
QEAgLTEzNzQsMTQgKzEzNzUsMTkgQEANCiB7DQogCXN0cnVjdCBzcGVlZG9f
cHJpdmF0ZSAqc3AgPSAoc3RydWN0IHNwZWVkb19wcml2YXRlICopZGV2LT5w
cml2Ow0KIAlsb25nIGlvYWRkciA9IGRldi0+YmFzZV9hZGRyOw0KLQl1MTYg
KmRhdGEgPSAodTE2ICopJnJxLT5pZnJfZGF0YTsNCisJdTE2IGRhdGFbNF07
DQogCWludCBwaHkgPSBzcC0+cGh5WzBdICYgMHgxZjsNCiANCisJaWYgKGNv
cHlfZnJvbV91c2VyKGRhdGEscnEtPmlmcl9kYXRhLDgpKQ0KKwkJcmV0dXJu
IC1FRkFVTFQ7DQorCQ0KICAgICBzd2l0Y2goY21kKSB7DQogCWNhc2UgU0lP
Q0RFVlBSSVZBVEU6CQkvKiBHZXQgdGhlIGFkZHJlc3Mgb2YgdGhlIFBIWSBp
biB1c2UuICovDQogCQlkYXRhWzBdID0gcGh5Ow0KIAljYXNlIFNJT0NERVZQ
UklWQVRFKzE6CQkvKiBSZWFkIHRoZSBzcGVjaWZpZWQgTUlJIHJlZ2lzdGVy
LiAqLw0KIAkJZGF0YVszXSA9IG1kaW9fcmVhZChpb2FkZHIsIGRhdGFbMF0s
IGRhdGFbMV0pOw0KKwkJaWYgKGNvcHlfdG9fdXNlcihycS0+aWZyX2RhdGEs
ZGF0YSw4KSkNCisJCQlyZXR1cm4gLUVGQVVMVDsNCiAJCXJldHVybiAwOw0K
IAljYXNlIFNJT0NERVZQUklWQVRFKzI6CQkvKiBXcml0ZSB0aGUgc3BlY2lm
aWVkIE1JSSByZWdpc3RlciAqLw0KIAkJaWYgKCFjYXBhYmxlKENBUF9ORVRf
QURNSU4pKQ0KLS0tIGRyaXZlcnMvbmV0L2VwaWMxMDAuYy5vcmlnCVRodSBK
YW4gIDcgMDI6MzE6MDMgMTk5OQ0KKysrIGRyaXZlcnMvbmV0L2VwaWMxMDAu
YwlUaHUgSmFuICA3IDAyOjM1OjA4IDE5OTkNCkBAIC03OCw2ICs3OCw3IEBA
DQogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4NCiAjaW5jbHVkZSA8YXNtL2lv
Lmg+DQogI2luY2x1ZGUgPGFzbS9kbWEuaD4NCisjaW5jbHVkZSA8YXNtL3Vh
Y2Nlc3MuaD4NCiANCiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+DQog
I2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+DQpAQCAtMTI3NSw3ICsx
Mjc2LDEwIEBADQogc3RhdGljIGludCBtaWlfaW9jdGwoc3RydWN0IGRldmlj
ZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKnJxLCBpbnQgY21kKQ0KIHsNCiAJbG9u
ZyBpb2FkZHIgPSBkZXYtPmJhc2VfYWRkcjsNCi0JdTE2ICpkYXRhID0gKHUx
NiAqKSZycS0+aWZyX2RhdGE7DQorCXUxNiBkYXRhWzRdOw0KKwkNCisJaWYg
KGNvcHlfZnJvbV91c2VyKGRhdGEscnEtPmlmcl9kYXRhLDgpKQ0KKwkJcmV0
dXJuIC1FRkFVTFQ7DQogDQogCXN3aXRjaChjbWQpIHsNCiAJY2FzZSBTSU9D
REVWUFJJVkFURToJCS8qIEdldCB0aGUgYWRkcmVzcyBvZiB0aGUgUEhZIGlu
IHVzZS4gKi8NCkBAIC0xMjkzLDkgKzEyOTcsMTEgQEANCiAJCQlvdXRsKChp
bmwoaW9hZGRyICsgTlZDVEwpICYgfjB4NDgzQykgfCAweDAwMDAsIGlvYWRk
ciArIE5WQ1RMKTsNCiAjZW5kaWYNCiAJCX0NCisJCWlmIChjb3B5X3RvX3Vz
ZXIocnEtPmlmcl9kYXRhLGRhdGEsOCkpDQorCQkJcmV0dXJuIC1FRkFVTFQ7
DQogCQlyZXR1cm4gMDsNCiAJY2FzZSBTSU9DREVWUFJJVkFURSsyOgkJLyog
V3JpdGUgdGhlIHNwZWNpZmllZCBNSUkgcmVnaXN0ZXIgKi8NCi0JCWlmICgh
c3VzZXIoKSkNCisJCWlmICghY2FwYWJsZShDQVBfTkVUX0FETUlOKSkNCiAJ
CQlyZXR1cm4gLUVQRVJNOw0KIAkJaWYgKCEgZGV2LT5zdGFydCkgew0KIAkJ
CW91dGwoMHgwMjAwLCBpb2FkZHIgKyBHRU5DVEwpOw0KLS0tIGRyaXZlcnMv
bmV0L3BsaXAuYy5vcmlnCVRodSBKYW4gIDcgMDI6NDQ6NDggMTk5OQ0KKysr
IGRyaXZlcnMvbmV0L3BsaXAuYwlUaHUgSmFuICA3IDAzOjAzOjE4IDE5OTkN
CkBAIC0xMDgsNiArMTA4LDcgQEANCiAjaW5jbHVkZSA8YXNtL2lycS5oPg0K
ICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+DQogI2luY2x1ZGUgPGFzbS9z
cGlubG9jay5oPg0KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KIA0KICNp
bmNsdWRlIDxsaW51eC9wYXJwb3J0Lmg+DQogDQpAQCAtMTExMSwxNiArMTEx
MiwyMSBAQA0KIHBsaXBfaW9jdGwoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1
Y3QgaWZyZXEgKnJxLCBpbnQgY21kKQ0KIHsNCiAJc3RydWN0IG5ldF9sb2Nh
bCAqbmwgPSAoc3RydWN0IG5ldF9sb2NhbCAqKSBkZXYtPnByaXY7DQotCXN0
cnVjdCBwbGlwY29uZiAqcGMgPSAoc3RydWN0IHBsaXBjb25mICopICZycS0+
aWZyX2RhdGE7DQorCXN0cnVjdCBwbGlwY29uZiBwYzsNCiANCi0Jc3dpdGNo
KHBjLT5wY21kKSB7DQorCWlmIChjb3B5X2Zyb21fdXNlcigmcGMscnEtPmlm
cl9kYXRhLHNpemVvZihzdHJ1Y3QgcGxpcGNvbmYpKSkNCisJCXJldHVybiAt
RUZBVUxUOw0KKw0KKwlzd2l0Y2gocGMucGNtZCkgew0KIAljYXNlIFBMSVBf
R0VUX1RJTUVPVVQ6DQotCQlwYy0+dHJpZ2dlciA9IG5sLT50cmlnZ2VyOw0K
LQkJcGMtPm5pYmJsZSAgPSBubC0+bmliYmxlOw0KKwkJcGMudHJpZ2dlciA9
IG5sLT50cmlnZ2VyOw0KKwkJcGMubmliYmxlICA9IG5sLT5uaWJibGU7DQor
CQlpZiAoY29weV90b191c2VyKHJxLT5pZnJfZGF0YSwmcGMsc2l6ZW9mKHN0
cnVjdCBwbGlwY29uZikpKQ0KKwkJCXJldHVybiAtRUZBVUxUOw0KIAkJYnJl
YWs7DQogCWNhc2UgUExJUF9TRVRfVElNRU9VVDoNCi0JCW5sLT50cmlnZ2Vy
ID0gcGMtPnRyaWdnZXI7DQotCQlubC0+bmliYmxlICA9IHBjLT5uaWJibGU7
DQorCQlubC0+dHJpZ2dlciA9IHBjLnRyaWdnZXI7DQorCQlubC0+bmliYmxl
ICA9IHBjLm5pYmJsZTsNCiAJCWJyZWFrOw0KIAlkZWZhdWx0Og0KIAkJcmV0
dXJuIC1FT1BOT1RTVVBQOw0KLS0tIGRyaXZlcnMvbmV0L3J0bDgxMzkuYy5v
cmlnCUZyaSBKYW4gIDEgMDI6MjU6NTkgMTk5OQ0KKysrIGRyaXZlcnMvbmV0
L3J0bDgxMzkuYwlUaHUgSmFuICA3IDAzOjAwOjA1IDE5OTkNCkBAIC03Myw2
ICs3Myw3IEBADQogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4JCS8qIFBy
b2Nlc3NvciB0eXBlIGZvciBjYWNoZSBhbGlnbm1lbnQuICovDQogI2luY2x1
ZGUgPGFzbS9iaXRvcHMuaD4NCiAjaW5jbHVkZSA8YXNtL2lvLmg+DQorI2lu
Y2x1ZGUgPGFzbS91YWNjZXNzLmg+DQogDQogLyogS2VybmVsIGNvbXBhdGli
aWxpdHkgZGVmaW5lcywgc29tZSBjb21tb24gdG8gRGF2aWQgSGluZCdzIFBD
TUNJQSBwYWNrYWdlLg0KICAgIFRoaXMgaXMgb25seSBpbiB0aGUgc3VwcG9y
dC1hbGwta2VybmVscyBzb3VyY2UgY29kZS4gKi8NCkBAIC0xMjc3LDcgKzEy
NzgsMTAgQEANCiBzdGF0aWMgaW50IG1paV9pb2N0bChzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQpDQogew0KIAlzdHJ1
Y3QgcnRsODEyOV9wcml2YXRlICp0cCA9IChzdHJ1Y3QgcnRsODEyOV9wcml2
YXRlICopZGV2LT5wcml2Ow0KLQl1MTYgKmRhdGEgPSAodTE2ICopJnJxLT5p
ZnJfZGF0YTsNCisJdTE2IGRhdGFbNF07DQorDQorCWlmIChjb3B5X2Zyb21f
dXNlcihkYXRhLHJxLT5pZnJfZGF0YSw4KSkNCisJCXJldHVybiAtRUZBVUxU
Ow0KIA0KIAlzd2l0Y2goY21kKSB7DQogCWNhc2UgU0lPQ0RFVlBSSVZBVEU6
CQkvKiBHZXQgdGhlIGFkZHJlc3Mgb2YgdGhlIFBIWSBpbiB1c2UuICovDQpA
QCAtMTI4NSwxMSArMTI4OSwxMyBAQA0KIAkJLyogRmFsbCBUaHJvdWdoICov
DQogCWNhc2UgU0lPQ0RFVlBSSVZBVEUrMToJCS8qIFJlYWQgdGhlIHNwZWNp
ZmllZCBNSUkgcmVnaXN0ZXIuICovDQogCQlkYXRhWzNdID0gbWRpb19yZWFk
KGRldiwgZGF0YVswXSAmIDB4MWYsIGRhdGFbMV0gJiAweDFmKTsNCisJCWlm
IChjb3B5X3RvX3VzZXIocnEtPmlmcl9kYXRhLGRhdGEsOCkpDQorCQkJcmV0
dXJuIC1FRkFVTFQ7DQogCQlyZXR1cm4gMDsNCiAJY2FzZSBTSU9DREVWUFJJ
VkFURSsyOgkJLyogV3JpdGUgdGhlIHNwZWNpZmllZCBNSUkgcmVnaXN0ZXIg
Ki8NCi0JCWlmICghc3VzZXIoKSkNCisJCWlmICghY2FwYWJsZShDQVBfTkVU
X0FETUlOKSkNCiAJCQlyZXR1cm4gLUVQRVJNOw0KLQkJbWRpb193cml0ZShk
ZXYsIGRhdGFbMF0gJiAweDFmLCBkYXRhWzFdICYgMHgxZiwgZGF0YVsyXSk7
DQorCQltZGlvX3dyaXRlKGRldiwgZGF0YVswXSAmIDB4M2YsIGRhdGFbMV0g
JiAweDFmLCBkYXRhWzJdKTsNCiAJCXJldHVybiAwOw0KIAlkZWZhdWx0Og0K
IAkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KLS0tIGRyaXZlcnMvbmV0L3NoYXBl
ci5jLm9yaWcJVGh1IEphbiAgNyAwMjo0NToxOCAxOTk5DQorKysgZHJpdmVy
cy9uZXQvc2hhcGVyLmMJVGh1IEphbiAgNyAwMzowMjozNiAxOTk5DQpAQCAt
NzIsNiArNzIsNyBAQA0KICNpbmNsdWRlIDxuZXQvZHN0Lmg+DQogI2luY2x1
ZGUgPG5ldC9hcnAuaD4NCiAjaW5jbHVkZSA8bGludXgvaWZfc2hhcGVyLmg+
DQorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+DQogDQogaW50IHNoX2RlYnVn
OwkJLyogRGVidWcgZmxhZyAqLw0KIA0KQEAgLTU1MywxMyArNTU0LDE3IEBA
DQogDQogc3RhdGljIGludCBzaGFwZXJfaW9jdGwoc3RydWN0IGRldmljZSAq
ZGV2LCAgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpDQogew0KLQlzdHJ1
Y3Qgc2hhcGVyY29uZiAqc3M9IChzdHJ1Y3Qgc2hhcGVyY29uZiAqKSZpZnIt
Pmlmcl9kYXRhOw0KKwlzdHJ1Y3Qgc2hhcGVyY29uZiBzczsNCiAJc3RydWN0
IHNoYXBlciAqc2g9ZGV2LT5wcml2Ow0KLQlzd2l0Y2goc3MtPnNzX2NtZCkN
CisNCisJaWYgKGNvcHlfZnJvbV91c2VyKCZzcyxpZnItPmlmcl9kYXRhLHNp
emVvZihzdHJ1Y3Qgc2hhcGVyY29uZikpKQ0KKwkJcmV0dXJuIC1FRkFVTFQ7
DQorCQ0KKwlzd2l0Y2goc3Muc3NfY21kKQ0KIAl7DQogCQljYXNlIFNIQVBF
Ul9TRVRfREVWOg0KIAkJew0KLQkJCXN0cnVjdCBkZXZpY2UgKnRoZW09ZGV2
X2dldChzcy0+c3NfbmFtZSk7DQorCQkJc3RydWN0IGRldmljZSAqdGhlbT1k
ZXZfZ2V0KHNzLnNzX25hbWUpOw0KIAkJCWlmKHRoZW09PU5VTEwpDQogCQkJ
CXJldHVybiAtRU5PREVWOw0KIAkJCWlmKHNoLT5kZXYpDQpAQCAtNTY5LDEz
ICs1NzQsMTggQEANCiAJCWNhc2UgU0hBUEVSX0dFVF9ERVY6DQogCQkJaWYo
c2gtPmRldj09TlVMTCkNCiAJCQkJcmV0dXJuIC1FTk9ERVY7DQotCQkJc3Ry
Y3B5KHNzLT5zc19uYW1lLCBzaC0+ZGV2LT5uYW1lKTsNCisJCQlzdHJjcHko
c3Muc3NfbmFtZSwgc2gtPmRldi0+bmFtZSk7DQorCQkJaWYgKGNvcHlfdG9f
dXNlcihpZnItPmlmcl9kYXRhLCZzcyxzaXplb2Yoc3RydWN0IHNoYXBlcmNv
bmYpKSkNCisJCQkJcmV0dXJuIC1FRkFVTFQ7DQogCQkJcmV0dXJuIDA7DQog
CQljYXNlIFNIQVBFUl9TRVRfU1BFRUQ6DQotCQkJc2hhcGVyX3NldHNwZWVk
KHNoLHNzLT5zc19zcGVlZCk7DQorCQkJc2hhcGVyX3NldHNwZWVkKHNoLHNz
LnNzX3NwZWVkKTsNCiAJCQlyZXR1cm4gMDsNCiAJCWNhc2UgU0hBUEVSX0dF
VF9TUEVFRDoNCi0JCQlzcy0+c3Nfc3BlZWQ9c2gtPmJpdHNwZXJzZWM7DQor
CQkJc3Muc3Nfc3BlZWQ9c2gtPmJpdHNwZXJzZWM7DQorCQkJaWYgKGNvcHlf
dG9fdXNlcihpZnItPmlmcl9kYXRhLCZzcyxzaXplb2Yoc3RydWN0IHNoYXBl
cmNvbmYpKSkNCisJCQkJcmV0dXJuIC1FRkFVTFQ7DQorCQkJDQogCQkJcmV0
dXJuIDA7DQogCQlkZWZhdWx0Og0KIAkJCXJldHVybiAtRUlOVkFMOw0KLS0t
IGRyaXZlcnMvbmV0L3ZpYS1yaGluZS5jLm9yaWcJVGh1IEphbiAgNyAwMjo1
MDowMSAxOTk5DQorKysgZHJpdmVycy9uZXQvdmlhLXJoaW5lLmMJVGh1IEph
biAgNyAwMjo1Mjo0OCAxOTk5DQpAQCAtNzksNiArNzksNyBAQA0KICNpbmNs
dWRlIDxhc20vcHJvY2Vzc29yLmg+CQkvKiBQcm9jZXNzb3IgdHlwZSBmb3Ig
Y2FjaGUgYWxpZ25tZW50LiAqLw0KICNpbmNsdWRlIDxhc20vYml0b3BzLmg+
DQogI2luY2x1ZGUgPGFzbS9pby5oPg0KKyNpbmNsdWRlIDxhc20vdWFjY2Vz
cy5oPg0KIA0KIC8qIFRoaXMgZHJpdmVyIHdhcyB3cml0dGVuIHRvIHVzZSBQ
Q0kgbWVtb3J5IHNwYWNlLCBob3dldmVyIHNvbWUgYm9hcmRzDQogICAgb25s
eSB3b3JrIHdpdGggSS9PIHNwYWNlIGFjY2Vzc2VzLiAqLw0KQEAgLTExODcs
MTcgKzExODgsMjIgQEANCiANCiBzdGF0aWMgaW50IG1paV9pb2N0bChzdHJ1
Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQpDQog
ew0KLQl1MTYgKmRhdGEgPSAodTE2ICopJnJxLT5pZnJfZGF0YTsNCisJdTE2
IGRhdGFbNF07DQogDQorCWlmIChjb3B5X2Zyb21fdXNlcihkYXRhLHJxLT5p
ZnJfZGF0YSw4KSkNCisJCXJldHVybiAtRUZBVUxUOw0KKwkNCiAJc3dpdGNo
KGNtZCkgew0KIAljYXNlIFNJT0NERVZQUklWQVRFOgkJLyogR2V0IHRoZSBh
ZGRyZXNzIG9mIHRoZSBQSFkgaW4gdXNlLiAqLw0KIAkJZGF0YVswXSA9ICgo
c3RydWN0IG5ldGRldl9wcml2YXRlICopZGV2LT5wcml2KS0+cGh5c1swXSAm
IDB4MWY7DQogCQkvKiBGYWxsIFRocm91Z2ggKi8NCiAJY2FzZSBTSU9DREVW
UFJJVkFURSsxOgkJLyogUmVhZCB0aGUgc3BlY2lmaWVkIE1JSSByZWdpc3Rl
ci4gKi8NCiAJCWRhdGFbM10gPSBtZGlvX3JlYWQoZGV2LCBkYXRhWzBdICYg
MHgxZiwgZGF0YVsxXSAmIDB4MWYpOw0KKwkJaWYgKGNvcHlfdG9fdXNlcihy
cS0+aWZyX2RhdGEsZGF0YSw4KSkNCisJCQlyZXR1cm4gLUVGQVVMVDsNCiAJ
CXJldHVybiAwOw0KIAljYXNlIFNJT0NERVZQUklWQVRFKzI6CQkvKiBXcml0
ZSB0aGUgc3BlY2lmaWVkIE1JSSByZWdpc3RlciAqLw0KLQkJaWYgKCFzdXNl
cigpKQ0KKwkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURNSU4pKQ0KIAkJCXJl
dHVybiAtRVBFUk07DQogCQltZGlvX3dyaXRlKGRldiwgZGF0YVswXSAmIDB4
MWYsIGRhdGFbMV0gJiAweDFmLCBkYXRhWzJdKTsNCiAJCXJldHVybiAwOw0K
LS0tIGRyaXZlcnMvbmV0L3llbGxvd2Zpbi5jLm9yaWcJVGh1IEphbiAgNyAw
Mjo1MzowMiAxOTk5DQorKysgZHJpdmVycy9uZXQveWVsbG93ZmluLmMJVGh1
IEphbiAgNyAwMjo1NDozMiAxOTk5DQpAQCAtNzcsNiArNzcsNyBAQA0KICNp
bmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CQkvKiBQcm9jZXNzb3IgdHlwZSBm
b3IgY2FjaGUgYWxpZ25tZW50LiAqLw0KICNpbmNsdWRlIDxhc20vYml0b3Bz
Lmg+DQogI2luY2x1ZGUgPGFzbS9pby5oPg0KKyNpbmNsdWRlIDxhc20vdWFj
Y2Vzcy5oPg0KIA0KICNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4NCiAj
aW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4NCkBAIC0xMzUzLDE3ICsx
MzU0LDIyIEBADQogc3RhdGljIGludCBtaWlfaW9jdGwoc3RydWN0IGRldmlj
ZSAqZGV2LCBzdHJ1Y3QgaWZyZXEgKnJxLCBpbnQgY21kKQ0KIHsNCiAJbG9u
ZyBpb2FkZHIgPSBkZXYtPmJhc2VfYWRkcjsNCi0JdTE2ICpkYXRhID0gKHUx
NiAqKSZycS0+aWZyX2RhdGE7DQorCXUxNiBkYXRhWzRdOw0KIA0KKwlpZiAo
Y29weV9mcm9tX3VzZXIoZGF0YSxycS0+aWZyX2RhdGEsOCkpDQorCQlyZXR1
cm4gLUVGQVVMVDsNCisJDQogCXN3aXRjaChjbWQpIHsNCiAJY2FzZSBTSU9D
REVWUFJJVkFURToJCS8qIEdldCB0aGUgYWRkcmVzcyBvZiB0aGUgUEhZIGlu
IHVzZS4gKi8NCiAJCWRhdGFbMF0gPSAoKHN0cnVjdCB5ZWxsb3dmaW5fcHJp
dmF0ZSAqKWRldi0+cHJpdiktPnBoeXNbMF0gJiAweDFmOw0KIAkJLyogRmFs
bCBUaHJvdWdoICovDQogCWNhc2UgU0lPQ0RFVlBSSVZBVEUrMToJCS8qIFJl
YWQgdGhlIHNwZWNpZmllZCBNSUkgcmVnaXN0ZXIuICovDQogCQlkYXRhWzNd
ID0gbWRpb19yZWFkKGlvYWRkciwgZGF0YVswXSAmIDB4MWYsIGRhdGFbMV0g
JiAweDFmKTsNCisJCWlmIChjb3B5X3RvX3VzZXIocnEtPmlmcl9kYXRhLGRh
dGEsOCkpDQorCQkJcmV0dXJuIC1FRkFVTFQ7DQogCQlyZXR1cm4gMDsNCiAJ
Y2FzZSBTSU9DREVWUFJJVkFURSsyOgkJLyogV3JpdGUgdGhlIHNwZWNpZmll
ZCBNSUkgcmVnaXN0ZXIgKi8NCi0JCWlmICghc3VzZXIoKSkNCisJCWlmICgh
Y2FwYWJsZShDQVBfTkVUX0FETUlOKSkNCiAJCQlyZXR1cm4gLUVQRVJNOw0K
IAkJbWRpb193cml0ZShpb2FkZHIsIGRhdGFbMF0gJiAweDFmLCBkYXRhWzFd
ICYgMHgxZiwgZGF0YVsyXSk7DQogCQlyZXR1cm4gMDsNCg==
---1463800988-1633887241-915679312=:196--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/