[patch] bootmem-2.3.30-C4

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Fri, 26 Nov 1999 17:29:20 +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.

--79888902-1843707332-943633760=:3417
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Fri, 26 Nov 1999, NIIBE Yutaka wrote:

> In the patch, I added a argument for init_bootmem so that bootmem can work
> with machine with physical memory offset.

yep - thanks for the patch. I've ported it to 2.3.30-pre2, plus did some
more bootmem cleanups (patch attached). Changes:

- physical memory offset works just fine on x86, but obviously i cannot
test it with a real physical memory offset part.

- i've also changed the bootmem.h API to always deal with pfn numbers.
Unfortunately this breaks other architectures but should be the last
such case. It was getting unmaintainable that some functions wanted to
have a byte offset argument, some others used pfns. This also
simplified things.

- x86 now too first searches for a valid memory area to put the bootmem
map into, no more magic assumptions.

Does this have all the components you needed?

-- mingo

--79888902-1843707332-943633760=:3417
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="bootmem-2.3.30-C4"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911261729200.3417@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: attachment; filename="bootmem-2.3.30-C4"

LS0tIGxpbnV4L21tL2Jvb3RtZW0uYy5vcmlnCUZyaSBOb3YgMjYgMDY6MTE6
MjkgMTk5OQ0KKysrIGxpbnV4L21tL2Jvb3RtZW0uYwlGcmkgTm92IDI2IDA2
OjEyOjA2IDE5OTkNCkBAIC0yNywxNSArMjcsMTcgQEANCiB1bnNpZ25lZCBs
b25nIG1heF9sb3dfcGZuOw0KIA0KIHN0YXRpYyB2b2lkICogYm9vdG1lbV9t
YXAgPSBOVUxMOw0KK3N0YXRpYyB1bnNpZ25lZCBsb25nIHBoeXNfbWVtX3N0
YXJ0Ow0KIA0KLS8qIHJldHVybiB0aGUgbnVtYmVyIG9mIF9wYWdlc18gdGhh
dCB3aWxsIGJlIGFsbG9jYXRlZCBmb3IgdGhlIGJvb3QgYml0bWFwICovDQor
LyoNCisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IHdpbGwg
YmUgYWxsb2NhdGVkIGZvciB0aGUgYm9vdCBiaXRtYXANCisgKi8NCiB1bnNp
Z25lZCBsb25nIF9faW5pdCBib290bWVtX2Jvb3RtYXBfcGFnZXMgKHVuc2ln
bmVkIGxvbmcgcGFnZXMpDQogew0KIAl1bnNpZ25lZCBsb25nIG1hcHNpemU7
DQogDQogCW1hcHNpemUgPSAocGFnZXMrNykvODsNCi0JbWFwc2l6ZSA9ICht
YXBzaXplICsgflBBR0VfTUFTSykgJiBQQUdFX01BU0s7DQotCW1hcHNpemUg
Pj49IFBBR0VfU0hJRlQ7DQorCW1hcHNpemUgPSAobWFwc2l6ZSArIFBBR0Vf
U0laRS0xKSA+PiBQQUdFX1NISUZUOw0KIA0KIAlyZXR1cm4gbWFwc2l6ZTsN
CiB9DQpAQCAtNDMsMjAgKzQ1LDIwIEBADQogLyoNCiAgKiBDYWxsZWQgb25j
ZSB0byBzZXQgdXAgdGhlIGFsbG9jYXRvciBpdHNlbGYuDQogICovDQotdW5z
aWduZWQgbG9uZyBfX2luaXQgaW5pdF9ib290bWVtICh1bnNpZ25lZCBsb25n
IHN0YXJ0LCB1bnNpZ25lZCBsb25nIHBhZ2VzKQ0KK3ZvaWQgX19pbml0IGlu
aXRfYm9vdG1lbSAodW5zaWduZWQgbG9uZyBib290bWFwX3BmbiwNCisJCXVu
c2lnbmVkIGxvbmcgbWVtcGFnZXMsIHVuc2lnbmVkIGxvbmcgbWVtc3RhcnRf
cGZuKQ0KIHsNCi0JdW5zaWduZWQgbG9uZyBtYXBzaXplID0gKHBhZ2VzKzcp
Lzg7DQorCXVuc2lnbmVkIGxvbmcgbWFwc2l6ZSA9IGJvb3RtZW1fYm9vdG1h
cF9wYWdlcyhtZW1wYWdlcykgPDwgUEFHRV9TSElGVDsNCiANCi0JYm9vdG1l
bV9tYXAgPSBwaHlzX3RvX3ZpcnQoc3RhcnQgPDwgUEFHRV9TSElGVCk7DQot
CW1heF9sb3dfcGZuID0gcGFnZXM7DQorCXBoeXNfbWVtX3N0YXJ0ID0gbWVt
c3RhcnRfcGZuOw0KKwlib290bWVtX21hcCA9IHBoeXNfdG9fdmlydCgoYm9v
dG1hcF9wZm4gKiBQQUdFX1NJWkUpICsgcGh5c19tZW1fc3RhcnQpOw0KKwlt
YXhfbG93X3BmbiA9IG1lbXBhZ2VzOw0KIA0KIAkvKg0KIAkgKiBJbml0aWFs
bHkgYWxsIHBhZ2VzIGFyZSByZXNlcnZlZCAtIHNldHVwX2FyY2goKSBoYXMg
dG8NCiAJICogcmVnaXN0ZXIgZnJlZSBSQU0gYXJlYXMgZXhwbGljaXRseS4N
CiAJICovDQogCW1lbXNldChib290bWVtX21hcCwgMHhmZiwgbWFwc2l6ZSk7
DQotDQotCXJldHVybiBtYXBzaXplOw0KIH0NCiANCiAvKg0KQEAgLTY0LDQ0
ICs2NiwzNSBAQA0KICAqIG1pZ2h0IGJlIHVzZWQgZm9yIGJvb3QtdGltZSBh
bGxvY2F0aW9ucyAtIG9yIGl0IG1pZ2h0IGdldCBhZGRlZA0KICAqIHRvIHRo
ZSBmcmVlIHBhZ2UgcG9vbCBsYXRlciBvbi4NCiAgKi8NCi12b2lkIF9faW5p
dCByZXNlcnZlX2Jvb3RtZW0gKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWdu
ZWQgbG9uZyBzaXplKQ0KK3ZvaWQgX19pbml0IHJlc2VydmVfYm9vdG1lbSAo
dW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgcGFnZXMp
DQogew0KIAl1bnNpZ25lZCBsb25nIGk7DQogCS8qDQogCSAqIHJvdW5kIHVw
LCBwYXJ0aWFsbHkgcmVzZXJ2ZWQgcGFnZXMgYXJlIGNvbnNpZGVyZWQNCiAJ
ICogZnVsbHkgcmVzZXJ2ZWQuDQogCSAqLw0KLQl1bnNpZ25lZCBsb25nIGVu
ZCA9IChhZGRyICsgc2l6ZSArIFBBR0VfU0laRS0xKS9QQUdFX1NJWkU7DQor
CXVuc2lnbmVkIGxvbmcgZW5kX3BmbiA9IHN0YXJ0X3BmbiArIHBhZ2VzOw0K
IA0KLQlpZiAoIXNpemUpIEJVRygpOw0KKwlpZiAoIXBhZ2VzKSBCVUcoKTsN
CiANCi0JaWYgKGVuZCA+IG1heF9sb3dfcGZuKQ0KKwlpZiAoZW5kX3BmbiA+
IG1heF9sb3dfcGZuKQ0KIAkJQlVHKCk7DQotCWZvciAoaSA9IGFkZHIvUEFH
RV9TSVpFOyBpIDwgZW5kOyBpKyspDQorCWZvciAoaSA9IHN0YXJ0X3Bmbjsg
aSA8IGVuZF9wZm47IGkrKykNCiAJCWlmICh0ZXN0X2FuZF9zZXRfYml0KGks
IGJvb3RtZW1fbWFwKSkNCiAJCQlCVUcoKTsNCiB9DQogDQotdm9pZCBfX2lu
aXQgZnJlZV9ib290bWVtICh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVk
IGxvbmcgc2l6ZSkNCit2b2lkIF9faW5pdCBmcmVlX2Jvb3RtZW0gKHVuc2ln
bmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIHBhZ2VzKQ0KIHsN
Ci0JdW5zaWduZWQgbG9uZyBpOw0KLQl1bnNpZ25lZCBsb25nIHN0YXJ0Ow0K
LQkvKg0KLQkgKiByb3VuZCBkb3duIGVuZCBvZiB1c2FibGUgbWVtLCBwYXJ0
aWFsbHkgZnJlZSBwYWdlcyBhcmUNCi0JICogY29uc2lkZXJlZCByZXNlcnZl
ZC4NCi0JICovDQotCXVuc2lnbmVkIGxvbmcgZW5kID0gKGFkZHIgKyBzaXpl
KS9QQUdFX1NJWkU7DQorCXVuc2lnbmVkIGxvbmcgaSwgZW5kX3BmbjsNCiAN
Ci0JaWYgKCFzaXplKSBCVUcoKTsNCi0JaWYgKGVuZCA+IG1heF9sb3dfcGZu
KQ0KLQkJQlVHKCk7DQorCWVuZF9wZm4gPSBzdGFydF9wZm4gKyBwYWdlczsN
CiANCi0JLyoNCi0JICogUm91bmQgdXAgdGhlIGJlZ2lubmluZyBvZiB0aGUg
YWRkcmVzcy4NCi0JICovDQotCXN0YXJ0ID0gKGFkZHIgKyBQQUdFX1NJWkUt
MSkgLyBQQUdFX1NJWkU7DQorCWlmICghcGFnZXMpIEJVRygpOw0KKwlpZiAo
ZW5kX3BmbiA+IG1heF9sb3dfcGZuKQ0KKwkJQlVHKCk7DQogDQotCWZvciAo
aSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsNCisJZm9yIChpID0gc3RhcnRf
cGZuOyBpIDwgZW5kX3BmbjsgaSsrKSB7DQogCQlpZiAoIXRlc3RfYW5kX2Ns
ZWFyX2JpdChpLCBib290bWVtX21hcCkpDQogCQkJQlVHKCk7DQogCX0NCkBA
IC0xODgsMTEgKzE4MSwxMSBAQA0KIAkJCWFyZWFzaXplID0gMDsNCiAJCQkv
LyBsYXN0X3BvcyB1bmNoYW5nZWQNCiAJCQlsYXN0X29mZnNldCA9IG9mZnNl
dCtzaXplOw0KLQkJCXJldCA9IHBoeXNfdG9fdmlydChsYXN0X3BvcypQQUdF
X1NJWkUgKyBvZmZzZXQpOw0KKwkJCXJldCA9IHBoeXNfdG9fdmlydChsYXN0
X3BvcypQQUdFX1NJWkUgKyBvZmZzZXQgKyBwaHlzX21lbV9zdGFydCk7DQog
CQl9IGVsc2Ugew0KIAkJCXJlbWFpbmluZ19zaXplID0gc2l6ZSAtIHJlbWFp
bmluZ19zaXplOw0KIAkJCWFyZWFzaXplID0gKHJlbWFpbmluZ19zaXplK1BB
R0VfU0laRS0xKS9QQUdFX1NJWkU7DQotCQkJcmV0ID0gcGh5c190b192aXJ0
KGxhc3RfcG9zKlBBR0VfU0laRSArIG9mZnNldCk7DQorCQkJcmV0ID0gcGh5
c190b192aXJ0KGxhc3RfcG9zKlBBR0VfU0laRSArIG9mZnNldCArIHBoeXNf
bWVtX3N0YXJ0KTsNCiAJCQlsYXN0X3BvcyA9IHN0YXJ0K2FyZWFzaXplLTE7
DQogCQkJbGFzdF9vZmZzZXQgPSByZW1haW5pbmdfc2l6ZTsNCiAJCX0NCkBA
IC0yMDAsNyArMTkzLDcgQEANCiAJfSBlbHNlIHsNCiAJCWxhc3RfcG9zID0g
c3RhcnQgKyBhcmVhc2l6ZSAtIDE7DQogCQlsYXN0X29mZnNldCA9IHNpemUg
JiB+UEFHRV9NQVNLOw0KLQkJcmV0ID0gcGh5c190b192aXJ0KHN0YXJ0ICog
UEFHRV9TSVpFKTsNCisJCXJldCA9IHBoeXNfdG9fdmlydChzdGFydCpQQUdF
X1NJWkUgKyBwaHlzX21lbV9zdGFydCk7DQogCX0NCiAJLyoNCiAJICogUmVz
ZXJ2ZSB0aGUgYXJlYSBub3c6DQpAQCAtMjI2LDcgKzIxOSw3IEBADQogCQkJ
Y291bnQrKzsNCiAJCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlKTsNCiAJCQlz
ZXRfcGFnZV9jb3VudChwYWdlLCAxKTsNCi0JCQlpZiAoaSA+PSAodmlydF90
b19waHlzKChjaGFyICopTUFYX0RNQV9BRERSRVNTKSA+PiBQQUdFX1NISUZU
KSkNCisJCQlpZiAoaSA+PSAoKHZpcnRfdG9fcGh5cygoY2hhciAqKU1BWF9E
TUFfQUREUkVTUykgLSBwaHlzX21lbV9zdGFydCkgPj4gUEFHRV9TSElGVCkp
DQogCQkJCWNsZWFyX2JpdChQR19ETUEsICZwYWdlLT5mbGFncyk7DQogCQkJ
X19mcmVlX3BhZ2UocGFnZSk7DQogCQl9DQotLS0gbGludXgvaW5jbHVkZS9s
aW51eC9ib290bWVtLmgub3JpZwlGcmkgTm92IDI2IDA2OjExOjI5IDE5OTkN
CisrKyBsaW51eC9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaAlGcmkgTm92IDI2
IDA2OjEyOjI0IDE5OTkNCkBAIC03LDE2ICs3LDIyIEBADQogI2luY2x1ZGUg
PGxpbnV4L2luaXQuaD4NCiANCiAvKg0KLSAqICBzaW1wbGUgYm9vdC10aW1l
IHBoeXNpY2FsIG1lbW9yeSBhcmVhIGFsbG9jYXRvci4NCisgKiBTaW1wbGUg
Ym9vdC10aW1lIHBoeXNpY2FsIG1lbW9yeSBhcmVhIGFsbG9jYXRvci4NCisg
Kg0KKyAqIEFsbCB1bml0cyBhcmUgJ3BhZ2UgZnJhbWUgbnVtYmVycycsIGV4
Y2VwdCB0aGUgYWxsb2NfYm9vdG1lbSgpIHZhcmlhbnRzDQorICogd2hlcmUg
d2UgYWxsb3cgYnl0ZSBncmFudWxhcml0eSBhbGxvY2F0aW9ucy4NCiAgKi8N
CiANCiBleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhfbG93X3BmbjsNCiANCi1l
eHRlcm4gdW5zaWduZWQgbG9uZyBfX2luaXQgYm9vdG1lbV9ib290bWFwX3Bh
Z2VzICh1bnNpZ25lZCBsb25nKTsNCi1leHRlcm4gdW5zaWduZWQgbG9uZyBf
X2luaXQgaW5pdF9ib290bWVtICh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2ln
bmVkIGxvbmcgbWVtZW5kKTsNCi1leHRlcm4gdm9pZCBfX2luaXQgcmVzZXJ2
ZV9ib290bWVtICh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcg
c2l6ZSk7DQotZXh0ZXJuIHZvaWQgX19pbml0IGZyZWVfYm9vdG1lbSAodW5z
aWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpOw0KLWV4dGVy
biB2b2lkICogX19pbml0IF9fYWxsb2NfYm9vdG1lbSAodW5zaWduZWQgbG9u
ZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduLCB1bnNpZ25lZCBsb25nIGdv
YWwpOw0KK2V4dGVybiB1bnNpZ25lZCBsb25nIF9faW5pdCBib290bWVtX2Jv
b3RtYXBfcGFnZXMgKHVuc2lnbmVkIGxvbmcgbWVtcGFnZXMpOw0KK2V4dGVy
biB2b2lkIF9faW5pdCBpbml0X2Jvb3RtZW0gKHVuc2lnbmVkIGxvbmcgYm9v
dG1hcF9wZm4sDQorCQkJdW5zaWduZWQgbG9uZyBtZW1wYWdlcywgdW5zaWdu
ZWQgbG9uZyBtZW1zdGFydF9wZm4pOw0KK2V4dGVybiB2b2lkIF9faW5pdCBy
ZXNlcnZlX2Jvb3RtZW0gKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLA0KKwkJ
CQkJCSB1bnNpZ25lZCBsb25nIHBhZ2VzKTsNCitleHRlcm4gdm9pZCBfX2lu
aXQgZnJlZV9ib290bWVtICh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5z
aWduZWQgbG9uZyBwYWdlcyk7DQorZXh0ZXJuIHZvaWQgKiBfX2luaXQgX19h
bGxvY19ib290bWVtICh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxv
bmcgYWxpZ24sDQorCQkJCQkJIHVuc2lnbmVkIGxvbmcgZ29hbCk7DQogI2Rl
ZmluZSBhbGxvY19ib290bWVtKHgpIFwNCiAJX19hbGxvY19ib290bWVtKCh4
KSwgU01QX0NBQ0hFX0JZVEVTLCBfX3BhKE1BWF9ETUFfQUREUkVTUykpDQog
I2RlZmluZSBhbGxvY19ib290bWVtX2xvdyh4KSBcDQotLS0gbGludXgvYXJj
aC9pMzg2L2tlcm5lbC9zZXR1cC5jLm9yaWcJRnJpIE5vdiAyNiAwNjoxMToy
OSAxOTk5DQorKysgbGludXgvYXJjaC9pMzg2L2tlcm5lbC9zZXR1cC5jCUZy
aSBOb3YgMjYgMDY6MTI6MDYgMTk5OQ0KQEAgLTM4MCw4ICszODAsNyBAQA0K
IH0gLyogbWVtcGFyc2UgKi8NCiANCiANCi12b2lkIF9faW5pdCBhZGRfbWVt
b3J5X3JlZ2lvbih1bnNpZ25lZCBsb25nIHN0YXJ0LA0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIGlu
dCB0eXBlKQ0KK3ZvaWQgX19pbml0IGFkZF9tZW1vcnlfcmVnaW9uKHVuc2ln
bmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IHR5cGUp
DQogew0KIAlpbnQgeCA9IGU4MjAubnJfbWFwOw0KIA0KQEAgLTUyOCw3ICs1
MjcsNyBAQA0KIA0KIHZvaWQgX19pbml0IHNldHVwX2FyY2goY2hhciAqKmNt
ZGxpbmVfcCkNCiB7DQotCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zaXplOw0K
Kwl1bnNpZ25lZCBsb25nIGJvb3RtYXBfcGFnZXMsIGJvb3RtYXBfcGZuOw0K
IAl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgbWF4X3BmbiwgbWF4X2xvd19w
Zm47DQogCWludCBpOw0KIA0KQEAgLTU4MiwxMiArNTgxLDYgQEANCiAjZGVm
aW5lIE1BWF9OT05QQUVfUEZOCSgxIDw8IDIwKQ0KIA0KIAkvKg0KLQkgKiBw
YXJ0aWFsbHkgdXNlZCBwYWdlcyBhcmUgbm90IHVzYWJsZSAtIHRodXMNCi0J
ICogd2UgYXJlIHJvdW5kaW5nIHVwd2FyZHM6DQotCSAqLw0KLQlzdGFydF9w
Zm4gPSBQRk5fVVAoX19wYSgmX2VuZCkpOw0KLQ0KLQkvKg0KIAkgKiBGaW5k
IHRoZSBoaWdoZXN0IHBhZ2UgZnJhbWUgbnVtYmVyIHdlIGhhdmUgYXZhaWxh
YmxlDQogCSAqLw0KIAltYXhfcGZuID0gMDsNCkBAIC02MzUsMTUgKzYyOCw0
MyBAQA0KIAl9DQogI2VuZGlmDQogCS8qDQotCSAqIEluaXRpYWxpemUgdGhl
IGJvb3QtdGltZSBhbGxvY2F0b3IgKHdpdGggbG93IG1lbW9yeSBvbmx5KToN
CisJICogUGFydGlhbGx5IHVzZWQgcGFnZXMgYXJlIG5vdCB1c2FibGUgLSB0
aHVzDQorCSAqIHdlIGFyZSByb3VuZGluZyB1cHdhcmRzOg0KIAkgKi8NCi0J
Ym9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtKHN0YXJ0X3BmbiwgbWF4X2xv
d19wZm4pOw0KLQ0KKwlzdGFydF9wZm4gPSBQRk5fVVAoX19wYSgmX2VuZCkp
Ow0KKwlib290bWFwX3BhZ2VzID0gYm9vdG1lbV9ib290bWFwX3BhZ2VzKG1h
eF9sb3dfcGZuKTsNCisJLyoNCisJICogRmluZCBhIHByb3BlciBhcmVhIGZv
ciB0aGUgYm9vdG1lbSBiaXRtYXAuIEFmdGVyIHRoaXMNCisJICogYm9vdHN0
cmFwIHN0ZXAgYWxsIGFsbG9jYXRpb25zICh1bnRpbCB0aGUgcGFnZSBhbGxv
Y2F0b3INCisJICogaXMgaW50YWN0KSBtdXN0IGJlIGRvbmUgdmlhIGJvb3Rt
ZW1fYWxsb2MoKS4NCisJICovDQorCWJvb3RtYXBfcGZuID0gMDsNCisJZm9y
IChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsNCisJCXVuc2lnbmVk
IGxvbmcgc3RhcnQsIGVuZDsNCisJCS8qIFJBTT8gKi8NCisJCWlmIChlODIw
Lm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKQ0KKwkJCWNvbnRpbnVlOw0KKwkJ
c3RhcnQgPSBQRk5fVVAoZTgyMC5tYXBbaV0uYWRkcik7DQorCQllbmQgPSBQ
Rk5fRE9XTihlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSk7
DQorCQlpZiAoZW5kIDwgc3RhcnRfcGZuKQ0KKwkJCWNvbnRpbnVlOw0KKwkJ
aWYgKHN0YXJ0IDwgc3RhcnRfcGZuKQ0KKwkJCXN0YXJ0ID0gc3RhcnRfcGZu
Ow0KKwkJaWYgKGVuZCA8PSBzdGFydCkNCisJCQljb250aW51ZTsNCisJCWlm
IChlbmQgLSBzdGFydCA+PSBib290bWFwX3BhZ2VzKSB7DQorCQkJYm9vdG1h
cF9wZm4gPSBzdGFydDsNCisJCQlicmVhazsNCisJCX0NCisJfQ0KKwlpZiAo
IWJvb3RtYXBfcGZuKQ0KKwkJQlVHKCk7DQorCWluaXRfYm9vdG1lbShib290
bWFwX3BmbiwgbWF4X2xvd19wZm4sIDApOw0KIAkvKg0KIAkgKiBSZWdpc3Rl
ciBmdWxseSBhdmFpbGFibGUgbG93IFJBTSBwYWdlcyB3aXRoIHRoZSBib290
bWVtIGFsbG9jYXRvci4NCiAJICovDQogCWZvciAoaSA9IDA7IGkgPCBlODIw
Lm5yX21hcDsgaSsrKSB7DQotCQl1bnNpZ25lZCBsb25nIGN1cnJfcGZuLCBs
YXN0X3Bmbiwgc2l6ZTsNCisJCXVuc2lnbmVkIGxvbmcgY3Vycl9wZm4sIGxh
c3RfcGZuLCBwYWdlczsNCiAgCQkvKg0KIAkJICogUmVzZXJ2ZSB1c2FibGUg
bG93IG1lbW9yeQ0KIAkJICovDQpAQCAtNjcwLDIzICs2OTEsMjggQEANCiAJ
CWlmIChsYXN0X3BmbiA8PSBjdXJyX3BmbikNCiAJCQljb250aW51ZTsNCiAN
Ci0JCXNpemUgPSBsYXN0X3BmbiAtIGN1cnJfcGZuOw0KLQkJZnJlZV9ib290
bWVtKFBGTl9QSFlTKGN1cnJfcGZuKSwgUEZOX1BIWVMoc2l6ZSkpOw0KKwkJ
cGFnZXMgPSBsYXN0X3BmbiAtIGN1cnJfcGZuOw0KKwkJZnJlZV9ib290bWVt
KGN1cnJfcGZuLCBwYWdlcyk7DQogCX0NCisNCiAJLyoNCi0JICogUmVzZXJ2
ZSB0aGUgYm9vdG1lbSBiaXRtYXAgaXRzZWxmIGFzIHdlbGwuIFdlIGRvIHRo
aXMgaW4gdHdvDQotCSAqIHN0ZXBzIChmaXJzdCBzdGVwIHdhcyBpbml0X2Jv
b3RtZW0oKSkgYmVjYXVzZSB0aGlzIGNhdGNoZXMNCi0JICogdGhlICh2ZXJ5
IHVubGlrZWx5KSBjYXNlIG9mIHVzIGFjY2lkZW50YWxseSBpbml0aWFsaXpp
bmcgdGhlDQotCSAqIGJvb3RtZW0gYWxsb2NhdG9yIHdpdGggYW4gaW52YWxp
ZCBSQU0gYXJlYS4NCisJICogUmVzZXJ2ZSB0aGUgYm9vdG1lbSBiaXRtYXAu
IFdlIGRvIHRoaXMgaW4gdHdvIHN0ZXBzIChmaXJzdCBzdGVwDQorCSAqIHdh
cyBpbml0X2Jvb3RtZW0oKSksIGJlY2F1c2UgdGhpcyBjYXRjaGVzIHRoZSAo
ZGVmaW5pdGVseSBidWdneSkNCisJICogY2FzZSBvZiB1cyBhY2NpZGVudGFs
bHkgaW5pdGlhbGl6aW5nIHRoZSBib290bWVtIGFsbG9jYXRvciB3aXRoDQor
CSAqIGFuIGludmFsaWQgUkFNIGFyZWEuDQogCSAqLw0KLQlyZXNlcnZlX2Jv
b3RtZW0oSElHSF9NRU1PUlksIChQRk5fUEhZUyhzdGFydF9wZm4pICsNCi0J
CQkgYm9vdG1hcF9zaXplICsgUEFHRV9TSVpFLTEpIC0gKEhJR0hfTUVNT1JZ
KSk7DQorCXJlc2VydmVfYm9vdG1lbShib290bWFwX3BmbiwgYm9vdG1hcF9w
YWdlcyk7DQorDQorCS8qDQorCSAqIFJlc2VydmUgdGhlIGtlcm5lbCBpbWFn
ZSBzdGFydGluZyBhdCAxTUIuDQorCSAqLw0KKwlyZXNlcnZlX2Jvb3RtZW0o
UEZOX0RPV04oSElHSF9NRU1PUlkpLCBzdGFydF9wZm4tUEZOX0RPV04oSElH
SF9NRU1PUlkpKTsNCiANCiAJLyoNCiAJICogcmVzZXJ2ZSBwaHlzaWNhbCBw
YWdlIDAgLSBpdCdzIGEgc3BlY2lhbCBCSU9TIHBhZ2Ugb24gbWFueSBib3hl
cywNCiAJICogZW5hYmxpbmcgY2xlYW4gcmVib290cywgU01QIG9wZXJhdGlv
biwgbGFwdG9wIGZ1bmN0aW9ucy4NCiAJICovDQotCXJlc2VydmVfYm9vdG1l
bSgwLCBQQUdFX1NJWkUpOw0KKwlyZXNlcnZlX2Jvb3RtZW0oMCwgMSk7DQog
DQogI2lmZGVmIF9fU01QX18NCiAJLyoNCkBAIC02OTQsNyArNzIwLDcgQEAN
CiAJICogRklYTUU6IERvbid0IG5lZWQgdGhlIGV4dHJhIHBhZ2UgYXQgNEss
IGJ1dCBuZWVkIHRvIGZpeA0KIAkgKiB0cmFtcG9saW5lIGJlZm9yZSByZW1v
dmluZyBpdC4gKHNlZSB0aGUgR0RUIHN0dWZmKQ0KIAkgKi8NCi0JcmVzZXJ2
ZV9ib290bWVtKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsNCisJcmVzZXJ2ZV9i
b290bWVtKDEsIDEpOw0KIAlzbXBfYWxsb2NfbWVtb3J5KCk7IC8qIEFQIHBy
b2Nlc3NvciByZWFsbW9kZSBzdGFja3MgaW4gbG93IG1lbW9yeSovDQogI2Vu
ZGlmDQogDQpAQCAtNzA3LDE3ICs3MzMsMjEgQEANCiANCiAjaWZkZWYgQ09O
RklHX0JMS19ERVZfSU5JVFJEDQogCWlmIChMT0FERVJfVFlQRSkgew0KLQkJ
aWYgKElOSVRSRF9TVEFSVCArIElOSVRSRF9TSVpFIDwgKG1heF9sb3dfcGZu
IDw8IFBBR0VfU0hJRlQpKSB7DQotCQkJcmVzZXJ2ZV9ib290bWVtKElOSVRS
RF9TVEFSVCwgSU5JVFJEX1NJWkUpOw0KKwkJdW5zaWduZWQgbG9uZyBzdGFy
dCwgZW5kLCBwYWdlczsNCisNCisJCXN0YXJ0ID0gUEZOX0RPV04oSU5JVFJE
X1NUQVJUKTsNCisJCWVuZCA9IFBGTl9VUChJTklUUkRfU1RBUlQrSU5JVFJE
X1NJWkUpOw0KKwkJcGFnZXMgPSBlbmQgLSBzdGFydDsNCisJCWlmIChlbmQg
PCBtYXhfbG93X3Bmbikgew0KKwkJCXJlc2VydmVfYm9vdG1lbShzdGFydCwg
cGFnZXMpOw0KIAkJCWluaXRyZF9zdGFydCA9DQogCQkJCUlOSVRSRF9TVEFS
VCA/IElOSVRSRF9TVEFSVCArIFBBR0VfT0ZGU0VUIDogMDsNCi0JCQlpbml0
cmRfZW5kID0gaW5pdHJkX3N0YXJ0K0lOSVRSRF9TSVpFOw0KLQkJfQ0KLQkJ
ZWxzZSB7DQorCQkJaW5pdHJkX2VuZCA9IGluaXRyZF9zdGFydCArIElOSVRS
RF9TSVpFOw0KKwkJfSBlbHNlIHsNCiAJCQlwcmludGsoImluaXRyZCBleHRl
bmRzIGJleW9uZCBlbmQgb2YgbWVtb3J5ICINCiAJCQkgICAgIigweCUwOGx4
ID4gMHglMDhseClcbmRpc2FibGluZyBpbml0cmRcbiIsDQotCQkJICAgIElO
SVRSRF9TVEFSVCArIElOSVRSRF9TSVpFLA0KLQkJCSAgICBtYXhfbG93X3Bm
biA8PCBQQUdFX1NISUZUKTsNCisJCQkJICAgIElOSVRSRF9TVEFSVCArIElO
SVRSRF9TSVpFLA0KKwkJCQkgICAgbWF4X2xvd19wZm4gPDwgUEFHRV9TSElG
VCk7DQogCQkJaW5pdHJkX3N0YXJ0ID0gMDsNCiAJCX0NCiAJfQ0KQEAgLTcz
MCw2ICs3NjAsNyBAQA0KIAlwcm9iZV9yb21zKCk7DQogCWZvciAoaSA9IDA7
IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7DQogCQlzdHJ1Y3QgcmVzb3VyY2Ug
KnJlczsNCisNCiAJCWlmIChlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBb
aV0uc2l6ZSA+IDB4MTAwMDAwMDAwVUxMKQ0KIAkJCWNvbnRpbnVlOw0KIAkJ
cmVzID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCByZXNvdXJj
ZSkpOw0KQEAgLTc0NSw5ICs3NzYsOSBAQA0KIAkJcmVxdWVzdF9yZXNvdXJj
ZSgmaW9tZW1fcmVzb3VyY2UsIHJlcyk7DQogCQlpZiAoZTgyMC5tYXBbaV0u
dHlwZSA9PSBFODIwX1JBTSkgew0KIAkJCS8qDQotCQkJICogIFdlIGRvbnQn
dCBrbm93IHdoaWNoIFJBTSByZWdpb24gY29udGFpbnMga2VybmVsIGRhdGEs
DQotCQkJICogIHNvIHdlIHRyeSBpdCByZXBlYXRlZGx5IGFuZCBsZXQgdGhl
IHJlc291cmNlIG1hbmFnZXINCi0JCQkgKiAgdGVzdCBpdC4NCisJCQkgKiBX
ZSBkb250J3Qga25vdyB3aGljaCBSQU0gcmVnaW9uIGNvbnRhaW5zIGtlcm5l
bA0KKwkJCSAqIGRhdGEsIHNvIHdlIHRyeSBpdCByZXBlYXRlZGx5IGFuZCBs
ZXQgdGhlDQorCQkJICogcmVzb3VyY2UgbWFuYWdlciB0ZXN0IGl0Lg0KIAkJ
CSAqLw0KIAkJCXJlcXVlc3RfcmVzb3VyY2UocmVzLCAmY29kZV9yZXNvdXJj
ZSk7DQogCQkJcmVxdWVzdF9yZXNvdXJjZShyZXMsICZkYXRhX3Jlc291cmNl
KTsNCg==
--79888902-1843707332-943633760=:3417--

-
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/