[PATCH][2.3.0] Read-write locks instead semaphores on UTS structures

Marcelo Tosatti (marcelo@conectiva.com.br)
Wed, 12 May 1999 16:50:22 -0300 (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.

--8323328-1778630658-926538622=:498
Content-Type: TEXT/PLAIN; charset=US-ASCII

This patch implements read-write locks instead semaphores in UTS
structures as noted by Linus in kernel/sys.c.

Linus, can you apply this?

- Marcelo

--8323328-1778630658-926538622=:498
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="uts-rwlock.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9905121650220.498@freak.conectiva>
Content-Description:
Content-Disposition: attachment; filename="uts-rwlock.patch"

ZGlmZiAtTnVyIGxpbnV4Lm9yaWcvQ1JFRElUUyBsaW51eC9DUkVESVRTDQot
LS0gbGludXgub3JpZy9DUkVESVRTCVdlZCBNYXkgMTIgMTU6NDU6MzAgMTk5
OQ0KKysrIGxpbnV4L0NSRURJVFMJV2VkIE1heSAxMiAxNTo0NzozMiAxOTk5
DQpAQCAtMTg4Niw2ICsxODg2LDE1IEBADQogUzogU2FudGEgQ2xhcmEsIENh
bGlmb3JuaWEgOTUwNTENCiBTOiBVU0ENCiANCitOOiBNYXJjZWxvIFcuIFRv
c2F0dGkNCitFOiBtYXJjZWxvQGNvbmVjdGl2YS5jb20uYnINCitXOiBodHRw
Oi8vbGllLWJyLmNvbmVjdGl2YS5jb20uYnIvfm1hcmNlbG8vDQorRDogTWlz
Y2VsbGFuZW91cyBrZXJuZWwgaGFja2VyDQorRDogQ3ljbG9tIDJYIGRyaXZl
ciBoYWNrZXINCitTOiBSLiBQcm9mLiBSdWJlbnMgRWxrZSBCcmFnYSwgNTU4
IC0gUGFyb2xpbg0KK1M6IDgwMjIwLTMyMCBDdXJpdGliYSAtIFBhcmFuYQ0K
K1M6IEJyYXppbA0KKw0KIE46IFN0ZWZhbiBUcmFieQ0KIEU6IHN0ZWZhbkBx
dWFudC14LmNvbQ0KIEQ6IE1pbm9yIEFscGhhIGtlcm5lbCBoYWNrcw0KZGlm
ZiAtTnVyIGxpbnV4Lm9yaWcvYXJjaC9hbHBoYS9rZXJuZWwvb3NmX3N5cy5j
IGxpbnV4L2FyY2gvYWxwaGEva2VybmVsL29zZl9zeXMuYw0KLS0tIGxpbnV4
Lm9yaWcvYXJjaC9hbHBoYS9rZXJuZWwvb3NmX3N5cy5jCVdlZCBNYXkgMTIg
MTU6NDY6NTggMTk5OQ0KKysrIGxpbnV4L2FyY2gvYWxwaGEva2VybmVsL29z
Zl9zeXMuYwlXZWQgTWF5IDEyIDE1OjQ3OjMzIDE5OTkNCkBAIC01NDUsNyAr
NTQ1LDcgQEANCiB7DQogCWludCBlcnJvcjsNCiANCi0JZG93bigmdXRzX3Nl
bSk7DQorCXJlYWRfbG9jaygmdXRzX3J3bG9jayk7DQogCWVycm9yID0gLUVG
QVVMVDsNCiAJaWYgKGNvcHlfdG9fdXNlcihuYW1lICsgMCwgc3lzdGVtX3V0
c25hbWUuc3lzbmFtZSwgMzIpKQ0KIAkJZ290byBvdXQ7DQpAQCAtNTYwLDcg
KzU2MCw3IEBADQogDQogCWVycm9yID0gMDsNCiBvdXQ6DQotCXVwKCZ1dHNf
c2VtKTsJDQorCXJlYWRfdW5sb2NrKCZ1dHNfcndsb2NrKTsNCiAJcmV0dXJu
IGVycm9yOw0KIH0NCiANCkBAIC02MTksMTMgKzYxOSwxMyBAQA0KIAlpZiAo
bmFtZWxlbiA+IDMyKQ0KIAkJbGVuID0gMzI7DQogDQotCWRvd24oJnV0c19z
ZW0pOw0KKwlyZWFkX2xvY2soJnV0c19yd2xvY2spOw0KIAlmb3IgKGkgPSAw
OyBpIDwgbGVuOyArK2kpIHsNCiAJCV9fcHV0X3VzZXIoc3lzdGVtX3V0c25h
bWUuZG9tYWlubmFtZVtpXSwgbmFtZSArIGkpOw0KIAkJaWYgKHN5c3RlbV91
dHNuYW1lLmRvbWFpbm5hbWVbaV0gPT0gJ1wwJykNCiAJCQlicmVhazsNCiAJ
fQ0KLQl1cCgmdXRzX3NlbSk7DQorCXJlYWRfdW5sb2NrKCZ1dHNfcndsb2Nr
KTsNCiBvdXQ6DQogCXVubG9ja19rZXJuZWwoKTsNCiAJcmV0dXJuIGVycm9y
Ow0KQEAgLTg1OSw3ICs4NTksNyBAQA0KIAkJZ290byBvdXQ7DQogCX0NCiAJ
DQotCWRvd24oJnV0c19zZW0pOw0KKwlyZWFkX2xvY2soJnV0c19yd2xvY2sp
DQogCXJlcyA9IHN5c2luZm9fdGFibGVbb2Zmc2V0XTsNCiAJbGVuID0gc3Ry
bGVuKHJlcykrMTsNCiAJaWYgKGxlbiA+IGNvdW50KQ0KQEAgLTg2OCw3ICs4
NjgsNyBAQA0KIAkJZXJyID0gLUVGQVVMVDsNCiAJZWxzZQ0KIAkJZXJyID0g
MDsNCi0JdXAoJnV0c19zZW0pOw0KKwlyZWFkX3VubG9jaygmdXRzX3J3bG9j
ayk7DQogb3V0Og0KIAl1bmxvY2tfa2VybmVsKCk7DQogCXJldHVybiBlcnI7
DQpkaWZmIC1OdXIgbGludXgub3JpZy9hcmNoL2FybS9rZXJuZWwvc3lzX2Fy
bS5jIGxpbnV4L2FyY2gvYXJtL2tlcm5lbC9zeXNfYXJtLmMNCi0tLSBsaW51
eC5vcmlnL2FyY2gvYXJtL2tlcm5lbC9zeXNfYXJtLmMJV2VkIE1heSAxMiAx
NTo0NzoxMyAxOTk5DQorKysgbGludXgvYXJjaC9hcm0va2VybmVsL3N5c19h
cm0uYwlXZWQgTWF5IDEyIDE1OjQ3OjMzIDE5OTkNCkBAIC0zMjEsOSArMzIx
LDkgQEANCiANCiAJaWYoIW5hbWUpDQogCQlyZXR1cm4gLUVGQVVMVDsNCi0J
ZG93bigmdXRzX3NlbSk7DQorCXJlYWRfbG9jaygmdXRzX3J3bG9jayk7DQog
CWVycj1jb3B5X3RvX3VzZXIgKG5hbWUsICZzeXN0ZW1fdXRzbmFtZSwgc2l6
ZW9mICgqbmFtZSkpOw0KLQl1cCgmdXRzX3NlbSk7DQorCXJlYWRfdW5sb2Nr
KCZ1dHNfcndsb2NrKTsJDQogCXJldHVybiBlcnI/LUVGQVVMVDowOw0KIH0N
CiANCkBAIC0zNDQsNyArMzQ0LDcgQEANCiAJaWYgKCFhY2Nlc3Nfb2soVkVS
SUZZX1dSSVRFLG5hbWUsc2l6ZW9mKHN0cnVjdCBvbGRvbGRfdXRzbmFtZSkp
KQ0KIAkJcmV0dXJuIC1FRkFVTFQ7DQogDQotCWRvd24oJnV0c19zZW0pOw0K
KwlyZWFkX2xvY2soJnV0c19yd2xvY2spOwkNCiAJDQogCWVycm9yID0gX19j
b3B5X3RvX3VzZXIoJm5hbWUtPnN5c25hbWUsJnN5c3RlbV91dHNuYW1lLnN5
c25hbWUsX19PTERfVVRTX0xFTik7DQogCWVycm9yIC09IF9fcHV0X3VzZXIo
MCxuYW1lLT5zeXNuYW1lK19fT0xEX1VUU19MRU4pOw0KQEAgLTM1Nyw3ICsz
NTcsNyBAQA0KIAllcnJvciAtPSBfX2NvcHlfdG9fdXNlcigmbmFtZS0+bWFj
aGluZSwmc3lzdGVtX3V0c25hbWUubWFjaGluZSxfX09MRF9VVFNfTEVOKTsN
CiAJZXJyb3IgLT0gX19wdXRfdXNlcigwLG5hbWUtPm1hY2hpbmUrX19PTERf
VVRTX0xFTik7DQogCQ0KLQl1cCgmdXRzX3NlbSk7DQorCXJlYWRfdW5sb2Nr
KCZ1dHNfcndsb2NrKTsNCiAJDQogCWVycm9yID0gZXJyb3IgPyAtRUZBVUxU
IDogMDsNCiANCmRpZmYgLU51ciBsaW51eC5vcmlnL2FyY2gvaTM4Ni9rZXJu
ZWwvc3lzX2kzODYuYyBsaW51eC9hcmNoL2kzODYva2VybmVsL3N5c19pMzg2
LmMNCi0tLSBsaW51eC5vcmlnL2FyY2gvaTM4Ni9rZXJuZWwvc3lzX2kzODYu
YwlXZWQgTWF5IDEyIDE1OjQ2OjQ5IDE5OTkNCisrKyBsaW51eC9hcmNoL2kz
ODYva2VybmVsL3N5c19pMzg2LmMJV2VkIE1heSAxMiAxNTo0NzozNCAxOTk5
DQpAQCAtMjA2LDkgKzIwNiw5IEBADQogCWludCBlcnI7DQogCWlmICghbmFt
ZSkNCiAJCXJldHVybiAtRUZBVUxUOw0KLQlkb3duKCZ1dHNfc2VtKTsNCisJ
cmVhZF9sb2NrKCZ1dHNfcndsb2NrKTsNCiAJZXJyPWNvcHlfdG9fdXNlcihu
YW1lLCAmc3lzdGVtX3V0c25hbWUsIHNpemVvZiAoKm5hbWUpKTsNCi0JdXAo
JnV0c19zZW0pOw0KKwlyZWFkX3VubG9jaygmdXRzX3J3bG9jayk7DQogCXJl
dHVybiBlcnI/LUVGQVVMVDowOw0KIH0NCiANCkBAIC0yMjEsNyArMjIxLDcg
QEANCiAJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLG5hbWUsc2l6ZW9m
KHN0cnVjdCBvbGRvbGRfdXRzbmFtZSkpKQ0KIAkJcmV0dXJuIC1FRkFVTFQ7
DQogICANCi0gIAlkb3duKCZ1dHNfc2VtKTsNCisJcmVhZF9sb2NrKCZ1dHNf
cndsb2NrKTsJDQogCQ0KIAllcnJvciA9IF9fY29weV90b191c2VyKCZuYW1l
LT5zeXNuYW1lLCZzeXN0ZW1fdXRzbmFtZS5zeXNuYW1lLF9fT0xEX1VUU19M
RU4pOw0KIAllcnJvciB8PSBfX3B1dF91c2VyKDAsbmFtZS0+c3lzbmFtZStf
X09MRF9VVFNfTEVOKTsNCkBAIC0yMzQsNyArMjM0LDcgQEANCiAJZXJyb3Ig
fD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPm1hY2hpbmUsJnN5c3RlbV91dHNu
YW1lLm1hY2hpbmUsX19PTERfVVRTX0xFTik7DQogCWVycm9yIHw9IF9fcHV0
X3VzZXIoMCxuYW1lLT5tYWNoaW5lK19fT0xEX1VUU19MRU4pOw0KIAkNCi0J
dXAoJnV0c19zZW0pOw0KKwlyZWFkX3VubG9jaygmdXRzX3J3bG9jayk7DQog
CQ0KIAllcnJvciA9IGVycm9yID8gLUVGQVVMVCA6IDA7DQogDQpkaWZmIC1O
dXIgbGludXgub3JpZy9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3BhcmMuYyBs
aW51eC9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3BhcmMuYw0KLS0tIGxpbnV4
Lm9yaWcvYXJjaC9zcGFyYy9rZXJuZWwvc3lzX3NwYXJjLmMJV2VkIE1heSAx
MiAxNTo0NzowNSAxOTk5DQorKysgbGludXgvYXJjaC9zcGFyYy9rZXJuZWwv
c3lzX3NwYXJjLmMJV2VkIE1heSAxMiAxNTo0NzozNCAxOTk5DQpAQCAtMzQ0
LDggKzM0NCw4IEBADQogIAlpbnQgbmxlbjsNCiAgCWludCBlcnIgPSAtRUZB
VUxUOw0KICAJDQotIAlkb3duKCZ1dHNfc2VtKTsNCi0gCQ0KKwlyZWFkX2xv
Y2soJnV0c19yd2xvY2spOyANCisJDQogCW5sZW4gPSBzdHJsZW4oc3lzdGVt
X3V0c25hbWUuZG9tYWlubmFtZSkgKyAxOw0KIA0KIAlpZiAobmxlbiA8IGxl
bikNCkBAIC0zNTYsNyArMzU2LDcgQEANCiAJCWdvdG8gZG9uZTsNCiAJZXJy
ID0gMDsNCiBkb25lOg0KLQl1cCgmdXRzX3NlbSk7DQorCXJlYWRfdW5sb2Nr
KCZ1dHNfcndsb2NrKTsNCiAJcmV0dXJuIGVycjsNCiB9DQogDQpkaWZmIC1O
dXIgbGludXgub3JpZy9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3Vub3MuYyBs
aW51eC9hcmNoL3NwYXJjL2tlcm5lbC9zeXNfc3Vub3MuYw0KLS0tIGxpbnV4
Lm9yaWcvYXJjaC9zcGFyYy9rZXJuZWwvc3lzX3N1bm9zLmMJV2VkIE1heSAx
MiAxNTo0NzowNiAxOTk5DQorKysgbGludXgvYXJjaC9zcGFyYy9rZXJuZWwv
c3lzX3N1bm9zLmMJV2VkIE1heSAxMiAxNTo0NzozNCAxOTk5DQpAQCAtNTg0
LDcgKzU4NCw3IEBADQogYXNtbGlua2FnZSBpbnQgc3Vub3NfdW5hbWUoc3Ry
dWN0IHN1bm9zX3V0c25hbWUgKm5hbWUpDQogew0KIAlpbnQgcmV0Ow0KLQlk
b3duKCZ1dHNfc2VtKTsNCisJcmVhZF9sb2NrKCZ1dHNfcndsb2NrKTsNCiAJ
cmV0ID0gY29weV90b191c2VyKCZuYW1lLT5zbmFtZVswXSwgJnN5c3RlbV91
dHNuYW1lLnN5c25hbWVbMF0sIHNpemVvZihuYW1lLT5zbmFtZSkgLSAxKTsN
CiAJaWYgKCFyZXQpIHsNCiAJCXJldCB8PSBfX2NvcHlfdG9fdXNlcigmbmFt
ZS0+bm5hbWVbMF0sICZzeXN0ZW1fdXRzbmFtZS5ub2RlbmFtZVswXSwgc2l6
ZW9mKG5hbWUtPm5uYW1lKSAtIDEpOw0KQEAgLTU5Myw3ICs1OTMsNyBAQA0K
IAkJcmV0IHw9IF9fY29weV90b191c2VyKCZuYW1lLT52ZXJbMF0sICZzeXN0
ZW1fdXRzbmFtZS52ZXJzaW9uWzBdLCBzaXplb2YobmFtZS0+dmVyKSAtIDEp
Ow0KIAkJcmV0IHw9IF9fY29weV90b191c2VyKCZuYW1lLT5tYWNoWzBdLCAm
c3lzdGVtX3V0c25hbWUubWFjaGluZVswXSwgc2l6ZW9mKG5hbWUtPm1hY2gp
IC0gMSk7DQogCX0NCi0JdXAoJnV0c19zZW0pOw0KKwlyZWFkX3VubG9jaygm
dXRzX3J3bG9jayk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0KZGlmZiAtTnVy
IGxpbnV4Lm9yaWcvYXJjaC9zcGFyYzY0L2tlcm5lbC9zeXNfc3BhcmMuYyBs
aW51eC9hcmNoL3NwYXJjNjQva2VybmVsL3N5c19zcGFyYy5jDQotLS0gbGlu
dXgub3JpZy9hcmNoL3NwYXJjNjQva2VybmVsL3N5c19zcGFyYy5jCVdlZCBN
YXkgMTIgMTU6NDc6MTMgMTk5OQ0KKysrIGxpbnV4L2FyY2gvc3BhcmM2NC9r
ZXJuZWwvc3lzX3NwYXJjLmMJV2VkIE1heSAxMiAxNTo0NzozNCAxOTk5DQpA
QCAtMjM3LDggKzIzNyw4IEBADQogICAgICAgICBpbnQgbmxlbjsNCiAJaW50
IGVyciA9IC1FRkFVTFQ7DQogDQotIAlkb3duKCZ1dHNfc2VtKTsNCi0gCQ0K
KwlyZWFkX2xvY2soJnV0c19yd2xvY2spOyANCisJDQogCW5sZW4gPSBzdHJs
ZW4oc3lzdGVtX3V0c25hbWUuZG9tYWlubmFtZSkgKyAxOw0KIA0KICAgICAg
ICAgaWYgKG5sZW4gPCBsZW4pDQpAQCAtMjQ5LDcgKzI0OSw3IEBADQogCQln
b3RvIGRvbmU7DQogCWVyciA9IDA7DQogZG9uZToNCi0JdXAoJnV0c19zZW0p
Ow0KKwlyZWFkX3VubG9jaygmdXRzX3J3bG9jayk7DQogCXJldHVybiBlcnI7
DQogfQ0KIA0KZGlmZiAtTnVyIGxpbnV4Lm9yaWcvYXJjaC9zcGFyYzY0L2tl
cm5lbC9zeXNfc3Vub3MzMi5jIGxpbnV4L2FyY2gvc3BhcmM2NC9rZXJuZWwv
c3lzX3N1bm9zMzIuYw0KLS0tIGxpbnV4Lm9yaWcvYXJjaC9zcGFyYzY0L2tl
cm5lbC9zeXNfc3Vub3MzMi5jCVdlZCBNYXkgMTIgMTU6NDc6MTMgMTk5OQ0K
KysrIGxpbnV4L2FyY2gvc3BhcmM2NC9rZXJuZWwvc3lzX3N1bm9zMzIuYwlX
ZWQgTWF5IDEyIDE1OjQ3OjM0IDE5OTkNCkBAIC01NDYsMTQgKzU0NiwxNCBA
QA0KIHsNCiAJaW50IHJldDsNCiANCi0JZG93bigmdXRzX3NlbSk7DQorCXJl
YWRfbG9jaygmdXRzX3J3bG9jayk7DQogCXJldCA9IGNvcHlfdG9fdXNlcigm
bmFtZS0+c25hbWVbMF0sICZzeXN0ZW1fdXRzbmFtZS5zeXNuYW1lWzBdLCBz
aXplb2YobmFtZS0+c25hbWUpIC0gMSk7DQogCXJldCB8PSBjb3B5X3RvX3Vz
ZXIoJm5hbWUtPm5uYW1lWzBdLCAmc3lzdGVtX3V0c25hbWUubm9kZW5hbWVb
MF0sIHNpemVvZihuYW1lLT5ubmFtZSkgLSAxKTsNCiAJcmV0IHw9IHB1dF91
c2VyKCdcMCcsICZuYW1lLT5ubmFtZVs4XSk7DQogCXJldCB8PSBjb3B5X3Rv
X3VzZXIoJm5hbWUtPnJlbFswXSwgJnN5c3RlbV91dHNuYW1lLnJlbGVhc2Vb
MF0sIHNpemVvZihuYW1lLT5yZWwpIC0gMSk7DQogCXJldCB8PSBjb3B5X3Rv
X3VzZXIoJm5hbWUtPnZlclswXSwgJnN5c3RlbV91dHNuYW1lLnZlcnNpb25b
MF0sIHNpemVvZihuYW1lLT52ZXIpIC0gMSk7DQogCXJldCB8PSBjb3B5X3Rv
X3VzZXIoJm5hbWUtPm1hY2hbMF0sICZzeXN0ZW1fdXRzbmFtZS5tYWNoaW5l
WzBdLCBzaXplb2YobmFtZS0+bWFjaCkgLSAxKTsNCi0JdXAoJnV0c19zZW0p
Ow0KKwlyZWFkX3VubG9jaygmdXRzX3J3bG9jayk7DQogCXJldHVybiByZXQ7
DQogfQ0KIA0KZGlmZiAtTnVyIGxpbnV4Lm9yaWcvYXJjaC9zcGFyYzY0L3Nv
bGFyaXMvbWlzYy5jIGxpbnV4L2FyY2gvc3BhcmM2NC9zb2xhcmlzL21pc2Mu
Yw0KLS0tIGxpbnV4Lm9yaWcvYXJjaC9zcGFyYzY0L3NvbGFyaXMvbWlzYy5j
CVdlZCBNYXkgMTIgMTU6NDc6MTMgMTk5OQ0KKysrIGxpbnV4L2FyY2gvc3Bh
cmM2NC9zb2xhcmlzL21pc2MuYwlXZWQgTWF5IDEyIDE1OjQ3OjM0IDE5OTkN
CkBAIC0yNjEsNyArMjYxLDcgQEANCiBhc21saW5rYWdlIGludCBzb2xhcmlz
X3V0c25hbWUodTMyIGJ1ZikNCiB7DQogCS8qIFdoeSBzaG91bGQgd2Ugbm90
IGxpZSBhIGJpdD8gKi8NCi0JZG93bigmdXRzX3NlbSk7DQorCXdyaXRlX2xv
Y2soJnV0c19yd2xvY2spOyANCiAJc2V0X3V0c2ZpZWxkKCgoc3RydWN0IHNv
bF91dHNuYW1lICopQShidWYpKS0+c3lzbmFtZSwgDQogCQkJIlN1bk9TIiwg
MCwgMCk7DQogCXNldF91dHNmaWVsZCgoKHN0cnVjdCBzb2xfdXRzbmFtZSAq
KUEoYnVmKSktPm5vZGVuYW1lLCANCkBAIC0yNzIsNyArMjcyLDcgQEANCiAJ
CQkiR2VuZXJpYyIsIDAsIDApOw0KIAlzZXRfdXRzZmllbGQoKChzdHJ1Y3Qg
c29sX3V0c25hbWUgKilBKGJ1ZikpLT5tYWNoaW5lLCANCiAJCQltYWNoaW5l
KCksIDAsIDApOw0KLQl1cCgmdXRzX3NlbSk7DQorCXdyaXRlX3VubG9jaygm
dXRzX3J3bG9jayk7DQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLU51ciBs
aW51eC5vcmlnL2RyaXZlcnMvc291bmQvc291bmRjYXJkLmMgbGludXgvZHJp
dmVycy9zb3VuZC9zb3VuZGNhcmQuYw0KLS0tIGxpbnV4Lm9yaWcvZHJpdmVy
cy9zb3VuZC9zb3VuZGNhcmQuYwlXZWQgTWF5IDEyIDE1OjQ2OjM3IDE5OTkN
CisrKyBsaW51eC9kcml2ZXJzL3NvdW5kL3NvdW5kY2FyZC5jCVdlZCBNYXkg
MTIgMTU6NDc6MzQgMTk5OQ0KQEAgLTE3LDggKzE3LDExIEBADQogICogICAg
ICAgICAgICAgICAgICAgd2hpY2ggc2hvdWxkIGRpc2FwcGVhciBpbiB0aGUg
bmVhciBmdXR1cmUpDQogICoNCiAgKiBSb2IgUmlnZ3MJCUFkZGVkIHBlcnNp
c3RlbnQgRE1BIGJ1ZmZlcnMgc3VwcG9ydCAoMTk5OC8xMC8xNykNCisgKg0K
KyAqIE1hcmNlbG8gVG9zYXR0aSA6IHVzZWQgcncgbG9ja3MgZm9yIHJlYWRp
bmcgdXRzbmFtZSBzdHJ1Y3R1cmVzIGluc3RlYWQgb2YNCisgKiBzZW1hcGhv
cmVzDQogICovDQotDQorIA0KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4N
CiANCiAjaW5jbHVkZSAic291bmRfY29uZmlnLmgiDQpAQCAtMTYzLDcgKzE2
Niw3IEBADQogI2RlZmluZSBNT0RVTEVQUk9DU1RSSU5HICJEcml2ZXIgY29t
cGlsZWQgaW50byBrZXJuZWwiDQogI2VuZGlmDQogDQotCWRvd24oJnV0c19z
ZW0pOwkNCisJcmVhZF9sb2NrKCZ1dHNfcndsb2NrKTsJDQogDQogCWxlbiA9
IHNwcmludGYoYnVmZmVyLCAiT1NTL0ZyZWU6IiBTT1VORF9WRVJTSU9OX1NU
UklORyAiXG4iDQogCQkgICAgICAiTG9hZCB0eXBlOiAiIE1PRFVMRVBST0NT
VFJJTkcgIlxuIg0KQEAgLTE3MSw3ICsxNzQsNyBAQA0KIAkJICAgICAgIkNv
bmZpZyBvcHRpb25zOiAleFxuXG5JbnN0YWxsZWQgZHJpdmVyczogXG4iLCAN
CiAJCSAgICAgIHN5c3RlbV91dHNuYW1lLnN5c25hbWUsIHN5c3RlbV91dHNu
YW1lLm5vZGVuYW1lLCBzeXN0ZW1fdXRzbmFtZS5yZWxlYXNlLCANCiAJCSAg
ICAgIHN5c3RlbV91dHNuYW1lLnZlcnNpb24sIHN5c3RlbV91dHNuYW1lLm1h
Y2hpbmUsIFNFTEVDVEVEX1NPVU5EX09QVElPTlMpOw0KLQl1cCgmdXRzX3Nl
bSk7DQorCXJlYWRfdW5sb2NrKCZ1dHNfcndsb2NrKTsNCiAJDQogCWZvciAo
aSA9IDA7IChpIDwgbnVtX3NvdW5kX2RyaXZlcnMpICYmIChwb3MgPD0gb2Zm
c2V0ICsgbGVuZ3RoKTsgaSsrKSB7DQogCQlpZiAoIXNvdW5kX2RyaXZlcnNb
aV0uY2FyZF90eXBlKQ0KZGlmZiAtTnVyIGxpbnV4Lm9yaWcvaW5jbHVkZS9s
aW51eC91dHNuYW1lLmggbGludXgvaW5jbHVkZS9saW51eC91dHNuYW1lLmgN
Ci0tLSBsaW51eC5vcmlnL2luY2x1ZGUvbGludXgvdXRzbmFtZS5oCVdlZCBN
YXkgMTIgMTU6NDU6MzAgMTk5OQ0KKysrIGxpbnV4L2luY2x1ZGUvbGludXgv
dXRzbmFtZS5oCVdlZCBNYXkgMTIgMTU6NDc6MzQgMTk5OQ0KQEAgLTEsMyAr
MSw1IEBADQorI2luY2x1ZGUgPGFzbS9zcGlubG9jay5oPg0KKw0KICNpZm5k
ZWYgX0xJTlVYX1VUU05BTUVfSA0KICNkZWZpbmUgX0xJTlVYX1VUU05BTUVf
SA0KIA0KQEAgLTMyLDUgKzM0LDUgQEANCiANCiBleHRlcm4gc3RydWN0IG5l
d191dHNuYW1lIHN5c3RlbV91dHNuYW1lOw0KIA0KLWV4dGVybiBzdHJ1Y3Qg
c2VtYXBob3JlIHV0c19zZW07DQorZXh0ZXJuIHJ3bG9ja190IHV0c19yd2xv
Y2s7DQogI2VuZGlmDQpkaWZmIC1OdXIgbGludXgub3JpZy9rZXJuZWwva3N5
bXMuYyBsaW51eC9rZXJuZWwva3N5bXMuYw0KLS0tIGxpbnV4Lm9yaWcva2Vy
bmVsL2tzeW1zLmMJV2VkIE1heSAxMiAxNTo0NToyOSAxOTk5DQorKysgbGlu
dXgva2VybmVsL2tzeW1zLmMJV2VkIE1heSAxMiAxNTo0ODozNyAxOTk5DQpA
QCAtMzI2LDggKzMyNiw4IEBADQogRVhQT1JUX1NZTUJPTChiZGV2bmFtZSk7
DQogRVhQT1JUX1NZTUJPTChjZGV2bmFtZSk7DQogRVhQT1JUX1NZTUJPTChz
aW1wbGVfc3RydG91bCk7DQorRVhQT1JUX1NZTUJPTCh1dHNfcndsb2NrKTsg
LyogVVRTIHJlYWQtd3JpdGUgbG9jayAqLw0KIEVYUE9SVF9TWU1CT0woc3lz
dGVtX3V0c25hbWUpOwkvKiBVVFMgZGF0YSAqLw0KLUVYUE9SVF9TWU1CT0wo
dXRzX3NlbSk7CQkvKiBVVFMgc2VtYXBob3JlICovDQogRVhQT1JUX1NZTUJP
TChzeXNfY2FsbF90YWJsZSk7DQogRVhQT1JUX1NZTUJPTChtYWNoaW5lX3Jl
c3RhcnQpOw0KIEVYUE9SVF9TWU1CT0wobWFjaGluZV9oYWx0KTsNCmRpZmYg
LU51ciBsaW51eC5vcmlnL2tlcm5lbC9zeXMuYyBsaW51eC9rZXJuZWwvc3lz
LmMNCi0tLSBsaW51eC5vcmlnL2tlcm5lbC9zeXMuYwlXZWQgTWF5IDEyIDE1
OjQ1OjI5IDE5OTkNCisrKyBsaW51eC9rZXJuZWwvc3lzLmMJV2VkIE1heSAx
MiAxNTo0NzozNSAxOTk5DQpAQCAtMiw2ICsyLDggQEANCiAgKiAgbGludXgv
a2VybmVsL3N5cy5jDQogICoNCiAgKiAgQ29weXJpZ2h0IChDKSAxOTkxLCAx
OTkyICBMaW51cyBUb3J2YWxkcw0KKyAqICBNb2RpZmllZDogcmVwbGFjZWQg
dXRzX3NlbSBzZW1hcGhvcmUgd2l0aCB1dHNfcndsb2NrIHJlYWQtd3JpdGUg
bG9jay4NCisgKiAgTWFyY2VsbyBUb3NhdHRpIDxtYXJjZWxvQGNvbmVjdGl2
YS5jb20uYnI+IA0KICAqLw0KIA0KICNpbmNsdWRlIDxsaW51eC9tbS5oPg0K
QEAgLTgwNywyMSArODA5LDE2IEBADQogCXJldHVybiAxOw0KIH0NCiANCi0v
Kg0KLSAqIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBhIGJsb2NraW5nIHJlYWQt
d3JpdGUgbG9jaw0KLSAqIHJhdGhlciB0aGFuIGEgc2VtYXBob3JlLiBBbnli
b2R5IHdhbnQgdG8gaW1wbGVtZW50DQotICogb25lPw0KLSAqLw0KLXN0cnVj
dCBzZW1hcGhvcmUgdXRzX3NlbSA9IE1VVEVYOw0KK3J3bG9ja190IHV0c19y
d2xvY2s7DQogDQogYXNtbGlua2FnZSBpbnQgc3lzX25ld3VuYW1lKHN0cnVj
dCBuZXdfdXRzbmFtZSAqIG5hbWUpDQogew0KIAlpbnQgZXJybm8gPSAwOw0K
IA0KLQlkb3duKCZ1dHNfc2VtKTsNCisJcmVhZF9sb2NrKCZ1dHNfcndsb2Nr
KTsNCiAJaWYgKGNvcHlfdG9fdXNlcihuYW1lLCZzeXN0ZW1fdXRzbmFtZSxz
aXplb2YgKm5hbWUpKQ0KIAkJZXJybm8gPSAtRUZBVUxUOw0KLQl1cCgmdXRz
X3NlbSk7DQorCXJlYWRfdW5sb2NrKCZ1dHNfcndsb2NrKTsNCiAJcmV0dXJu
IGVycm5vOw0KIH0NCiANCkBAIC04MzMsMTMgKzgzMCwxMyBAQA0KIAkJcmV0
dXJuIC1FUEVSTTsNCiAJaWYgKGxlbiA8IDAgfHwgbGVuID4gX19ORVdfVVRT
X0xFTikNCiAJCXJldHVybiAtRUlOVkFMOw0KLQlkb3duKCZ1dHNfc2VtKTsN
CisJd3JpdGVfbG9jaygmdXRzX3J3bG9jayk7CQ0KIAllcnJubyA9IC1FRkFV
TFQ7DQogCWlmICghY29weV9mcm9tX3VzZXIoc3lzdGVtX3V0c25hbWUubm9k
ZW5hbWUsIG5hbWUsIGxlbikpIHsNCiAJCXN5c3RlbV91dHNuYW1lLm5vZGVu
YW1lW2xlbl0gPSAwOw0KIAkJZXJybm8gPSAwOw0KIAl9DQotCXVwKCZ1dHNf
c2VtKTsNCisJd3JpdGVfdW5sb2NrKCZ1dHNfcndsb2NrKTsNCiAJcmV0dXJu
IGVycm5vOw0KIH0NCiANCkBAIC04NDksMTQgKzg0NiwxNCBAQA0KIA0KIAlp
ZiAobGVuIDwgMCkNCiAJCXJldHVybiAtRUlOVkFMOw0KLQlkb3duKCZ1dHNf
c2VtKTsNCisJcmVhZF9sb2NrKCZ1dHNfcndsb2NrKTsNCiAJaSA9IDEgKyBz
dHJsZW4oc3lzdGVtX3V0c25hbWUubm9kZW5hbWUpOw0KIAlpZiAoaSA+IGxl
bikNCiAJCWkgPSBsZW47DQogCWVycm5vID0gMDsNCiAJaWYgKGNvcHlfdG9f
dXNlcihuYW1lLCBzeXN0ZW1fdXRzbmFtZS5ub2RlbmFtZSwgaSkpDQogCQll
cnJubyA9IC1FRkFVTFQ7DQotCXVwKCZ1dHNfc2VtKTsNCisJcmVhZF91bmxv
Y2soJnV0c19yd2xvY2spOw0KIAlyZXR1cm4gZXJybm87DQogfQ0KIA0KQEAg
LTg3MywxMyArODcwLDEzIEBADQogCWlmIChsZW4gPCAwIHx8IGxlbiA+IF9f
TkVXX1VUU19MRU4pDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JZG93bigm
dXRzX3NlbSk7DQorCXdyaXRlX2xvY2soJnV0c19yd2xvY2spOw0KIAllcnJu
byA9IC1FRkFVTFQ7DQogCWlmICghY29weV9mcm9tX3VzZXIoc3lzdGVtX3V0
c25hbWUuZG9tYWlubmFtZSwgbmFtZSwgbGVuKSkgew0KIAkJZXJybm8gPSAw
Ow0KIAkJc3lzdGVtX3V0c25hbWUuZG9tYWlubmFtZVtsZW5dID0gMDsNCiAJ
fQ0KLQl1cCgmdXRzX3NlbSk7DQorCXdyaXRlX3VubG9jaygmdXRzX3J3bG9j
ayk7DQogCXJldHVybiBlcnJubzsNCiB9DQogDQpkaWZmIC1OdXIgbGludXgu
b3JpZy9rZXJuZWwvc3lzY3RsLmMgbGludXgva2VybmVsL3N5c2N0bC5jDQot
LS0gbGludXgub3JpZy9rZXJuZWwvc3lzY3RsLmMJV2VkIE1heSAxMiAxNTo0
NTozMCAxOTk5DQorKysgbGludXgva2VybmVsL3N5c2N0bC5jCVdlZCBNYXkg
MTIgMTU6NDc6MzUgMTk5OQ0KQEAgLTY3OCw5ICs2NzgsOSBAQA0KIAkJICB2
b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCkNCiB7DQogCWludCByOw0KLQlk
b3duKCZ1dHNfc2VtKTsNCisJd3JpdGVfbG9jaygmdXRzX3J3bG9jayk7DQog
CXI9cHJvY19kb3N0cmluZyh0YWJsZSx3cml0ZSxmaWxwLGJ1ZmZlcixsZW5w
KTsNCi0JdXAoJnV0c19zZW0pOw0KKwl3cml0ZV91bmxvY2soJnV0c19yd2xv
Y2spOw0KIAlyZXR1cm4gcjsNCiB9DQogDQo=
--8323328-1778630658-926538622=:498--

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