[patch] exec-argsize-2.4.10-A3

Ingo Molnar (mingo@elte.hu)
Thu, 27 Sep 2001 10:13:42 +0200 (CEST)


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.

--8323328-1708323492-1001578422=:2745
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Wed, 26 Sep 2001, Kiril Vidimce wrote:

> Is there any way to reconfigure the kernel at runtime to change the
> limit for arguments passed during an exec? [...]

include/linux/binfmts.h's MAX_ARG_PAGES define limits exec() arguments to
128k on systems with 4k pages, 256k on systems with 8k pages. Since this
define is used in the linux_binprm structure to define a static array,
there is no natural way (ioctl()) to change it runtime.

i've written a patch (attached) for 2.4.10 that implements runtime execve
argument size via /proc/sys/vm/exec-argsize. The patch also cleans up
do_execve() to be more compact. The latest versions of the patch are also
available at:

http://redhat.com/~mingo/execve-patches/

You can change the exec-argsize sysctl to any reasonable value - the
kernel will allocate at least 4 KB argument size, which is more than
enough to change the value back to a more reasonable value :) The
theoretical upper limit on x86 systems is 128 MB, due to kmalloc()
limitations. (but there might be other, mapping or sizing limitations in
libc or bash.)

systems with many users might want to set exec-argsize to a lower value
than the default.

i've tested the patch against vanilla 2.4.10 and it works just fine on
x86. A good testcase is:

ls -d `find /usr/src/linux/`

this runs just fine on my system if max-argsize is set to 1 MB.

I've seen no memory leaks in error cases either. Due to the extra
kmalloc(), execve is slower by 1-2 microseconds, but i think this is well
worth the flexibility - especially considering that execve() often takes
several milliseconds to finish.

note 1: This version of exec() gets sensitive to VM fragmentation above an
argument size is bigger than ~4MB - this is the size when the pages-array
gets larger than 4 KB, and kmalloc() uses higher-order page allocations.

note 2: it's safe to change the exec-argsize parameter in while exec()s
are in progress - old exec()s will use the older value, newer exec()s use
the newer value. The exec() code picks the parameter only once and does
not rely on it to be constant.

note 3: i've renamed struct binprm's ->page field to ->pages, to safely
break code that is not updated to use ->nr_pages yet. This breaks some
architectures in a safe way.)

Comments?

Ingo

--8323328-1708323492-1001578422=:2745
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="exec-argsize-2.4.10-A3"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0109271013420.2745@localhost.localdomain>
Content-Description:
Content-Disposition: attachment; filename="exec-argsize-2.4.10-A3"

