[CFT][PATCH] loopback fixes for 2.3

Alexander Viro (aviro@redhat.com)
Sat, 12 Feb 2000 04:07:54 -0500 (EST)


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.

---1345333206-831891448-950346474=:21646
Content-Type: TEXT/PLAIN; charset=US-ASCII

Attached patch fixes the problems with /dev/loop. It should also
work over NFS/smbfs/whatever. Please, help testing it.
Cheers,
Al

---1345333206-831891448-950346474=:21646
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=loop-patch-3
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10002120407540.21646@aviro.devel.redhat.com>
Content-Description:
Content-Disposition: attachment; filename=loop-patch-3

ZGlmZiAtdXJOIGxpbnV4LTIuMy40NC1wcmU4L2RyaXZlcnMvYmxvY2svbG9v
cC5jIGxpbnV4LWJpcmQudm0vZHJpdmVycy9ibG9jay9sb29wLmMNCi0tLSBs
aW51eC0yLjMuNDQtcHJlOC9kcml2ZXJzL2Jsb2NrL2xvb3AuYwlUaHUgRmVi
IDEwIDE2OjQyOjExIDIwMDANCisrKyBsaW51eC1iaXJkLnZtL2RyaXZlcnMv
YmxvY2svbG9vcC5jCVNhdCBGZWIgMTIgMDM6NDE6MjcgMjAwMA0KQEAgLTQw
LDYgKzQwLDEwIEBADQogICogICBpdCBwYXNzZXMgdGhlIHVuZGVybHlpbmcg
ZGV2aWNlJ3MgYmxvY2sgbnVtYmVyIGluc3RlYWQgb2YgdGhlDQogICogICBv
ZmZzZXQuIFRoaXMgbWFrZXMgaXQgY2hhbmdlIGZvciBhIGdpdmVuIGJsb2Nr
IHdoZW4gdGhlIGZpbGUgaXMgDQogICogICBtb3ZlZC9yZXN0b3JlZC9jb3Bp
ZWQgYW5kIGFsc28gZG9lc24ndCB3b3JrIG92ZXIgTkZTLiANCisgKiBBViwg
RmViIDExLCAyMDAwOiBmb3IgZmlsZXMgd2UgcGFzcyB0aGUgcGFnZSBpbmRl
eCBub3cuIEl0IHNob3VsZCBmaXggdGhlDQorICogICBwcm9ibGVtIGFib3Zl
LiBTaW5jZSB0aGUgZ3JhbnVsYXJpdHkgaXMgUEFHRV9DQUNIRV9TSVpFIG5v
dyBpdCBzZWVtcyB0bw0KKyAqICAgYmUgY29ycmVjdCB3YXkuIE9UT0gsIHRh
a2luZyB0aGUgdGhpbmcgZnJvbSB4ODYgdG8gQWxwaGEgbWF5IGJlY29tZQ0K
KyAqICAgaW50ZXJlc3RpbmcsIHNvIHdlIG1pZ2h0IHdhbnQgdG8gcmV0aGlu
ayBpdC4NCiAgKi8gDQogDQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0K
QEAgLTc3LDEwICs4MSw2IEBADQogI2RlZmluZSBGQUxTRSAwDQogI2RlZmlu
ZSBUUlVFICghRkFMU0UpDQogDQotLyogRm9yd2FyZCBkZWNsYXJhdGlvbiBv
ZiBmdW5jdGlvbiB0byBjcmVhdGUgbWlzc2luZyBibG9ja3MgaW4gdGhlIA0K
LSAgIGJhY2tpbmcgZmlsZSAoY2FuIGhhcHBlbiBpZiB0aGUgYmFja2luZyBm
aWxlIGlzIHNwYXJzZSkgKi8NCi1zdGF0aWMgaW50IGNyZWF0ZV9taXNzaW5n
X2Jsb2NrKHN0cnVjdCBsb29wX2RldmljZSAqbG8sIGludCBibG9jaywgaW50
IGJsa3NpemUpOw0KLQ0KIC8qDQogICogVHJhbnNmZXIgZnVuY3Rpb25zDQog
ICovDQpAQCAtMTY0LDE0ICsxNjQsMTA5IEBADQogCWxvb3Bfc2l6ZXNbbG8t
PmxvX251bWJlcl0gPSBzaXplOw0KIH0NCiANCitzdGF0aWMgaW50IGxvX3Nl
bmQoc3RydWN0IGxvb3BfZGV2aWNlICpsbywgY2hhciAqZGF0YSwgaW50IGxl
biwgbG9mZl90IHBvcykNCit7DQorCXN0cnVjdCBmaWxlICpmaWxlID0gbG8t
PmxvX2JhY2tpbmdfZmlsZTsgLyoga3Vkb3MgdG8gTkZzY2tpbmdTICovDQor
CXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gbG8tPmxvX2RlbnRy
eS0+ZF9pbm9kZS0+aV9tYXBwaW5nOw0KKwlzdHJ1Y3QgYWRkcmVzc19zcGFj
ZV9vcGVyYXRpb25zICphb3BzID0gbWFwcGluZy0+YV9vcHM7DQorCXN0cnVj
dCBwYWdlICpwYWdlOw0KKwljaGFyICprYWRkcjsNCisJdW5zaWduZWQgbG9u
ZyBpbmRleDsNCisJdW5zaWduZWQgc2l6ZSwgb2Zmc2V0Ow0KKw0KKwlpbmRl
eCA9IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlvZmZzZXQgPSBwb3Mg
JiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorCXdoaWxlIChsZW4gPiAwKSB7
DQorCQlzaXplID0gUEFHRV9DQUNIRV9TSVpFIC0gb2Zmc2V0Ow0KKwkJaWYg
KHNpemUgPiBsZW4pDQorCQkJc2l6ZSA9IGxlbjsNCisNCisJCXBhZ2UgPSBn
cmFiX2NhY2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOw0KKwkJaWYgKCFwYWdl
KQ0KKwkJCWdvdG8gZmFpbDsNCisJCWlmIChhb3BzLT5wcmVwYXJlX3dyaXRl
KHBhZ2UsIG9mZnNldCwgb2Zmc2V0K3NpemUpKQ0KKwkJCWdvdG8gdW5sb2Nr
Ow0KKwkJa2FkZHIgPSAoY2hhciopcGFnZV9hZGRyZXNzKHBhZ2UpOw0KKwkJ
aWYgKChsby0+dHJhbnNmZXIpKGxvLCBXUklURSwga2FkZHIrb2Zmc2V0LCBk
YXRhLCBzaXplLCBpbmRleCkpDQorCQkJZ290byB3cml0ZV9mYWlsOw0KKwkJ
aWYgKGFvcHMtPmNvbW1pdF93cml0ZShmaWxlLCBwYWdlLCBvZmZzZXQsIG9m
ZnNldCtzaXplKSkNCisJCQlnb3RvIHVubG9jazsNCisJCWRhdGEgKz0gc2l6
ZTsNCisJCWxlbiAtPSBzaXplOw0KKwkJb2Zmc2V0ID0gMDsNCisJCWluZGV4
Kys7DQorCQlwb3MgKz0gc2l6ZTsNCisJCWlmIChwb3MgPiBsby0+bG9fZGVu
dHJ5LT5kX2lub2RlLT5pX3NpemUpDQorCQkJbG8tPmxvX2RlbnRyeS0+ZF9p
bm9kZS0+aV9zaXplID0gcG9zOw0KKwkJVW5sb2NrUGFnZShwYWdlKTsNCisJ
CXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsNCisJfQ0KKwlyZXR1cm4gMDsN
CisNCit3cml0ZV9mYWlsOg0KKwlwcmludGsoS0VSTl9FUlIgImxvb3A6IHRy
YW5zZmVyIGVycm9yIGJsb2NrICVsZFxuIiwgaW5kZXgpOw0KKwlDbGVhclBh
Z2VVcHRvZGF0ZShwYWdlKTsNCisJa3VubWFwKHBhZ2UpOw0KK3VubG9jazoN
CisJVW5sb2NrUGFnZShwYWdlKTsNCisJcGFnZV9jYWNoZV9yZWxlYXNlKHBh
Z2UpOw0KK2ZhaWw6DQorCXJldHVybiAtMTsNCit9DQorDQorc3RydWN0IGxv
X3JlYWRfZGF0YSB7DQorCXN0cnVjdCBsb29wX2RldmljZSAqbG87DQorCWNo
YXIgKmRhdGE7DQorfTsNCisNCitzdGF0aWMgaW50IGxvX3JlYWRfYWN0b3Io
cmVhZF9kZXNjcmlwdG9yX3QgKiBkZXNjLCBzdHJ1Y3QgcGFnZSAqcGFnZSwg
dW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSkNCit7
DQorCWNoYXIgKmthZGRyOw0KKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gZGVz
Yy0+Y291bnQ7DQorCXN0cnVjdCBsb19yZWFkX2RhdGEgKnAgPSAoc3RydWN0
IGxvX3JlYWRfZGF0YSopZGVzYy0+YnVmOw0KKwlzdHJ1Y3QgbG9vcF9kZXZp
Y2UgKmxvID0gcC0+bG87DQorDQorCWlmIChzaXplID4gY291bnQpDQorCQlz
aXplID0gY291bnQ7DQorDQorCWthZGRyID0gKGNoYXIqKWttYXAocGFnZSk7
DQorCWlmICgobG8tPnRyYW5zZmVyKShsbyxSRUFELGthZGRyK29mZnNldCxw
LT5kYXRhLHNpemUscGFnZS0+aW5kZXgpKSB7DQorCQlzaXplID0gMDsNCisJ
CXByaW50ayhLRVJOX0VSUiAibG9vcDogdHJhbnNmZXIgZXJyb3IgYmxvY2sg
JWxkXG4iLHBhZ2UtPmluZGV4KTsNCisJCWRlc2MtPmVycm9yID0gLUVJTlZB
TDsNCisJfQ0KKwlrdW5tYXAocGFnZSk7DQorCQ0KKwlkZXNjLT5jb3VudCA9
IGNvdW50IC0gc2l6ZTsNCisJZGVzYy0+d3JpdHRlbiArPSBzaXplOw0KKwlw
LT5kYXRhICs9IHNpemU7DQorCXJldHVybiBzaXplOw0KK30NCisNCitzdGF0
aWMgaW50IGxvX3JlY2VpdmUoc3RydWN0IGxvb3BfZGV2aWNlICpsbywgY2hh
ciAqZGF0YSwgaW50IGxlbiwgbG9mZl90IHBvcykNCit7DQorCXN0cnVjdCBm
aWxlICpmaWxlID0gbG8tPmxvX2JhY2tpbmdfZmlsZTsNCisJc3RydWN0IGxv
X3JlYWRfZGF0YSBjb29raWU7DQorCXJlYWRfZGVzY3JpcHRvcl90IGRlc2M7
DQorDQorCWNvb2tpZS5sbyA9IGxvOw0KKwljb29raWUuZGF0YSA9IGRhdGE7
DQorCWRlc2Mud3JpdHRlbiA9IDA7DQorCWRlc2MuY291bnQgPSBsZW47DQor
CWRlc2MuYnVmID0gKGNoYXIqKSZjb29raWU7DQorCWRlc2MuZXJyb3IgPSAw
Ow0KKwlkb19nZW5lcmljX2ZpbGVfcmVhZChmaWxlLCAmcG9zLCAmZGVzYywg
bG9fcmVhZF9hY3Rvcik7DQorCXJldHVybiBkZXNjLmVycm9yOw0KK30NCisN
CiBzdGF0aWMgdm9pZCBkb19sb19yZXF1ZXN0KHJlcXVlc3RfcXVldWVfdCAq
IHEpDQogew0KLQlpbnQJcmVhbF9ibG9jaywgYmxvY2ssIG9mZnNldCwgbGVu
LCBibGtzaXplLCBzaXplOw0KKwlpbnQJYmxvY2ssIG9mZnNldCwgbGVuLCBi
bGtzaXplLCBzaXplOw0KIAljaGFyCSpkZXN0X2FkZHI7DQogCXN0cnVjdCBs
b29wX2RldmljZSAqbG87DQogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7DQog
CXN0cnVjdCByZXF1ZXN0ICpjdXJyZW50X3JlcXVlc3Q7DQotCWludAlibG9j
a19wcmVzZW50Ow0KKwlsb2ZmX3QgcG9zOw0KIA0KIHJlcGVhdDoNCiAJSU5J
VF9SRVFVRVNUOw0KQEAgLTE4Miw2ICsyNzcsMTggQEANCiAJbG8gPSAmbG9v
cF9kZXZbTUlOT1IoY3VycmVudF9yZXF1ZXN0LT5ycV9kZXYpXTsNCiAJaWYg
KCFsby0+bG9fZGVudHJ5IHx8ICFsby0+dHJhbnNmZXIpDQogCQlnb3RvIGVy
cm9yX291dDsNCisJaWYgKGN1cnJlbnRfcmVxdWVzdC0+Y21kID09IFdSSVRF
KSB7DQorCQlpZiAobG8tPmxvX2ZsYWdzICYgTE9fRkxBR1NfUkVBRF9PTkxZ
KQ0KKwkJCWdvdG8gZXJyb3Jfb3V0Ow0KKwl9IGVsc2UgaWYgKGN1cnJlbnRf
cmVxdWVzdC0+Y21kICE9IFJFQUQpIHsNCisJCXByaW50ayhLRVJOX0VSUiAi
dW5rbm93biBsb29wIGRldmljZSBjb21tYW5kICglZCk/IT8iLCBjdXJyZW50
X3JlcXVlc3QtPmNtZCk7DQorCQlnb3RvIGVycm9yX291dDsNCisJfQ0KKw0K
KwlkZXN0X2FkZHIgPSBjdXJyZW50X3JlcXVlc3QtPmJ1ZmZlcjsNCisJbGVu
ID0gY3VycmVudF9yZXF1ZXN0LT5jdXJyZW50X25yX3NlY3RvcnMgPDwgOTsN
CisJaWYgKGxvLT5sb19mbGFncyAmIExPX0ZMQUdTX0RPX0JNQVApDQorCQln
b3RvIGZpbGVfYmFja2VkOw0KIA0KIAlibGtzaXplID0gQkxPQ0tfU0laRTsN
CiAJaWYgKGJsa3NpemVfc2l6ZVtNQUpPUihsby0+bG9fZGV2aWNlKV0pIHsN
CkBAIC0xODksOSArMjk2LDYgQEANCiAJICAgIGlmICghYmxrc2l6ZSkNCiAJ
ICAgICAgYmxrc2l6ZSA9IEJMT0NLX1NJWkU7DQogCX0NCi0NCi0JZGVzdF9h
ZGRyID0gY3VycmVudF9yZXF1ZXN0LT5idWZmZXI7DQotCQ0KIAlpZiAoYmxr
c2l6ZSA8IDUxMikgew0KIAkJYmxvY2sgPSBjdXJyZW50X3JlcXVlc3QtPnNl
Y3RvciAqICg1MTIvYmxrc2l6ZSk7DQogCQlvZmZzZXQgPSAwOw0KQEAgLTIw
MSw4NyArMzA1LDY4IEBADQogCX0NCiAJYmxvY2sgKz0gbG8tPmxvX29mZnNl
dCAvIGJsa3NpemU7DQogCW9mZnNldCArPSBsby0+bG9fb2Zmc2V0ICUgYmxr
c2l6ZTsNCi0JaWYgKG9mZnNldCA+IGJsa3NpemUpIHsNCisJaWYgKG9mZnNl
dCA+PSBibGtzaXplKSB7DQogCQlibG9jaysrOw0KIAkJb2Zmc2V0IC09IGJs
a3NpemU7DQogCX0NCi0JbGVuID0gY3VycmVudF9yZXF1ZXN0LT5jdXJyZW50
X25yX3NlY3RvcnMgPDwgOTsNCi0NCi0JaWYgKGN1cnJlbnRfcmVxdWVzdC0+
Y21kID09IFdSSVRFKSB7DQotCQlpZiAobG8tPmxvX2ZsYWdzICYgTE9fRkxB
R1NfUkVBRF9PTkxZKQ0KLQkJCWdvdG8gZXJyb3Jfb3V0Ow0KLQl9IGVsc2Ug
aWYgKGN1cnJlbnRfcmVxdWVzdC0+Y21kICE9IFJFQUQpIHsNCi0JCXByaW50
ayhLRVJOX0VSUiAidW5rbm93biBsb29wIGRldmljZSBjb21tYW5kICglZCk/
IT8iLCBjdXJyZW50X3JlcXVlc3QtPmNtZCk7DQotCQlnb3RvIGVycm9yX291
dDsNCi0JfQ0KIAlzcGluX3VubG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7
DQorDQogCXdoaWxlIChsZW4gPiAwKSB7DQogDQogCQlzaXplID0gYmxrc2l6
ZSAtIG9mZnNldDsNCiAJCWlmIChzaXplID4gbGVuKQ0KIAkJCXNpemUgPSBs
ZW47DQogDQotCQlyZWFsX2Jsb2NrID0gYmxvY2s7DQotCQlibG9ja19wcmVz
ZW50ID0gVFJVRTsNCi0NCi0JCWlmIChsby0+bG9fZmxhZ3MgJiBMT19GTEFH
U19ET19CTUFQKSB7DQotCQkJcmVhbF9ibG9jayA9IGJtYXAobG8tPmxvX2Rl
bnRyeS0+ZF9pbm9kZSwgYmxvY2spOw0KLQkJCWlmICghcmVhbF9ibG9jaykg
ew0KLQ0KLQkJCQkvKiBUaGUgYmFja2luZyBmaWxlIGlzIGEgc3BhcnNlIGZp
bGUgYW5kIHRoaXMgYmxvY2sNCi0JCQkJICAgZG9lc24ndCBleGlzdC4gIElm
IHJlYWRpbmcsIHJldHVybiB6ZXJvcy4gIElmDQotCQkJCSAgIHdyaXRpbmcs
IGZvcmNlIHRoZSB1bmRlcmx5aW5nIEZTIHRvIGNyZWF0ZQ0KLQkJCQkgICB0
aGUgYmxvY2sgKi8NCi0JCQkJaWYgKGN1cnJlbnRfcmVxdWVzdC0+Y21kID09
IFJFQUQpIHsNCi0JCQkJCW1lbXNldChkZXN0X2FkZHIsIDAsIHNpemUpOw0K
LQkJCQkJYmxvY2tfcHJlc2VudCA9IEZBTFNFOw0KLQkJCQl9IGVsc2Ugew0K
LQkJCQkJaWYgKCFjcmVhdGVfbWlzc2luZ19ibG9jayhsbywgYmxvY2ssIGJs
a3NpemUpKSB7DQotCQkJCQkJZ290byBlcnJvcl9vdXRfbG9jazsNCi0JCQkJ
CX0NCi0JCQkJCXJlYWxfYmxvY2sgPSBibWFwKGxvLT5sb19kZW50cnktPmRf
aW5vZGUsIGJsb2NrKTsNCi0JCQkJfQ0KLQ0KLQkJCX0NCisJCWJoID0gZ2V0
YmxrKGxvLT5sb19kZXZpY2UsIGJsb2NrLCBibGtzaXplKTsNCisJCWlmICgh
YmgpIHsNCisJCQlwcmludGsoS0VSTl9FUlIgImxvb3A6IGRldmljZSAlczog
Z2V0YmxrKC0sICVkLCAlZCkgcmV0dXJuZWQgTlVMTCIsDQorCQkJCWtkZXZu
YW1lKGxvLT5sb19kZXZpY2UpLA0KKwkJCQlibG9jaywgYmxrc2l6ZSk7DQor
CQkJZ290byBlcnJvcl9vdXRfbG9jazsNCiAJCX0NCi0NCi0JCWlmIChibG9j
a19wcmVzZW50KSB7DQotCQkJYmggPSBnZXRibGsobG8tPmxvX2RldmljZSwg
cmVhbF9ibG9jaywgYmxrc2l6ZSk7DQotCQkJaWYgKCFiaCkgew0KLQkJCQlw
cmludGsoS0VSTl9FUlIgImxvb3A6IGRldmljZSAlczogZ2V0YmxrKC0sICVk
LCAlZCkgcmV0dXJuZWQgTlVMTCIsDQotCQkJCQlrZGV2bmFtZShsby0+bG9f
ZGV2aWNlKSwNCi0JCQkJCWJsb2NrLCBibGtzaXplKTsNCi0JCQkJZ290byBl
cnJvcl9vdXRfbG9jazsNCi0JCQl9DQotCQkJaWYgKCFidWZmZXJfdXB0b2Rh
dGUoYmgpICYmICgoY3VycmVudF9yZXF1ZXN0LT5jbWQgPT0gUkVBRCkgfHwN
Ci0JCQkJCQkob2Zmc2V0IHx8IChsZW4gPCBibGtzaXplKSkpKSB7DQotCQkJ
CWxsX3J3X2Jsb2NrKFJFQUQsIDEsICZiaCk7DQotCQkJCXdhaXRfb25fYnVm
ZmVyKGJoKTsNCi0JCQkJaWYgKCFidWZmZXJfdXB0b2RhdGUoYmgpKSB7DQot
CQkJCQlicmVsc2UoYmgpOw0KLQkJCQkJZ290byBlcnJvcl9vdXRfbG9jazsN
Ci0JCQkJfQ0KLQkJCX0NCi0NCi0JCQlpZiAoKGxvLT50cmFuc2ZlcikobG8s
IGN1cnJlbnRfcmVxdWVzdC0+Y21kLCBiaC0+Yl9kYXRhICsgb2Zmc2V0LA0K
LQkJCQkJZGVzdF9hZGRyLCBzaXplLCByZWFsX2Jsb2NrKSkgew0KLQkJCQlw
cmludGsoS0VSTl9FUlIgImxvb3A6IHRyYW5zZmVyIGVycm9yIGJsb2NrICVk
XG4iLCBibG9jayk7DQorCQlpZiAoIWJ1ZmZlcl91cHRvZGF0ZShiaCkgJiYg
KChjdXJyZW50X3JlcXVlc3QtPmNtZCA9PSBSRUFEKSB8fA0KKwkJCQkJKG9m
ZnNldCB8fCAobGVuIDwgYmxrc2l6ZSkpKSkgew0KKwkJCWxsX3J3X2Jsb2Nr
KFJFQUQsIDEsICZiaCk7DQorCQkJd2FpdF9vbl9idWZmZXIoYmgpOw0KKwkJ
CWlmICghYnVmZmVyX3VwdG9kYXRlKGJoKSkgew0KIAkJCQlicmVsc2UoYmgp
Ow0KIAkJCQlnb3RvIGVycm9yX291dF9sb2NrOw0KIAkJCX0NCisJCX0NCiAN
Ci0JCQlpZiAoY3VycmVudF9yZXF1ZXN0LT5jbWQgPT0gV1JJVEUpIHsNCi0J
CQkJbWFya19idWZmZXJfdXB0b2RhdGUoYmgsIDEpOw0KLQkJCQltYXJrX2J1
ZmZlcl9kaXJ0eShiaCwgMSk7DQotCQkJfQ0KKwkJaWYgKChsby0+dHJhbnNm
ZXIpKGxvLCBjdXJyZW50X3JlcXVlc3QtPmNtZCwgYmgtPmJfZGF0YSArIG9m
ZnNldCwNCisJCQkJZGVzdF9hZGRyLCBzaXplLCBibG9jaykpIHsNCisJCQlw
cmludGsoS0VSTl9FUlIgImxvb3A6IHRyYW5zZmVyIGVycm9yIGJsb2NrICVk
XG4iLCBibG9jayk7DQogCQkJYnJlbHNlKGJoKTsNCisJCQlnb3RvIGVycm9y
X291dF9sb2NrOw0KIAkJfQ0KKw0KKwkJaWYgKGN1cnJlbnRfcmVxdWVzdC0+
Y21kID09IFdSSVRFKSB7DQorCQkJbWFya19idWZmZXJfdXB0b2RhdGUoYmgs
IDEpOw0KKwkJCW1hcmtfYnVmZmVyX2RpcnR5KGJoLCAxKTsNCisJCX0NCisJ
CWJyZWxzZShiaCk7DQogCQlkZXN0X2FkZHIgKz0gc2l6ZTsNCiAJCWxlbiAt
PSBzaXplOw0KIAkJb2Zmc2V0ID0gMDsNCiAJCWJsb2NrKys7DQogCX0NCisJ
Z290byBkb25lOw0KKw0KK2ZpbGVfYmFja2VkOg0KKwlwb3MgPSAoKGxvZmZf
dCljdXJyZW50X3JlcXVlc3QtPnNlY3RvciA8PCA5KSArIGxvLT5sb19vZmZz
ZXQ7DQorCXNwaW5fdW5sb2NrX2lycSgmaW9fcmVxdWVzdF9sb2NrKTsNCisJ
aWYgKGN1cnJlbnRfcmVxdWVzdC0+Y21kID09IFdSSVRFKSB7DQorCQlpZiAo
bG9fc2VuZChsbywgZGVzdF9hZGRyLCBsZW4sIHBvcykpDQorCQkJZ290byBl
cnJvcl9vdXRfbG9jazsNCisJfSBlbHNlIHsNCisJCWlmIChsb19yZWNlaXZl
KGxvLCBkZXN0X2FkZHIsIGxlbiwgcG9zKSkNCisJCQlnb3RvIGVycm9yX291
dF9sb2NrOw0KKwl9DQorZG9uZToNCiAJc3Bpbl9sb2NrX2lycSgmaW9fcmVx
dWVzdF9sb2NrKTsNCisJY3VycmVudF9yZXF1ZXN0LT5zZWN0b3IgKz0gY3Vy
cmVudF9yZXF1ZXN0LT5jdXJyZW50X25yX3NlY3RvcnM7DQorCWN1cnJlbnRf
cmVxdWVzdC0+bnJfc2VjdG9ycyAtPSBjdXJyZW50X3JlcXVlc3QtPmN1cnJl
bnRfbnJfc2VjdG9yczsNCiAJY3VycmVudF9yZXF1ZXN0LT5uZXh0PUNVUlJF
TlQ7DQogCUNVUlJFTlQ9Y3VycmVudF9yZXF1ZXN0Ow0KIAllbmRfcmVxdWVz
dCgxKTsNCkBAIC0yOTUsNjEgKzM4MCw2IEBADQogCWdvdG8gcmVwZWF0Ow0K
IH0NCiANCi1zdGF0aWMgaW50IGNyZWF0ZV9taXNzaW5nX2Jsb2NrKHN0cnVj
dCBsb29wX2RldmljZSAqbG8sIGludCBibG9jaywgaW50IGJsa3NpemUpDQot
ew0KLQlzdHJ1Y3QgZmlsZSAgICAgKmZpbGU7DQotCWxvZmZfdCAgICAgICAg
ICBuZXdfb2Zmc2V0Ow0KLQljaGFyICAgICAgICAgICAgemVyb19idWZbMV0g
PSB7IDAgfTsNCi0Jc3NpemVfdCAgICAgICAgIHJldHZhbDsNCi0JbW1fc2Vn
bWVudF90CW9sZF9mczsNCi0Jc3RydWN0IGlub2RlCSppbm9kZTsNCi0NCi0J
ZmlsZSA9IGxvLT5sb19iYWNraW5nX2ZpbGU7DQotCWlmIChmaWxlID09IE5V
TEwpIHsNCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImxvb3A6IGNhbm5vdCBj
cmVhdGUgYmxvY2sgLSBubyBiYWNraW5nIGZpbGVcbiIpOw0KLQkJcmV0dXJu
IEZBTFNFOw0KLQl9DQotDQotCWlmIChmaWxlLT5mX29wID09IE5VTEwpIHsN
Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImxvb3A6IGNhbm5vdCBjcmVhdGUg
YmxvY2sgLSBubyBmaWxlIG9wc1xuIik7DQotCQlyZXR1cm4gRkFMU0U7DQot
CX0NCi0NCi0JbmV3X29mZnNldCA9IGJsb2NrICogYmxrc2l6ZTsNCi0NCi0J
aWYgKGZpbGUtPmZfb3AtPmxsc2VlayAhPSBOVUxMKSB7DQotCQlmaWxlLT5m
X29wLT5sbHNlZWsoZmlsZSwgbmV3X29mZnNldCwgMCk7DQotCX0gZWxzZSB7
DQotCQkvKiBEbyB3aGF0IHRoZSBkZWZhdWx0IGxsc2VlaygpIGNvZGUgd291
bGQgaGF2ZSBkb25lICovDQotCQlmaWxlLT5mX3BvcyA9IG5ld19vZmZzZXQ7
DQotCQlmaWxlLT5mX3JlYWRhID0gMDsNCi0JCWZpbGUtPmZfdmVyc2lvbiA9
ICsrZXZlbnQ7DQotCX0NCi0NCi0JaWYgKGZpbGUtPmZfb3AtPndyaXRlID09
IE5VTEwpIHsNCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImxvb3A6IGNhbm5v
dCBjcmVhdGUgYmxvY2sgLSBmaWxlIG5vdCB3cml0ZWFibGVcbiIpOw0KLQkJ
cmV0dXJuIEZBTFNFOw0KLQl9DQotDQotCW9sZF9mcyA9IGdldF9mcygpOw0K
LQlzZXRfZnMoZ2V0X2RzKCkpOw0KLQ0KLQlpbm9kZSA9IGZpbGUtPmZfZGVu
dHJ5LT5kX2lub2RlOw0KLQlkb3duKCZpbm9kZS0+aV9zZW0pOyANCi0JcmV0
dmFsID0gZmlsZS0+Zl9vcC0+d3JpdGUoZmlsZSwgemVyb19idWYsIDEsICZm
aWxlLT5mX3Bvcyk7DQotCXVwKCZpbm9kZS0+aV9zZW0pOw0KLQkNCi0Jc2V0
X2ZzKG9sZF9mcyk7DQotDQotCWlmIChyZXR2YWwgPCAwKSB7DQotCQlwcmlu
dGsoS0VSTl9XQVJOSU5HICJsb29wOiBjYW5ub3QgY3JlYXRlIGJsb2NrIC0g
RlMgd3JpdGUgZmFpbGVkOiBjb2RlICVaaVxuIiwNCi0JCQlyZXR2YWwpOw0K
LQkJcmV0dXJuIEZBTFNFOw0KLQl9IGVsc2Ugew0KLQkJcmV0dXJuIFRSVUU7
DQotCX0NCi19DQotDQogc3RhdGljIGludCBsb29wX3NldF9mZChzdHJ1Y3Qg
bG9vcF9kZXZpY2UgKmxvLCBrZGV2X3QgZGV2LCB1bnNpZ25lZCBpbnQgYXJn
KQ0KIHsNCiAJc3RydWN0IGZpbGUJKmZpbGU7DQpAQCAtMzg2LDIyICs0MTYs
MTIgQEANCiAJCSAgIGEgZmlsZSBzdHJ1Y3R1cmUgKi8NCiAJCWxvLT5sb19i
YWNraW5nX2ZpbGUgPSBOVUxMOw0KIAl9IGVsc2UgaWYgKFNfSVNSRUcoaW5v
ZGUtPmlfbW9kZSkpIHsNCi0JCS8qDQotCQkgKiBUb3RhbCBjcmFwLiBXZSBz
aG91bGQganVzdCB1c2UgcGFnZWNhY2hlIGluc3RlYWQgb2YgdHJ5aW5nDQot
CQkgKiB0byByZWRpcmVjdCBvbiBibG9jayBsZXZlbC4NCi0JCSAqLw0KLQkJ
aWYgKCFpbm9kZS0+aV9tYXBwaW5nLT5hX29wcy0+Ym1hcCkgew0KLQkJCXBy
aW50ayhLRVJOX0VSUiAibG9vcDogZGV2aWNlIGhhcyBubyBibG9jayBhY2Nl
c3Mvbm90IGltcGxlbWVudGVkXG4iKTsNCi0JCQlnb3RvIG91dF9wdXRmOw0K
LQkJfQ0KLQ0KLQkJLyogQmFja2VkIGJ5IGEgcmVndWxhciBmaWxlIC0gd2Ug
bmVlZCB0byBob2xkIG9udG8NCi0JCSAgIGEgZmlsZSBzdHJ1Y3R1cmUgZm9y
IHRoaXMgZmlsZS4gIFdlJ2xsIHVzZSBpdCB0bw0KLQkJICAgd3JpdGUgdG8g
YmxvY2tzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHByZXNlbnQgaW4gDQotCQkg
ICBhIHNwYXJzZSBmaWxlLiAgV2UgY3JlYXRlIGEgbmV3IGZpbGUgc3RydWN0
dXJlDQotCQkgICBiYXNlZCBvbiB0aGUgb25lIHBhc3NlZCB0byB1cyB2aWEg
J2FyZycuICBUaGlzIGlzDQotCQkgICB0byBhdm9pZCBjaGFuZ2luZyB0aGUg
ZmlsZSBzdHJ1Y3R1cmUgdGhhdCB0aGUNCi0JCSAgIGNhbGxlciBpcyB1c2lu
ZyAqLw0KKwkJLyogQmFja2VkIGJ5IGEgcmVndWxhciBmaWxlIC0gd2UgbmVl
ZCB0byBob2xkIG9udG8gYSBmaWxlDQorCQkgICBzdHJ1Y3R1cmUgZm9yIHRo
aXMgZmlsZS4gIEZyaWdnaW4nIE5GUyBjYW4ndCBsaXZlIHdpdGhvdXQNCisJ
CSAgIGl0IG9uIHdyaXRlIGFuZCBmb3IgcmVhZGluZyB3ZSB1c2UgZG9fZ2Vu
ZXJpY19maWxlX3JlYWQoKSwNCisJCSAgIHNvLi4uICBXZSBjcmVhdGUgYSBu
ZXcgZmlsZSBzdHJ1Y3R1cmUgYmFzZWQgb24gdGhlIG9uZQ0KKwkJICAgcGFz
c2VkIHRvIHVzIHZpYSAnYXJnJy4gIFRoaXMgaXMgdG8gYXZvaWQgY2hhbmdp
bmcgdGhlIGZpbGUNCisJCSAgIHN0cnVjdHVyZSB0aGF0IHRoZSBjYWxsZXIg
aXMgdXNpbmcgKi8NCiANCiAJCWxvLT5sb19kZXZpY2UgPSBpbm9kZS0+aV9k
ZXY7DQogCQlsby0+bG9fZmxhZ3MgPSBMT19GTEFHU19ET19CTUFQOw0KQEAg
LTQzMiw3ICs0NTIsNiBAQA0KIAkJbG8tPmxvX2ZsYWdzIHw9IExPX0ZMQUdT
X1JFQURfT05MWTsNCiAJCXNldF9kZXZpY2Vfcm8oZGV2LCAxKTsNCiAJfSBl
bHNlIHsNCi0JCXZtdHJ1bmNhdGUgKGlub2RlLCAwKTsNCiAJCXNldF9kZXZp
Y2Vfcm8oZGV2LCAwKTsNCiAJfQ0KIA0K
---1345333206-831891448-950346474=:21646--

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