LS0tIGxpbnV4L2ZzL2V4ZWMuYy5vcmlnCVRodSBTZXAgMjcgMDg6NTI6MzIg
MjAwMQ0KKysrIGxpbnV4L2ZzL2V4ZWMuYwlUaHUgU2VwIDI3IDA5OjMzOjQx
IDIwMDENCkBAIC00OCw2ICs0OCwxMiBAQA0KIA0KIGludCBjb3JlX3VzZXNf
cGlkOw0KIA0KKy8qDQorICogTWF4IGV4ZWMoKSBhcmd1bWVudCBzaXplIGlu
IGJ5dGVzLiBLZXJuZWwgYWxpZ25zDQorICogaXQgdG8gUEFHRV9TSVpFIGJv
dW5kYXJ5Lg0KKyAqLw0KK2ludCBleGVjX2FyZ3NpemUgPSBQQUdFX1NJWkUg
KiAzMjsNCisNCiBzdGF0aWMgc3RydWN0IGxpbnV4X2JpbmZtdCAqZm9ybWF0
czsNCiBzdGF0aWMgcndsb2NrX3QgYmluZm10X2xvY2sgPSBSV19MT0NLX1VO
TE9DS0VEOw0KIA0KQEAgLTIwNCwxMSArMjEwLDExIEBADQogDQogCQkJb2Zm
c2V0ID0gcG9zICUgUEFHRV9TSVpFOw0KIAkJCWkgPSBwb3MvUEFHRV9TSVpF
Ow0KLQkJCXBhZ2UgPSBicHJtLT5wYWdlW2ldOw0KKwkJCXBhZ2UgPSBicHJt
LT5wYWdlc1tpXTsNCiAJCQluZXcgPSAwOw0KIAkJCWlmICghcGFnZSkgew0K
IAkJCQlwYWdlID0gYWxsb2NfcGFnZShHRlBfSElHSFVTRVIpOw0KLQkJCQli
cHJtLT5wYWdlW2ldID0gcGFnZTsNCisJCQkJYnBybS0+cGFnZXNbaV0gPSBw
YWdlOw0KIAkJCQlpZiAoIXBhZ2UpDQogCQkJCQlyZXR1cm4gLUVOT01FTTsN
CiAJCQkJbmV3ID0gMTsNCkBAIC0yOTYsNyArMzAyLDcgQEANCiAJc3RydWN0
IHZtX2FyZWFfc3RydWN0ICptcG50Ow0KIAlpbnQgaTsNCiANCi0Jc3RhY2tf
YmFzZSA9IFNUQUNLX1RPUCAtIE1BWF9BUkdfUEFHRVMqUEFHRV9TSVpFOw0K
KwlzdGFja19iYXNlID0gU1RBQ0tfVE9QIC0gYnBybS0+bnJfcGFnZXMqUEFH
RV9TSVpFOw0KIA0KIAlicHJtLT5wICs9IHN0YWNrX2Jhc2U7DQogCWlmIChi
cHJtLT5sb2FkZXIpDQpAQCAtMzIyLDEwICszMjgsMTAgQEANCiAJCWN1cnJl
bnQtPm1tLT50b3RhbF92bSA9IChtcG50LT52bV9lbmQgLSBtcG50LT52bV9z
dGFydCkgPj4gUEFHRV9TSElGVDsNCiAJfSANCiANCi0JZm9yIChpID0gMCA7
IGkgPCBNQVhfQVJHX1BBR0VTIDsgaSsrKSB7DQotCQlzdHJ1Y3QgcGFnZSAq
cGFnZSA9IGJwcm0tPnBhZ2VbaV07DQorCWZvciAoaSA9IDAgOyBpIDwgYnBy
bS0+bnJfcGFnZXMgOyBpKyspIHsNCisJCXN0cnVjdCBwYWdlICpwYWdlID0g
YnBybS0+cGFnZXNbaV07DQogCQlpZiAocGFnZSkgew0KLQkJCWJwcm0tPnBh
Z2VbaV0gPSBOVUxMOw0KKwkJCWJwcm0tPnBhZ2VzW2ldID0gTlVMTDsNCiAJ
CQlwdXRfZGlydHlfcGFnZShjdXJyZW50LHBhZ2Usc3RhY2tfYmFzZSk7DQog
CQl9DQogCQlzdGFja19iYXNlICs9IFBBR0VfU0laRTsNCkBAIC03NDcsNyAr
NzUzLDcgQEANCiAJCQlvZmZzZXQgPSAwOw0KIAkJCWt1bm1hcChwYWdlKTsN
CiBpbnNpZGU6DQotCQkJcGFnZSA9IGJwcm0tPnBhZ2VbYnBybS0+cC9QQUdF
X1NJWkVdOw0KKwkJCXBhZ2UgPSBicHJtLT5wYWdlc1ticHJtLT5wL1BBR0Vf
U0laRV07DQogCQkJa2FkZHIgPSBrbWFwKHBhZ2UpOw0KIAkJfQ0KIAkJa3Vu
bWFwKHBhZ2UpOw0KQEAgLTc3OCw3ICs3ODQsNyBAQA0KIAkJZnB1dChicHJt
LT5maWxlKTsNCiAJCWJwcm0tPmZpbGUgPSBOVUxMOw0KIA0KLQkgICAgICAg
IGxvYWRlciA9IFBBR0VfU0laRSpNQVhfQVJHX1BBR0VTLXNpemVvZih2b2lk
ICopOw0KKwkgICAgICAgIGxvYWRlciA9IFBBR0VfU0laRSpicHJtLT5ucl9w
YWdlcy1zaXplb2Yodm9pZCAqKTsNCiANCiAJCWZpbGUgPSBvcGVuX2V4ZWMo
ZHlubG9hZGVyWzBdKTsNCiAJCXJldHZhbCA9IFBUUl9FUlIoZmlsZSk7DQpA
QCAtODUzLDM0ICs4NTksMzggQEANCiB7DQogCXN0cnVjdCBsaW51eF9iaW5w
cm0gYnBybTsNCiAJc3RydWN0IGZpbGUgKmZpbGU7DQorCXN0cnVjdCBwYWdl
ICoqcGFnZXM7DQogCWludCByZXR2YWw7DQotCWludCBpOw0KKwlpbnQgaSwg
bnJfcGFnZXM7DQogDQotCWZpbGUgPSBvcGVuX2V4ZWMoZmlsZW5hbWUpOw0K
KwlicHJtLmZpbGUgPSBmaWxlID0gb3Blbl9leGVjKGZpbGVuYW1lKTsNCiAN
CiAJcmV0dmFsID0gUFRSX0VSUihmaWxlKTsNCiAJaWYgKElTX0VSUihmaWxl
KSkNCiAJCXJldHVybiByZXR2YWw7DQogDQotCWJwcm0ucCA9IFBBR0VfU0la
RSpNQVhfQVJHX1BBR0VTLXNpemVvZih2b2lkICopOw0KLQltZW1zZXQoYnBy
bS5wYWdlLCAwLCBNQVhfQVJHX1BBR0VTKnNpemVvZihicHJtLnBhZ2VbMF0p
KTsgDQorCW5yX3BhZ2VzID0gKGV4ZWNfYXJnc2l6ZSArIFBBR0VfU0laRS0x
KSAvIFBBR0VfU0laRTsNCisJcGFnZXMgPSBrbWFsbG9jKHNpemVvZihwYWdl
c1swXSkgKiBucl9wYWdlcywgR0ZQX0tFUk5FTCk7DQorCXJldHZhbCA9IC1F
Tk9NRU07DQorCWlmICghcGFnZXMpDQorCQlnb3RvIG91dDsNCisJYnBybS5w
ID0gUEFHRV9TSVpFKm5yX3BhZ2VzLXNpemVvZih2b2lkICopOw0KKwltZW1z
ZXQocGFnZXMsIDAsIG5yX3BhZ2VzKnNpemVvZihwYWdlc1swXSkpOyANCiAN
CisJYnBybS5ucl9wYWdlcyA9IG5yX3BhZ2VzOw0KKwlicHJtLnBhZ2VzID0g
cGFnZXM7DQogCWJwcm0uZmlsZSA9IGZpbGU7DQogCWJwcm0uZmlsZW5hbWUg
PSBmaWxlbmFtZTsNCiAJYnBybS5zaF9iYW5nID0gMDsNCiAJYnBybS5sb2Fk
ZXIgPSAwOw0KIAlicHJtLmV4ZWMgPSAwOw0KLQlpZiAoKGJwcm0uYXJnYyA9
IGNvdW50KGFyZ3YsIGJwcm0ucCAvIHNpemVvZih2b2lkICopKSkgPCAwKSB7
DQotCQlhbGxvd193cml0ZV9hY2Nlc3MoZmlsZSk7DQotCQlmcHV0KGZpbGUp
Ow0KLQkJcmV0dXJuIGJwcm0uYXJnYzsNCi0JfQ0KKwlyZXR2YWwgPSBicHJt
LmFyZ2MgPSBjb3VudChhcmd2LCBicHJtLnAgLyBzaXplb2Yodm9pZCAqKSk7
DQorCWlmIChyZXR2YWwgPCAwKQ0KKwkJZ290byBvdXQ7DQogDQotCWlmICgo
YnBybS5lbnZjID0gY291bnQoZW52cCwgYnBybS5wIC8gc2l6ZW9mKHZvaWQg
KikpKSA8IDApIHsNCi0JCWFsbG93X3dyaXRlX2FjY2VzcyhmaWxlKTsNCi0J
CWZwdXQoZmlsZSk7DQotCQlyZXR1cm4gYnBybS5lbnZjOw0KLQl9DQorCXJl
dHZhbCA9IGJwcm0uZW52YyA9IGNvdW50KGVudnAsIGJwcm0ucCAvIHNpemVv
Zih2b2lkICopKTsNCisJaWYgKHJldHZhbCA8IDApDQorCQlnb3RvIG91dDsN
CiANCiAJcmV0dmFsID0gcHJlcGFyZV9iaW5wcm0oJmJwcm0pOw0KIAlpZiAo
cmV0dmFsIDwgMCkgDQpAQCAtOTAwLDIwICs5MTAsMjkgQEANCiAJCWdvdG8g
b3V0OyANCiANCiAJcmV0dmFsID0gc2VhcmNoX2JpbmFyeV9oYW5kbGVyKCZi
cHJtLHJlZ3MpOw0KLQlpZiAocmV0dmFsID49IDApDQotCQkvKiBleGVjdmUg
c3VjY2VzcyAqLw0KKwlpZiAocmV0dmFsID49IDApIHsNCisJCS8qDQorCQkg
KiBleGVjdmUoKSBzdWNjZXNzDQorCQkgKg0KKwkJICogdGhlIGFyZ3VtZW50
IHBhZ2VzIG5vdyBsaXZlIGluIHRoZSBwcm9jZXNzIHBhZ2V0YWJsZXMsDQor
CQkgKiBidXQgdGhlIHBhZ2VzLWFycmF5IG11c3QgYmUgZGVhbGxvY2F0ZWQu
DQorCQkgKi8NCisJCWtmcmVlKHBhZ2VzKTsNCiAJCXJldHVybiByZXR2YWw7
DQorCX0NCiANCiBvdXQ6DQogCS8qIFNvbWV0aGluZyB3ZW50IHdyb25nLCBy
ZXR1cm4gdGhlIGlub2RlIGFuZCBmcmVlIHRoZSBhcmd1bWVudCBwYWdlcyov
DQotCWFsbG93X3dyaXRlX2FjY2VzcyhicHJtLmZpbGUpOw0KLQlpZiAoYnBy
bS5maWxlKQ0KLQkJZnB1dChicHJtLmZpbGUpOw0KLQ0KLQlmb3IgKGkgPSAw
IDsgaSA8IE1BWF9BUkdfUEFHRVMgOyBpKyspIHsNCi0JCXN0cnVjdCBwYWdl
ICogcGFnZSA9IGJwcm0ucGFnZVtpXTsNCi0JCWlmIChwYWdlKQ0KLQkJCV9f
ZnJlZV9wYWdlKHBhZ2UpOw0KKwlpZiAoZmlsZSkgew0KKwkJYWxsb3dfd3Jp
dGVfYWNjZXNzKGZpbGUpOw0KKwkJZnB1dChmaWxlKTsNCisJfQ0KKw0KKwlp
ZiAocGFnZXMpIHsNCisJCWZvciAoaSA9IDAgOyBpIDwgbnJfcGFnZXMgOyBp
KyspDQorCQkJaWYgKHBhZ2VzW2ldKQ0KKwkJCQlfX2ZyZWVfcGFnZShwYWdl
c1tpXSk7DQorCQlrZnJlZShwYWdlcyk7DQogCX0NCiANCiAJcmV0dXJuIHJl
dHZhbDsNCi0tLSBsaW51eC9mcy9iaW5mbXRfZWxmLmMub3JpZwlUaHUgU2Vw
IDI3IDA5OjEyOjQxIDIwMDENCisrKyBsaW51eC9mcy9iaW5mbXRfZWxmLmMJ
VGh1IFNlcCAyNyAwOToxNToyNiAyMDAxDQpAQCAtMTA3LDcgKzEwNyw4IEBA
DQogCQkgIHN0cnVjdCBlbGZoZHIgKiBleGVjLA0KIAkJICB1bnNpZ25lZCBs
b25nIGxvYWRfYWRkciwNCiAJCSAgdW5zaWduZWQgbG9uZyBsb2FkX2JpYXMs
DQotCQkgIHVuc2lnbmVkIGxvbmcgaW50ZXJwX2xvYWRfYWRkciwgaW50IGli
Y3MpDQorCQkgIHVuc2lnbmVkIGxvbmcgaW50ZXJwX2xvYWRfYWRkciwNCisJ
CSAgaW50IGliY3MsIHVuc2lnbmVkIGludCBtYXhfYXJnc2l6ZSkNCiB7DQog
CWVsZl9jYWRkcl90ICphcmd2Ow0KIAllbGZfY2FkZHJfdCAqZW52cDsNCkBA
IC0xOTgsOCArMTk5LDggQEANCiAJY3VycmVudC0+bW0tPmFyZ19zdGFydCA9
ICh1bnNpZ25lZCBsb25nKSBwOw0KIAl3aGlsZSAoYXJnYy0tPjApIHsNCiAJ
CV9fcHV0X3VzZXIoKGVsZl9jYWRkcl90KSh1bnNpZ25lZCBsb25nKXAsYXJn
disrKTsNCi0JCWxlbiA9IHN0cm5sZW5fdXNlcihwLCBQQUdFX1NJWkUqTUFY
X0FSR19QQUdFUyk7DQotCQlpZiAoIWxlbiB8fCBsZW4gPiBQQUdFX1NJWkUq
TUFYX0FSR19QQUdFUykNCisJCWxlbiA9IHN0cm5sZW5fdXNlcihwLCBtYXhf
YXJnc2l6ZSk7DQorCQlpZiAoIWxlbiB8fCBsZW4gPiBtYXhfYXJnc2l6ZSkN
CiAJCQlyZXR1cm4gTlVMTDsNCiAJCXAgKz0gbGVuOw0KIAl9DQpAQCAtMjA3
LDggKzIwOCw4IEBADQogCWN1cnJlbnQtPm1tLT5hcmdfZW5kID0gY3VycmVu
dC0+bW0tPmVudl9zdGFydCA9ICh1bnNpZ25lZCBsb25nKSBwOw0KIAl3aGls
ZSAoZW52Yy0tPjApIHsNCiAJCV9fcHV0X3VzZXIoKGVsZl9jYWRkcl90KSh1
bnNpZ25lZCBsb25nKXAsZW52cCsrKTsNCi0JCWxlbiA9IHN0cm5sZW5fdXNl
cihwLCBQQUdFX1NJWkUqTUFYX0FSR19QQUdFUyk7DQotCQlpZiAoIWxlbiB8
fCBsZW4gPiBQQUdFX1NJWkUqTUFYX0FSR19QQUdFUykNCisJCWxlbiA9IHN0
cm5sZW5fdXNlcihwLCBtYXhfYXJnc2l6ZSk7DQorCQlpZiAoIWxlbiB8fCBs
ZW4gPiBtYXhfYXJnc2l6ZSkNCiAJCQlyZXR1cm4gTlVMTDsNCiAJCXAgKz0g
bGVuOw0KIAl9DQpAQCAtNzA4LDcgKzcwOSw4IEBADQogCQkJJmVsZl9leCwN
CiAJCQlsb2FkX2FkZHIsIGxvYWRfYmlhcywNCiAJCQlpbnRlcnBfbG9hZF9h
ZGRyLA0KLQkJCShpbnRlcnByZXRlcl90eXBlID09IElOVEVSUFJFVEVSX0FP
VVQgPyAwIDogMSkpOw0KKwkJCShpbnRlcnByZXRlcl90eXBlID09IElOVEVS
UFJFVEVSX0FPVVQgPyAwIDogMSksDQorCQkJYnBybS0+bnJfcGFnZXMgKiBQ
QUdFX1NJWkUpOw0KIAkvKiBOLkIuIHBhc3NlZF9maWxlbm8gbWlnaHQgbm90
IGJlIGluaXRpYWxpemVkPyAqLw0KIAlpZiAoaW50ZXJwcmV0ZXJfdHlwZSA9
PSBJTlRFUlBSRVRFUl9BT1VUKQ0KIAkJY3VycmVudC0+bW0tPmFyZ19zdGFy
dCArPSBzdHJsZW4ocGFzc2VkX2ZpbGVubykgKyAxOw0KLS0tIGxpbnV4L2tl
cm5lbC9zeXNjdGwuYy5vcmlnCVRodSBTZXAgMjcgMDg6NTA6NTggMjAwMQ0K
KysrIGxpbnV4L2tlcm5lbC9zeXNjdGwuYwlUaHUgU2VwIDI3IDA4OjUyOjIw
IDIwMDENCkBAIC0yNjgsNiArMjY4LDggQEANCiAJICZwZ3RfY2FjaGVfd2F0
ZXIsIDIqc2l6ZW9mKGludCksIDA2NDQsIE5VTEwsICZwcm9jX2RvaW50dmVj
fSwNCiAJe1ZNX1BBR0VfQ0xVU1RFUiwgInBhZ2UtY2x1c3RlciIsIA0KIAkg
JnBhZ2VfY2x1c3Rlciwgc2l6ZW9mKGludCksIDA2NDQsIE5VTEwsICZwcm9j
X2RvaW50dmVjfSwNCisJe1ZNX0VYRUNfQVJHU0laRSwgImV4ZWMtYXJnc2l6
ZSIsIA0KKwkgJmV4ZWNfYXJnc2l6ZSwgc2l6ZW9mKGludCksIDA2NDQsIE5V
TEwsICZwcm9jX2RvaW50dmVjfSwNCiAJezB9DQogfTsNCiANCi0tLSBsaW51
eC9pbmNsdWRlL2xpbnV4L2JpbmZtdHMuaC5vcmlnCVRodSBTZXAgMjcgMDg6
NDk6NTEgMjAwMQ0KKysrIGxpbnV4L2luY2x1ZGUvbGludXgvYmluZm10cy5o
CVRodSBTZXAgMjcgMDk6MjA6NTUgMjAwMQ0KQEAgLTQsMTIgKzQsNyBAQA0K
ICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4NCiAjaW5jbHVkZSA8bGludXgv
Y2FwYWJpbGl0eS5oPg0KIA0KLS8qDQotICogTUFYX0FSR19QQUdFUyBkZWZp
bmVzIHRoZSBudW1iZXIgb2YgcGFnZXMgYWxsb2NhdGVkIGZvciBhcmd1bWVu
dHMNCi0gKiBhbmQgZW52ZWxvcGUgZm9yIHRoZSBuZXcgcHJvZ3JhbS4gMzIg
c2hvdWxkIHN1ZmZpY2UsIHRoaXMgZ2l2ZXMNCi0gKiBhIG1heGltdW0gZW52
K2FyZyBvZiAxMjhrQiB3LzRLQiBwYWdlcyENCi0gKi8NCi0jZGVmaW5lIE1B
WF9BUkdfUEFHRVMgMzINCitleHRlcm4gaW50IGV4ZWNfYXJnc2l6ZTsNCiAN
CiAvKiBzaXplb2YobGludXhfYmlucHJtLT5idWYpICovDQogI2RlZmluZSBC
SU5QUk1fQlVGX1NJWkUgMTI4DQpAQCAtMjEsNyArMTYsOCBAQA0KICAqLw0K
IHN0cnVjdCBsaW51eF9iaW5wcm17DQogCWNoYXIgYnVmW0JJTlBSTV9CVUZf
U0laRV07DQotCXN0cnVjdCBwYWdlICpwYWdlW01BWF9BUkdfUEFHRVNdOw0K
KwlpbnQgbnJfcGFnZXM7DQorCXN0cnVjdCBwYWdlICoqcGFnZXM7DQogCXVu
c2lnbmVkIGxvbmcgcDsgLyogY3VycmVudCB0b3Agb2YgbWVtICovDQogCWlu
dCBzaF9iYW5nOw0KIAlzdHJ1Y3QgZmlsZSAqIGZpbGU7DQotLS0gbGludXgv
aW5jbHVkZS9saW51eC9zeXNjdGwuaC5vcmlnCVRodSBTZXAgMjcgMDk6MjE6
NTggMjAwMQ0KKysrIGxpbnV4L2luY2x1ZGUvbGludXgvc3lzY3RsLmgJVGh1
IFNlcCAyNyAwOToyMjo0NCAyMDAxDQpAQCAtMTM3LDcgKzEzNyw4IEBADQog
CVZNX1BBR0VDQUNIRT03LAkJLyogc3RydWN0OiBTZXQgY2FjaGUgbWVtb3J5
IHRocmVzaG9sZHMgKi8NCiAJVk1fUEFHRVJEQUVNT049OCwJLyogc3RydWN0
OiBDb250cm9sIGtzd2FwZCBiZWhhdmlvdXIgKi8NCiAJVk1fUEdUX0NBQ0hF
PTksCQkvKiBzdHJ1Y3Q6IFNldCBwYWdlIHRhYmxlIGNhY2hlIHBhcmFtZXRl
cnMgKi8NCi0JVk1fUEFHRV9DTFVTVEVSPTEwCS8qIGludDogc2V0IG51bWJl
ciBvZiBwYWdlcyB0byBzd2FwIHRvZ2V0aGVyICovDQorCVZNX1BBR0VfQ0xV
U1RFUj0xMCwJLyogaW50OiBzZXQgbnVtYmVyIG9mIHBhZ2VzIHRvIHN3YXAg
dG9nZXRoZXIgKi8NCisJVk1fRVhFQ19BUkdTSVpFPTExCS8qIGludDogbWF4
aW11bSBleGVjKCkgYXJndW1lbnQgc2l6ZSBpbiBieXRlcyAqLw0KIH07DQog
DQogDQo=
--8323328-1708323492-1001578422=:2745--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/