[3686] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

ncr driver SMP threading patch for 2.1.95

daemon@ATHENA.MIT.EDU (Gerard Roudier)
Sat Apr 11 13:05:55 1998

Date: 	Sat, 11 Apr 1998 18:06:52 +0200 (MET DST)
From: Gerard Roudier <groudier@club-internet.fr>
To: "Larry M. Augustin" <lma@varesearch.com>
cc: linux-scsi@vger.rutgers.edu, linux-smp@vger.rutgers.edu

  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-26343631-892310812=:2451
Content-Type: TEXT/PLAIN; charset=US-ASCII


Larry,

I have attached to this mail a pre-patch for linux-2.1.95/ncr53c8xx-2.5f 
that tries to deal with SMP threading stuff as I would want the driver to
do.

The idea is to use 1 lock per controller instead of some more global 
lock, assuming that SMP systems may often use several controllers.

I cannot try this patch under SMP as you know, but I did apply the
'non-regression tests' suggested by Linus and I can state that this 
patch is perfect for UP. :-)

I will port the changes to 2.6i driver if they are reported as 
correct and working.


Regards, Gerard.

PS: If SMP gurus could check the patch and let me know if it looks 
    correct, this would help me a lot. Thanks in advance.

--8323328-26343631-892310812=:2451
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ncr53c8xx-pre-2.5g-1.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.980411180652.2451C@localhost>
Content-Description: 

LS0tIGxpbnV4L2RyaXZlcnMvc2NzaS9uY3I1M2M4eHguaC5PUklHCVNhdCBB
cHIgMTEgMDk6MzI6MzYgMTk5OA0KKysrIGxpbnV4L2RyaXZlcnMvc2NzaS9u
Y3I1M2M4eHguaAlTYXQgQXByIDExIDE3OjQxOjQ0IDE5OTgNCkBAIC00NSw3
ICs0NSw3IEBADQogLyoNCiAqKglOYW1lIGFuZCByZXZpc2lvbiBvZiB0aGUg
ZHJpdmVyDQogKi8NCi0jZGVmaW5lIFNDU0lfTkNSX0RSSVZFUl9OQU1FCQki
bmNyNTNjOHh4IC0gcmV2aXNpb24gMi41ZiINCisjZGVmaW5lIFNDU0lfTkNS
X0RSSVZFUl9OQU1FCQkibmNyNTNjOHh4IC0gcmV2aXNpb24gcHJlLTIuNWct
MSINCiANCiAvKg0KICoqCUNoZWNrIHN1cHBvcnRlZCBMaW51eCB2ZXJzaW9u
cw0KLS0tIGxpbnV4L2RyaXZlcnMvc2NzaS9uY3I1M2M4eHguYy5PUklHCVNh
dCBBcHIgMTEgMDk6MzI6MjcgMTk5OA0KKysrIGxpbnV4L2RyaXZlcnMvc2Nz
aS9uY3I1M2M4eHguYwlTYXQgQXByIDExIDE3OjMyOjI5IDE5OTgNCkBAIC02
Nyw3ICs2Nyw3IEBADQogKi8NCiANCiAvKg0KLSoqCTIgSmFudWFyeSAxOTk4
LCB2ZXJzaW9uIDIuNWYNCisqKgkxMSBBcHJpbCAxOTk4LCB2ZXJzaW9uIHBy
ZS0yLjVnLTENCiAqKg0KICoqCVN1cHBvcnRlZCBTQ1NJLUlJIGZlYXR1cmVz
Og0KICoqCSAgICBTeW5jaHJvbm91cyBuZWdvdGlhdGlvbg0KQEAgLTI4Niw2
ICsyODYsMzUgQEANCiAjZGVmaW5lIG9mZnNldG9mKHQsIG0pCSgoc2l6ZV90
KSAoJigodCAqKTApLT5tKSkNCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IExpbnV4VmVyc2lvbkNvZGUoMiwxLDkzKQ0KKy8qDQor
KioJU01QIHRocmVhZGluZy4NCisqKg0KKyoqCUFzc3VtaW5nIHRoYXQgU01Q
IHN5c3RlbSBhcmUgZ2VuZXJhbGx5IGhpZ2ggZW5kIHN5c3RlbXMgYW5kIG1h
eSANCisqKgl1c2Ugc2V2ZXJhbCBTQ1NJIGFkYXB0ZXJzLCB3ZSBhcmUgdXNp
bmcgb25lIGxvY2sgcGVyIGNvbnRyb2xsZXIgDQorKioJaW5zdGVhZCBvZiBz
b21lIGdsb2JhbCBvbmUuDQorKi8NCisjaWYgMAkvKiBub3QgeWV0IG5lZWRl
ZCAqLw0KK3N0YXRpYyBzcGlubG9ja190IGRyaXZlcl9sb2NrOw0KKyNkZWZp
bmUJTkNSX0xPQ0tfRFJJVkVSKGZsYWdzKSAgICAgc3Bpbl9sb2NrX2lycXNh
dmUoJmRyaXZlcl9sb2NrLCBmbGFncykNCisjZGVmaW5lCU5DUl9VTkxPQ0tf
RFJJVkVSKGZsYWdzKSAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRyaXZl
cl9sb2NrLCBmbGFncykNCisjZW5kaWYNCisNCisjZGVmaW5lCU5DUl9MT0NL
X05DQihucCwgZmxhZ3MpICAgIHNwaW5fbG9ja19pcnFzYXZlKCZucC0+c21w
X2xvY2ssIGZsYWdzKQ0KKyNkZWZpbmUJTkNSX1VOTE9DS19OQ0IobnAsIGZs
YWdzKSAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbnAtPnNtcF9sb2NrLCBm
bGFncykNCisNCisjZWxzZQ0KKw0KKyNpZiAwCS8qIG5vdCB5ZXQgbmVlZGVk
ICovDQorI2RlZmluZQlOQ1JfTE9DS19EUklWRVIoZmxhZ3MpICAgICBkbyB7
O30gd2hpbGUgKDApDQorI2RlZmluZQlOQ1JfVU5MT0NLX0RSSVZFUihmbGFn
cykgICBkbyB7O30gd2hpbGUgKDApDQorI2VuZGlmDQorDQorI2RlZmluZQlO
Q1JfTE9DS19OQ0IobnAsIGZsYWdzKSAgICBkbyB7IHNhdmVfZmxhZ3MoZmxh
Z3MpOyBjbGkoKTsgfSB3aGlsZSAoMCkNCisjZGVmaW5lCU5DUl9VTkxPQ0tf
TkNCKG5wLCBmbGFncykgIGRvIHsgcmVzdG9yZV9mbGFncyhmbGFncyk7IH0g
d2hpbGUgKDApDQorDQorI2VuZGlmDQorDQogLyoNCiAqKglBZGRyZXNzIHRy
YW5zbGF0aW9uDQogKioNCkBAIC0xNjM5LDYgKzE2NjgsMTEgQEANCiAJaW50
CW5jcl9jYWNoZTsJCS8qIENhY2hlIHRlc3QgdmFyaWFibGUgICAgICAgICAg
ICAgICAqLw0KIAlTY3NpX0NtbmQgKndhaXRpbmdfbGlzdDsJLyogV2FpdGlu
ZyBsaXN0IGhlYWRlciBmb3IgY29tbWFuZHMgICovDQogCQkJCQkvKiB0aGF0
IHdlIGNhbid0IHB1dCBpbnRvIHRoZSBzcXVldWUgKi8NCisJU2NzaV9DbW5k
ICpkb25lX2xpc3Q7CQkvKiBXYWl0aW5nIGxpc3QgaGVhZGVyIGZvciBjb21t
YW5kcyAgKi8NCisJCQkJCS8qIHRoYXQgaGF2ZSBjb21wbGV0ZWQJCSAgICAg
Ki8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IExpbnV4VmVyc2lvbkNv
ZGUoMiwxLDkzKQ0KKwlzcGlubG9ja190IHNtcF9sb2NrOwkJLyogQ29udHJv
bGxlciBsb2NrIGZvciBTTVAgdGhyZWFkaW5nICovDQorI2VuZGlmDQogCXVf
bG9uZwlzZXR0bGVfdGltZTsJCS8qIFJlc2V0IGluIHByb2dlc3MJCSAgICAg
Ki8NCiAJdV9jaGFyCXJlbGVhc2Vfc3RhZ2U7CQkvKiBTeW5jaHJvbmlzYXRp
b24gc3RhZ2Ugb24gcmVsZWFzZSAgKi8NCiAJdV9jaGFyCXZlcmJvc2U7CQkv
KiBCb290IHZlcmJvc2l0eSBmb3IgdGhpcyBjb250cm9sbGVyKi8NCkBAIC0x
OTcwLDcgKzIwMDQsNyBAQA0KIHN0YXRpYwl2b2lkCW5jcl9nZXRjbG9jawko
bmNiX3AgbnAsIGludCBtdWx0KTsNCiBzdGF0aWMJdm9pZAluY3Jfc2VsZWN0
Y2xvY2sJKG5jYl9wIG5wLCB1X2NoYXIgc2NudGwzKTsNCiBzdGF0aWMJY2Ni
X3AJbmNyX2dldF9jY2IJKG5jYl9wIG5wLCB1X2xvbmcgdCx1X2xvbmcgbCk7
DQotc3RhdGljCXZvaWQJbmNyX2luaXQJKG5jYl9wIG5wLCBjaGFyICogbXNn
LCB1X2xvbmcgY29kZSk7DQorc3RhdGljCXZvaWQJbmNyX2luaXQJKG5jYl9w
IG5wLCBpbnQgcmVzZXQsIGNoYXIgKiBtc2csIHVfbG9uZyBjb2RlKTsNCiBz
dGF0aWMJaW50CW5jcl9pbnRfc2JtYwkobmNiX3AgbnApOw0KIHN0YXRpYwlp
bnQJbmNyX2ludF9wYXIJKG5jYl9wIG5wKTsNCiBzdGF0aWMJdm9pZAluY3Jf
aW50X21hCShuY2JfcCBucCk7DQpAQCAtNDYzNSwxNCArNDY2OSwxMyBAQA0K
IAkqKglpZiBpbnRlcnJ1cHRzIGFyZSBub3QgZW5hYmxlZCB5ZXQuDQogCSoq
CVRoZW4gZW5hYmxlIGRpc2Nvbm5lY3RzLg0KIAkqLw0KLQlzYXZlX2ZsYWdz
KGZsYWdzKTsgY2xpKCk7DQorCU5DUl9MT0NLX05DQihucCwgZmxhZ3MpOw0K
IAlpZiAobmNyX3Jlc2V0X3Njc2lfYnVzKG5wLCAxLCBkcml2ZXJfc2V0dXAu
c2V0dGxlX2RlbGF5KSAhPSAwKSB7DQogCQlwcmludGYoIiVzOiBGQVRBTCBF
UlJPUjogQ0hFQ0sgU0NTSSBCVVMgLSBDQUJMRVMsIFRFUk1JTkFUSU9OLCBE
RVZJQ0UgUE9XRVIgZXRjLiFcbiIsIG5jcl9uYW1lKG5wKSk7DQotCQlyZXN0
b3JlX2ZsYWdzKGZsYWdzKTsNCisJCU5DUl9VTkxPQ0tfTkNCKG5wLCBmbGFn
cyk7DQogCQlnb3RvIGF0dGFjaF9lcnJvcjsNCiAJfQ0KIAluY3JfZXhjZXB0
aW9uIChucCk7DQotCXJlc3RvcmVfZmxhZ3MoZmxhZ3MpOw0KIA0KIAlucC0+
ZGlzYyA9IDE7DQogDQpAQCAtNDY3NSw2ICs0NzA4LDggQEANCiAJbnAtPm9y
ZGVyID0gTV9TSU1QTEVfVEFHOw0KICNlbmRpZg0KIA0KKwlOQ1JfVU5MT0NL
X05DQihucCwgZmxhZ3MpOw0KKw0KIAkvKg0KIAkqKiAgRG9uZS4NCiAJKi8N
CkBAIC00NzIzLDYgKzQ3NTgsNDQgQEANCiAgICAgICAgIHJldHVybiAtMTsN
CiAgfQ0KIA0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyoqDQorKioNCisqKglE
b25lIFNDU0kgY29tbWFuZHMgbGlzdCBtYW5hZ2VtZW50Lg0KKyoqDQorKioJ
V2UgZG9ubm90IGVudGVyIHRoZSBzY3NpX2RvbmUoKSBjYWxsYmFjayBpbW1l
ZGlhdGVseSANCisqKglhZnRlciBhIGNvbW1hbmQgaGFzIGJlZW4gc2VlbiBh
cyBjb21wbGV0ZWQgYnV0IHdlIA0KKyoqCWluc2VydCBpdCBpbnRvIGEgbGlz
dCB3aGljaCBpcyBmbHVzaGVkIG91dHNpZGUgYW55IGtpbmQgDQorKioJb2Yg
ZHJpdmVyIGNyaXRpY2FsIHNlY3Rpb24uDQorKioJVGhpcyBhbGxvd3MgdG8g
ZG8gbWluaW1hbCBzdHVmZiB1bmRlciBpbnRlcnJ1cHQgYW5kIA0KKyoqCWlu
c2lkZSBjcml0aWNhbCBzZWN0aW9ucyBhbmQgdG8gYWxzbyBhdm9pZCBsb2Nr
aW5nIHVwIA0KKyoqCW9uIHJlY3Vyc2l2ZSBjYWxscyB0byBkcml2ZXIgZW50
cnkgcG9pbnRzIHVuZGVyIFNNUC4NCisqKglJbiBmYWN0LCB0aGUgb25seSBr
ZXJuZWwgcG9pbnQgd2hpY2ggaXMgZW50ZXJlZCBieSB0aGUgDQorKioJZHJp
dmVyIHdpdGggYSBkcml2ZXIgbG9jayBzZXQgaXMga21hbGxvYyhHRlBfQVRP
TUlDKSANCisqKgl0aGF0IHNoYWxsIG5vdCByZWVudGVyIHRoZSBkcml2ZXIg
dW5kZXIgYW55IGNpcmN1bXN0YW5jZXMsDQorKioJQUZBSUsuDQorKioNCisq
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCisqLw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBuY3Jf
cXVldWVfZG9uZV9jbWQobmNiX3AgbnAsIFNjc2lfQ21uZCAqY21kKQ0KK3sN
CisJY21kLT5ob3N0X3NjcmliYmxlID0gKGNoYXIgKikgbnAtPmRvbmVfbGlz
dDsNCisJbnAtPmRvbmVfbGlzdCA9IGNtZDsNCit9DQorDQorc3RhdGljIGlu
bGluZSB2b2lkIG5jcl9mbHVzaF9kb25lX2NtZHMoU2NzaV9DbW5kICpsY21k
KQ0KK3sNCisgICAgIFNjc2lfQ21uZCAqY21kOw0KKw0KKyAgICAgd2hpbGUg
KGxjbWQpIHsNCisgICAgICAgICAgY21kID0gbGNtZDsNCisgICAgICAgICAg
bGNtZCA9IChTY3NpX0NtbmQgKikgY21kLT5ob3N0X3NjcmliYmxlOw0KKyAg
ICAgICAgICBjbWQtPnNjc2lfZG9uZShjbWQpOw0KKyAgICAgfQ0KK30NCisN
CisNCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCiAqKg0KICoqDQpAQCAtNDczMiwxMiAr
NDgwNSw5IEBADQogKioNCiAqKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqLw0KLWludCBu
Y3JfcXVldWVfY29tbWFuZCAoU2NzaV9DbW5kICpjbWQsIHZvaWQgKCogZG9u
ZSkoU2NzaV9DbW5kICopKQ0KK2ludCBuY3JfcXVldWVfY29tbWFuZCAobmNi
X3AgbnAsIFNjc2lfQ21uZCAqY21kKQ0KIHsNCi0gICAgICAgIHN0cnVjdCBT
Y3NpX0hvc3QgICAqaG9zdCAgICAgID0gY21kLT5ob3N0Ow0KIC8qCVNjc2lf
RGV2aWNlICAgICAgICAqZGV2aWNlICAgID0gY21kLT5kZXZpY2U7ICovDQot
CXN0cnVjdCBob3N0X2RhdGEgICAqaG9zdF9kYXRhID0gKHN0cnVjdCBob3N0
X2RhdGEgKikgaG9zdC0+aG9zdGRhdGE7DQotCW5jYl9wIG5wICAgICAgICAg
ICAgICAgICAgICAgID0gaG9zdF9kYXRhLT5uY2I7DQogCXRjYl9wIHRwICAg
ICAgICAgICAgICAgICAgICAgID0gJm5wLT50YXJnZXRbY21kLT50YXJnZXRd
Ow0KIA0KIAljY2JfcCBjcDsNCkBAIC00NzQ2LDE0ICs0ODE2LDggQEANCiAJ
aW50CXNlZ21lbnRzOw0KIAl1X2NoYXIJcWlkeCwgbmVnbywgaWRtc2csICpt
c2dwdHI7DQogCXVfaW50ICBtc2dsZW4sIG1zZ2xlbjI7DQotCXVfbG9uZwlm
bGFnczsNCiAJaW50CXhmZXJfZGlyZWN0aW9uOw0KIA0KLQljbWQtPnNjc2lf
ZG9uZSAgICAgPSBkb25lOw0KLQljbWQtPmhvc3Rfc2NyaWJibGUgPSBOVUxM
Ow0KLQljbWQtPlNDcC5wdHIgICAgICAgPSBOVUxMOw0KLQljbWQtPlNDcC5i
dWZmZXIgICAgPSBOVUxMOw0KLQ0KIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIAkqKg0KIAkqKiAgICAgIFNv
bWUgc2hvcnRjdXRzIC4uLg0KQEAgLTQ3OTUsOCArNDg1OSw2IEBADQogCSoq
DQogCSoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIAkqLw0KLQlzYXZlX2ZsYWdzKGZsYWdzKTsgY2xp
KCk7DQotDQogCWlmIChucC0+c2V0dGxlX3RpbWUgJiYgY21kLT50aW1lb3V0
X3Blcl9jb21tYW5kID49IEhaICYmDQogCQlucC0+c2V0dGxlX3RpbWUgPiBq
aWZmaWVzICsgY21kLT50aW1lb3V0X3Blcl9jb21tYW5kIC0gSFopIHsNCiAJ
CW5wLT5zZXR0bGVfdGltZSA9IGppZmZpZXMgKyBjbWQtPnRpbWVvdXRfcGVy
X2NvbW1hbmQgLSBIWjsNCkBAIC00ODA0LDcgKzQ4NjYsNiBAQA0KIA0KICAg
ICAgICAgaWYgKG5wLT5zZXR0bGVfdGltZSB8fCAhKGNwPW5jcl9nZXRfY2Ni
IChucCwgY21kLT50YXJnZXQsIGNtZC0+bHVuKSkpIHsNCiAJCWluc2VydF9p
bnRvX3dhaXRpbmdfbGlzdChucCwgY21kKTsNCi0JCXJlc3RvcmVfZmxhZ3Mo
ZmxhZ3MpOw0KIAkJcmV0dXJuKERJRF9PSyk7DQogCX0NCiAJY3AtPmNtZCA9
IGNtZDsNCkBAIC01MDMxLDcgKzUwOTIsNiBAQA0KIA0KIAlpZiAoc2VnbWVu
dHMgPCAwKSB7DQogCQluY3JfZnJlZV9jY2IobnAsIGNwLCBjbWQtPnRhcmdl
dCwgY21kLT5sdW4pOw0KLQkJcmVzdG9yZV9mbGFncyhmbGFncyk7DQogCQly
ZXR1cm4oRElEX0VSUk9SKTsNCiAJfQ0KIA0KQEAgLTUyMDksMTEgKzUyNjks
NiBAQA0KIAlPVVRCIChuY19pc3RhdCwgU0lHUCk7DQogDQogCS8qDQotCSoq
CWFuZCByZWVuYWJsZSBpbnRlcnJ1cHRzDQotCSovDQotCXJlc3RvcmVfZmxh
Z3MoZmxhZ3MpOw0KLQ0KLQkvKg0KIAkqKglDb21tYW5kIGlzIHN1Y2Nlc3Nm
dWxseSBxdWV1ZWQuDQogCSovDQogDQpAQCAtNTIzNCwxNCArNTI4OSw5IEBA
DQogKi8NCiBzdGF0aWMgdm9pZCBuY3Jfc3RhcnRfcmVzZXQobmNiX3AgbnAs
IGludCBzZXR0bGVfZGVsYXkpDQogew0KLQl1X2xvbmcgZmxhZ3M7DQotDQot
CXNhdmVfZmxhZ3MoZmxhZ3MpOyBjbGkoKTsNCi0NCiAJaWYgKCFucC0+c2V0
dGxlX3RpbWUpIHsNCiAJCSh2b2lkKSBuY3JfcmVzZXRfc2NzaV9idXMobnAs
IDEsIHNldHRsZV9kZWxheSk7DQogCX0NCi0JcmVzdG9yZV9mbGFncyhmbGFn
cyk7DQogfQ0KIA0KIHN0YXRpYyBpbnQgbmNyX3Jlc2V0X3Njc2lfYnVzKG5j
Yl9wIG5wLCBpbnQgZW5hYl9pbnQsIGludCBzZXR0bGVfZGVsYXkpDQpAQCAt
NTI2MSw2ICs1MzExLDEyIEBADQogCU9VVEIgKG5jX2lzdGF0LCAwKTsNCiAJ
aWYgKGVuYWJfaW50KQ0KIAkJT1VUVyAobmNfc2llbiwgUlNUKTsNCisJLyoN
CisJKioJRW5hYmxlIFRvbGVyYW50LCByZXNldCBJUlFEIGlmIHByZXNlbnQg
YW5kIA0KKwkqKglwcm9wZXJseSBzZXQgSVJRIG1vZGUsIHByaW9yIHRvIHJl
c2V0dGluZyB0aGUgYnVzLg0KKwkqLw0KKwlPVVRCIChuY19zdGVzdDMsIFRF
KTsNCisJT1VUQiAobmNfZGNudGwsIChucC0+cnZfZGNudGwgJiBJUlFNKSk7
DQogCU9VVEIgKG5jX3NjbnRsMSwgQ1JTVCk7DQogCURFTEFZICgxMDApOw0K
IA0KQEAgLTUzMDYsMTQgKzUzNjIsMTAgQEANCiAqKg0KICoqPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KICovDQotaW50IG5jcl9yZXNldF9idXMgKFNjc2lfQ21uZCAqY21k
LCBpbnQgc3luY19yZXNldCkNCitpbnQgbmNyX3Jlc2V0X2J1cyAobmNiX3Ag
bnAsIFNjc2lfQ21uZCAqY21kLCBpbnQgc3luY19yZXNldCkNCiB7DQotICAg
ICAgICBzdHJ1Y3QgU2NzaV9Ib3N0ICAgKmhvc3QgICAgICA9IGNtZC0+aG9z
dDsNCiAvKglTY3NpX0RldmljZSAgICAgICAgKmRldmljZSAgICA9IGNtZC0+
ZGV2aWNlOyAqLw0KLQlzdHJ1Y3QgaG9zdF9kYXRhICAgKmhvc3RfZGF0YSA9
IChzdHJ1Y3QgaG9zdF9kYXRhICopIGhvc3QtPmhvc3RkYXRhOw0KLQluY2Jf
cCBucCAgICAgICAgICAgICAgICAgICAgICA9IGhvc3RfZGF0YS0+bmNiOw0K
IAljY2JfcCBjcDsNCi0JdV9sb25nIGZsYWdzOw0KIAlpbnQgZm91bmQ7DQog
DQogI2lmZGVmCVNDU0lfTkNSX0RFQlVHX0VSUk9SX1JFQ09WRVJZX1NVUFBP
UlQNCkBAIC01MzIxLDEyICs1MzczLDEwIEBADQogCQlucC0+c3RhbGxpbmcg
PSAwOw0KICNlbmRpZg0KIA0KLQlzYXZlX2ZsYWdzKGZsYWdzKTsgY2xpKCk7
DQogLyoNCiAgKiBSZXR1cm4gaW1tZWRpYXRlbHkgaWYgcmVzZXQgaXMgaW4g
cHJvZ3Jlc3MuDQogICovDQogCWlmIChucC0+c2V0dGxlX3RpbWUpIHsNCi0J
CXJlc3RvcmVfZmxhZ3MoZmxhZ3MpOw0KIAkJcmV0dXJuIFNDU0lfUkVTRVRf
UFVOVDsNCiAJfQ0KIC8qDQpAQCAtNTM3MCwxMSArNTQyMCw5IEBADQogICov
DQogCWlmICghZm91bmQgJiYgc3luY19yZXNldCAmJiAhcmV0cmlldmVfZnJv
bV93YWl0aW5nX2xpc3QoMCwgbnAsIGNtZCkpIHsNCiAJCWNtZC0+cmVzdWx0
ID0gU2NzaVJlc3VsdChESURfUkVTRVQsIDApOw0KLQkJY21kLT5zY3NpX2Rv
bmUoY21kKTsNCisJCW5jcl9xdWV1ZV9kb25lX2NtZChucCwgY21kKTsNCiAJ
fQ0KIA0KLQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCi0NCiAJcmV0dXJuIFND
U0lfUkVTRVRfU1VDQ0VTUzsNCiB9DQogDQpAQCAtNTM4NywxNCArNTQzNSwx
MCBAQA0KICoqDQogKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKi8NCi1zdGF0aWMgaW50
IG5jcl9hYm9ydF9jb21tYW5kIChTY3NpX0NtbmQgKmNtZCkNCitzdGF0aWMg
aW50IG5jcl9hYm9ydF9jb21tYW5kIChuY2JfcCBucCwgU2NzaV9DbW5kICpj
bWQpDQogew0KLSAgICAgICAgc3RydWN0IFNjc2lfSG9zdCAgICpob3N0ICAg
ICAgPSBjbWQtPmhvc3Q7DQogLyoJU2NzaV9EZXZpY2UgICAgICAgICpkZXZp
Y2UgICAgPSBjbWQtPmRldmljZTsgKi8NCi0Jc3RydWN0IGhvc3RfZGF0YSAg
ICpob3N0X2RhdGEgPSAoc3RydWN0IGhvc3RfZGF0YSAqKSBob3N0LT5ob3N0
ZGF0YTsNCi0JbmNiX3AgbnAgICAgICAgICAgICAgICAgICAgICAgPSBob3N0
X2RhdGEtPm5jYjsNCiAJY2NiX3AgY3A7DQotCXVfbG9uZyBmbGFnczsNCiAJ
aW50IGZvdW5kOw0KIAlpbnQgcmV0djsNCiANCkBAIC01NDAzLDE0ICs1NDQ3
LDEyIEBADQogCQlucC0+c3RhbGxpbmcgPSAwOw0KICNlbmRpZg0KIA0KLQlz
YXZlX2ZsYWdzKGZsYWdzKTsgY2xpKCk7DQogLyoNCiAgKiBGaXJzdCwgbG9v
ayBmb3IgdGhlIHNjc2kgY29tbWFuZCBpbiB0aGUgd2FpdGluZyBsaXN0DQog
ICovDQogCWlmIChyZW1vdmVfZnJvbV93YWl0aW5nX2xpc3QobnAsIGNtZCkp
IHsNCiAJCWNtZC0+cmVzdWx0ID0gU2NzaVJlc3VsdChESURfQUJPUlQsIDAp
Ow0KLQkJY21kLT5zY3NpX2RvbmUoY21kKTsNCi0JCXJlc3RvcmVfZmxhZ3Mo
ZmxhZ3MpOw0KKwkJbmNyX3F1ZXVlX2RvbmVfY21kKG5wLCBjbWQpOw0KIAkJ
cmV0dXJuIFNDU0lfQUJPUlRfU1VDQ0VTUzsNCiAJfQ0KIA0KQEAgLTU0Mjks
MTIgKzU0NzEsMTAgQEANCiAJfQ0KIA0KIAlpZiAoIWZvdW5kKSB7DQotCQly
ZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCiAJCXJldHVybiBTQ1NJX0FCT1JUX05P
VF9SVU5OSU5HOw0KIAl9DQogDQogCWlmIChucC0+c2V0dGxlX3RpbWUpIHsN
Ci0JCXJlc3RvcmVfZmxhZ3MoZmxhZ3MpOw0KIAkJcmV0dXJuIFNDU0lfQUJP
UlRfU05PT1pFOw0KIAl9DQogDQpAQCAtNTQ2Niw4ICs1NTA2LDYgQEANCiAj
ZW5kaWYNCiAJT1VUQiAobmNfaXN0YXQsIFNJR1ApOw0KIA0KLQlyZXN0b3Jl
X2ZsYWdzKGZsYWdzKTsNCi0NCiAJcmV0dXJuIHJldHY7DQogfQ0KIA0KQEAg
LTU5MjYsOSArNTk2NCw5IEBADQogCWlmIChucC0+d2FpdGluZ19saXN0KSBy
ZXF1ZXVlX3dhaXRpbmdfbGlzdChucCk7DQogDQogCS8qDQotCSoqCXNpZ25h
bCBjb21wbGV0aW9uIHRvIGdlbmVyaWMgZHJpdmVyLg0KKwkqKglRdWV1ZSB0
aGlzIGNvbW1hbmQgdG8gdGhlIGRvbmUgbGlzdC4NCiAJKi8NCi0JY21kLT5z
Y3NpX2RvbmUgKGNtZCk7DQorCW5jcl9xdWV1ZV9kb25lX2NtZChucCwgY21k
KTsNCiB9DQogDQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNTk4NiwxNiArNjAy
NCwyMSBAQA0KICoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICovDQogDQotdm9pZCBuY3Jf
aW5pdCAobmNiX3AgbnAsIGNoYXIgKiBtc2csIHVfbG9uZyBjb2RlKQ0KK3Zv
aWQgbmNyX2luaXQgKG5jYl9wIG5wLCBpbnQgcmVzZXQsIGNoYXIgKiBtc2cs
IHVfbG9uZyBjb2RlKQ0KIHsNCiAJaW50CWk7DQogDQogCS8qDQotCSoqCVJl
c2V0IGNoaXAuDQorCSoqCVJlc2V0IGNoaXAgaWYgYXNrZWQsIG90aGVyd2lz
ZSBqdXN0IGNsZWFyIGZpZm9zLg0KIAkqLw0KLQ0KLQlPVVRCIChuY19pc3Rh
dCwgIFNSU1QpOw0KLQlERUxBWSAoMTAwMDApOw0KKwlpZiAocmVzZXQpIHsN
CisJCU9VVEIgKG5jX2lzdGF0LCAgU1JTVCk7DQorCQlERUxBWSAoMTAwMDAp
Ow0KKwl9DQorCWVsc2Ugew0KKwkJT1VUQiAobmNfc3Rlc3QzLCBURXxDU0Yp
Ow0KKwkJT1VUT05CIChuY19jdGVzdDMsIENMRik7DQorCX0NCiANCiAJLyoN
CiAJKioJTWVzc2FnZS4NCkBAIC02NjkyLDcgKzY3MzUsNiBAQA0KIAl1X2xv
bmcJdGhpc3RpbWUgPSBqaWZmaWVzOw0KIAl1X2xvbmcJY291bnQgPSAwOw0K
IAljY2JfcCBjcDsNCi0JdV9sb25nIGZsYWdzOw0KIA0KIAkvKg0KIAkqKglJ
ZiByZWxlYXNlIHByb2Nlc3MgaW4gcHJvZ3Jlc3MsIGxldCdzIGdvDQpAQCAt
NjcyNSwxMSArNjc2Nyw5IEBADQogCQlpZiAobnAtPnNldHRsZV90aW1lIDw9
IHRoaXN0aW1lKSB7DQogCQkJaWYgKGJvb3R2ZXJib3NlID4gMSkNCiAJCQkJ
cHJpbnRmKCIlczogY29tbWFuZCBwcm9jZXNzaW5nIHJlc3VtZWRcbiIsIG5j
cl9uYW1lKG5wKSk7DQotCQkJc2F2ZV9mbGFncyhmbGFncyk7IGNsaSgpOw0K
IAkJCW5wLT5zZXR0bGVfdGltZQk9IDA7DQogCQkJbnAtPmRpc2MJPSAxOw0K
IAkJCXJlcXVldWVfd2FpdGluZ19saXN0KG5wKTsNCi0JCQlyZXN0b3JlX2Zs
YWdzKGZsYWdzKTsNCiAJCX0NCiAJCXJldHVybjsNCiAJfQ0KQEAgLTY3NDMs
OCArNjc4Myw2IEBADQogCQkvKg0KIAkJKioJYmxvY2sgbmNyIGludGVycnVw
dHMNCiAJCSovDQotCQlzYXZlX2ZsYWdzKGZsYWdzKTsgY2xpKCk7DQotDQog
CQlucC0+bGFzdHRpbWUgPSB0aGlzdGltZTsNCiANCiAJCS8qDQpAQCAtNjgz
MSw3ICs2ODY5LDYgQEANCiAjZW5kaWYNCiAJCQlPVVRCIChuY19pc3RhdCwg
U0lHUCk7DQogCQl9DQotCQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCiAJfQ0K
IA0KICNpZmRlZiBTQ1NJX05DUl9CUk9LRU5fSU5UUg0KQEAgLTY4NDAsMTEg
KzY4NzcsOSBAQA0KIAkJLyoNCiAJCSoqCVByb2Nlc3MgcGVuZGluZyBpbnRl
cnJ1cHRzLg0KIAkJKi8NCi0JCXNhdmVfZmxhZ3MoZmxhZ3MpOyBjbGkoKTsN
CiAJCWlmIChERUJVR19GTEFHUyAmIERFQlVHX1RJTlkpIHByaW50ZiAoInsi
KTsNCiAJCW5jcl9leGNlcHRpb24gKG5wKTsNCiAJCWlmIChERUJVR19GTEFH
UyAmIERFQlVHX1RJTlkpIHByaW50ZiAoIn0iKTsNCi0JCXJlc3RvcmVfZmxh
Z3MoZmxhZ3MpOw0KIAl9DQogI2VuZGlmIC8qIFNDU0lfTkNSX0JST0tFTl9J
TlRSICovDQogfQ0KQEAgLTcwNjMsNyArNzA5OCw3IEBADQogCSovDQogDQog
CWlmIChzaXN0ICYgUlNUKSB7DQotCQluY3JfaW5pdCAobnAsIGJvb3R2ZXJi
b3NlID8gInNjc2kgcmVzZXQiIDogTlVMTCwgSFNfUkVTRVQpOw0KKwkJbmNy
X2luaXQgKG5wLCAxLCBib290dmVyYm9zZSA/ICJzY3NpIHJlc2V0IiA6IE5V
TEwsIEhTX1JFU0VUKTsNCiAJCXJldHVybjsNCiAJfTsNCiANCkBAIC03MTg0
LDcgKzcyMTksNyBAQA0KIAkJT1VUTCAobmNfZHNwLCBOQ0JfU0NSSVBUX1BI
WVMgKG5wLCBzdGFydCkpOw0KIAkJcmV0dXJuOw0KIAl9Ow0KLQluY3JfaW5p
dCAobnAsICJzZWxlY3Rpb24gdGltZW91dCIsIEhTX0ZBSUwpOw0KKwluY3Jf
aW5pdCAobnAsIDEsICJzZWxlY3Rpb24gdGltZW91dCIsIEhTX0ZBSUwpOw0K
IAlucC0+ZGlzYyA9IDE7DQogfQ0KIA0KQEAgLTcyMDksMTEgKzcyNDQsMTcg
QEANCiB7DQogCXVfY2hhciBzY3NpX21vZGUgPSBJTkIgKG5jX3N0ZXN0NCkg
JiBTTU9ERTsNCiANCi0JcHJpbnRmKCIlczogU0NTSSBidXMgbW9kZSBjaGFu
Z2UgZnJvbSAleCB0byAleCwgcmVzZXR0aW5nIC4uLlxuIiwNCisJcHJpbnRm
KCIlczogU0NTSSBidXMgbW9kZSBjaGFuZ2UgZnJvbSAleCB0byAleC5cbiIs
DQogCQluY3JfbmFtZShucCksIG5wLT5zY3NpX21vZGUsIHNjc2lfbW9kZSk7
DQogDQogCW5wLT5zY3NpX21vZGUgPSBzY3NpX21vZGU7DQotCW5jcl9zdGFy
dF9yZXNldChucCwgZHJpdmVyX3NldHVwLnNldHRsZV9kZWxheSk7DQorDQor
CS8qDQorCSoqCVN1c3BlbmQgY29tbWFuZCBwcm9jZXNzaW5nIGZvciAxIHNl
Y29uZCBhbmQgDQorCSoqCXJlaW5pdGlhbGl6ZSBhbGwgZXhjZXB0IHRoZSBj
aGlwLg0KKwkqLw0KKwlucC0+c2V0dGxlX3RpbWUJPSBqaWZmaWVzICsgSFo7
DQorCW5jcl9pbml0IChucCwgMCwgYm9vdHZlcmJvc2UgPyAic2NzaSBtb2Rl
IGNoYW5nZSIgOiBOVUxMLCBIU19SRVNFVCk7DQogDQogCXJldHVybiAxOw0K
IH0NCkBAIC04ODEzLDcgKzg4NTQsNyBAQA0KIAlPVVRCKG5jX3N0ZXN0Mywg
SFNDKTsJCS8qIEhhbHQgdGhlIHNjc2kgY2xvY2sJCSovDQogCU9VVEIobmNf
c2NudGwzLAlzY250bDMpOw0KIAlPVVRCKG5jX3N0ZXN0MSwgKERCTEVOfERC
TFNFTCkpOy8qIFNlbGVjdCBjbG9jayBtdWx0aXBsaWVyCSovDQotCU9VVEIo
bmNfc3Rlc3QzLCAweDAwKTsJCS8qIFJlc3RhcnQgc2NzaSBjbG9jayAJCSov
DQorCU9VVEIobmNfc3Rlc3QzLCAweDAwfFRFKTsJCS8qIFJlc3RhcnQgc2Nz
aSBjbG9jayAJCSovDQogfQ0KIA0KIA0KQEAgLTk3NTcsMjIgKzk3OTgsMzcg
QEANCiANCiBpbnQgbmNyNTNjOHh4X3F1ZXVlX2NvbW1hbmQgKFNjc2lfQ21u
ZCAqY21kLCB2b2lkICgqIGRvbmUpKFNjc2lfQ21uZCAqKSkNCiB7DQorICAg
ICBuY2JfcCBucCA9ICgoc3RydWN0IGhvc3RfZGF0YSAqKSBjbWQtPmhvc3Qt
Pmhvc3RkYXRhKS0+bmNiOw0KKyAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsN
CiAgICAgIGludCBzdHM7DQorDQogI2lmZGVmIERFQlVHX05DUjUzQzhYWA0K
IHByaW50aygibmNyNTNjOHh4X3F1ZXVlX2NvbW1hbmRcbiIpOw0KICNlbmRp
Zg0KIA0KLSAgICAgaWYgKChzdHMgPSBuY3JfcXVldWVfY29tbWFuZChjbWQs
IGRvbmUpKSAhPSBESURfT0spIHsNCisgICAgIGNtZC0+c2NzaV9kb25lICAg
ICA9IGRvbmU7DQorICAgICBjbWQtPmhvc3Rfc2NyaWJibGUgPSBOVUxMOw0K
KyAgICAgY21kLT5TQ3AucHRyICAgICAgID0gTlVMTDsNCisgICAgIGNtZC0+
U0NwLmJ1ZmZlciAgICA9IE5VTEw7DQorDQorICAgICBOQ1JfTE9DS19OQ0Io
bnAsIGZsYWdzKTsNCisNCisgICAgIGlmICgoc3RzID0gbmNyX3F1ZXVlX2Nv
bW1hbmQobnAsIGNtZCkpICE9IERJRF9PSykgew0KIAkgIGNtZC0+cmVzdWx0
ID0gU2NzaVJlc3VsdChzdHMsIDApOw0KLQkgIGRvbmUoY21kKTsNCiAjaWZk
ZWYgREVCVUdfTkNSNTNDOFhYDQogcHJpbnRrKCJuY3I1M2M4eHggOiBjb21t
YW5kIG5vdCBxdWV1ZWQgLSByZXN1bHQ9JWRcbiIsIHN0cyk7DQogI2VuZGlm
DQotICAgICAgICAgIHJldHVybiBzdHM7DQogICAgICB9DQogI2lmZGVmIERF
QlVHX05DUjUzQzhYWA0KKyAgICAgZWxzZQ0KIHByaW50aygibmNyNTNjOHh4
IDogY29tbWFuZCBzdWNjZXNzZnVsbHkgcXVldWVkXG4iKTsNCiAjZW5kaWYN
CisNCisgICAgIE5DUl9VTkxPQ0tfTkNCKG5wLCBmbGFncyk7DQorDQorICAg
ICBpZiAoc3RzICE9IERJRF9PSykNCisgICAgICAgICAgZG9uZShjbWQpOw0K
Kw0KICAgICAgcmV0dXJuIHN0czsNCiB9DQogDQpAQCAtOTc4OCwxNSArOTg0
NCwyMyBAQA0KIHN0YXRpYyB2b2lkIG5jcjUzYzh4eF9pbnRyKGludCBpcnEs
IHZvaWQgKmRldl9pZCwgc3RydWN0IHB0X3JlZ3MgKiByZWdzKQ0KIHsNCiAg
ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorICAgICBuY2JfcCBucCA9IChu
Y2JfcCkgZGV2X2lkOw0KKyAgICAgU2NzaV9DbW5kICpkb25lX2xpc3Q7DQog
DQogI2lmZGVmIERFQlVHX05DUjUzQzhYWA0KICAgICAgcHJpbnRrKCJuY3I1
M2M4eHggOiBpbnRlcnJ1cHQgcmVjZWl2ZWRcbiIpOw0KICNlbmRpZg0KIA0K
ICAgICAgaWYgKERFQlVHX0ZMQUdTICYgREVCVUdfVElOWSkgcHJpbnRmICgi
WyIpOw0KLSAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvX3JlcXVlc3RfbG9j
aywgZmxhZ3MpOw0KLSAgICAgbmNyX2V4Y2VwdGlvbigobmNiX3ApIGRldl9p
ZCk7DQotICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb19yZXF1ZXN0
X2xvY2ssIGZsYWdzKTsNCisNCisgICAgIE5DUl9MT0NLX05DQihucCwgZmxh
Z3MpOw0KKyAgICAgbmNyX2V4Y2VwdGlvbihucCk7DQorICAgICBkb25lX2xp
c3QgICAgID0gbnAtPmRvbmVfbGlzdDsNCisgICAgIG5wLT5kb25lX2xpc3Qg
PSAwOw0KKyAgICAgTkNSX1VOTE9DS19OQ0IobnAsIGZsYWdzKTsNCisNCisg
ICAgIG5jcl9mbHVzaF9kb25lX2NtZHMoZG9uZV9saXN0KTsNCisNCiAgICAg
IGlmIChERUJVR19GTEFHUyAmIERFQlVHX1RJTlkpIHByaW50ZiAoIl1cbiIp
Ow0KIH0NCiANCkBAIC05ODIxLDkgKzk4ODUsMTkgQEANCiAqKiAgIExpbnV4
IGVudHJ5IHBvaW50IG9mIHRoZSB0aW1lciBoYW5kbGVyDQogKi8NCiANCi1z
dGF0aWMgdm9pZCBuY3I1M2M4eHhfdGltZW91dCh1bnNpZ25lZCBsb25nIG5w
KQ0KK3N0YXRpYyB2b2lkIG5jcjUzYzh4eF90aW1lb3V0KHVuc2lnbmVkIGxv
bmcgbnByZWYpDQogew0KKyAgICAgbmNiX3AgbnAgPSAobmNiX3ApIG5wcmVm
Ow0KKyAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCisgICAgIFNjc2lfQ21u
ZCAqZG9uZV9saXN0Ow0KKw0KKyAgICAgTkNSX0xPQ0tfTkNCKG5wLCBmbGFn
cyk7DQogICAgICBuY3JfdGltZW91dCgobmNiX3ApIG5wKTsNCisgICAgIGRv
bmVfbGlzdCAgICAgPSBucC0+ZG9uZV9saXN0Ow0KKyAgICAgbnAtPmRvbmVf
bGlzdCA9IDA7DQorICAgICBOQ1JfVU5MT0NLX05DQihucCwgZmxhZ3MpOw0K
Kw0KKyAgICAgbmNyX2ZsdXNoX2RvbmVfY21kcyhkb25lX2xpc3QpOw0KIH0N
CiANCiAvKg0KQEAgLTk4MzQsMTMgKzk5MDgsMTUgQEANCiANCiBpbnQgbmNy
NTNjOHh4X3Jlc2V0KFNjc2lfQ21uZCAqY21kLCB1bnNpZ25lZCBpbnQgcmVz
ZXRfZmxhZ3MpDQogew0KKwluY2JfcCBucCA9ICgoc3RydWN0IGhvc3RfZGF0
YSAqKSBjbWQtPmhvc3QtPmhvc3RkYXRhKS0+bmNiOw0KIAlpbnQgc3RzOw0K
IAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlTY3NpX0NtbmQgKmRvbmVfbGlz
dDsNCiANCiAJcHJpbnRrKCJuY3I1M2M4eHhfcmVzZXQ6IHBpZD0lbHUgcmVz
ZXRfZmxhZ3M9JXggc2VyaWFsX251bWJlcj0lbGQgc2VyaWFsX251bWJlcl9h
dF90aW1lb3V0PSVsZFxuIiwNCiAJCWNtZC0+cGlkLCByZXNldF9mbGFncywg
Y21kLT5zZXJpYWxfbnVtYmVyLCBjbWQtPnNlcmlhbF9udW1iZXJfYXRfdGlt
ZW91dCk7DQogDQotCXNhdmVfZmxhZ3MoZmxhZ3MpOyBjbGkoKTsNCisJTkNS
X0xPQ0tfTkNCKG5wLCBmbGFncyk7DQogDQogCS8qDQogCSAqIFdlIGhhdmUg
dG8ganVzdCBpZ25vcmUgcmVzZXQgcmVxdWVzdHMgaW4gc29tZSBzaXR1YXRp
b25zLg0KQEAgLTk4NTgsNyArOTkzNCw3IEBADQogCSAqIGJlZm9yZSByZXR1
cm5pbmcgU0NTSV9SRVNFVF9TVUNDRVNTLg0KIAkgKi8NCiANCi0Jc3RzID0g
bmNyX3Jlc2V0X2J1cyhjbWQsDQorCXN0cyA9IG5jcl9yZXNldF9idXMobnAs
IGNtZCwNCiAJKHJlc2V0X2ZsYWdzICYgKFNDU0lfUkVTRVRfU1lOQ0hST05P
VVMgfCBTQ1NJX1JFU0VUX0FTWU5DSFJPTk9VUykpID09IFNDU0lfUkVTRVRf
U1lOQ0hST05PVVMpOw0KIAkvKg0KIAkgKiBTaW5jZSB3ZSBhbHdheXMgcmVz
ZXQgdGhlIGNvbnRyb2xsZXIsIHdoZW4gd2UgcmV0dXJuIHN1Y2Nlc3MsIA0K
QEAgLTk4NzAsNyArOTk0NiwxMiBAQA0KICNlbmRpZg0KIA0KIG91dDoNCi0J
cmVzdG9yZV9mbGFncyhmbGFncyk7DQorCWRvbmVfbGlzdCAgICAgPSBucC0+
ZG9uZV9saXN0Ow0KKwlucC0+ZG9uZV9saXN0ID0gMDsNCisJTkNSX1VOTE9D
S19OQ0IobnAsIGZsYWdzKTsNCisNCisJbmNyX2ZsdXNoX2RvbmVfY21kcyhk
b25lX2xpc3QpOw0KKw0KIAlyZXR1cm4gc3RzOw0KIH0NCiAjZWxzZQ0KQEAg
LTk4ODksMTMgKzk5NzAsMTUgQEANCiANCiBpbnQgbmNyNTNjOHh4X2Fib3J0
KFNjc2lfQ21uZCAqY21kKQ0KIHsNCisJbmNiX3AgbnAgPSAoKHN0cnVjdCBo
b3N0X2RhdGEgKikgY21kLT5ob3N0LT5ob3N0ZGF0YSktPm5jYjsNCiAJaW50
IHN0czsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCisJU2NzaV9DbW5kICpk
b25lX2xpc3Q7DQogDQogCXByaW50aygibmNyNTNjOHh4X2Fib3J0OiBwaWQ9
JWx1IHNlcmlhbF9udW1iZXI9JWxkIHNlcmlhbF9udW1iZXJfYXRfdGltZW91
dD0lbGRcbiIsDQogCQljbWQtPnBpZCwgY21kLT5zZXJpYWxfbnVtYmVyLCBj
bWQtPnNlcmlhbF9udW1iZXJfYXRfdGltZW91dCk7DQogDQotCXNhdmVfZmxh
Z3MoZmxhZ3MpOyBjbGkoKTsNCisJTkNSX0xPQ0tfTkNCKG5wLCBmbGFncyk7
DQogDQogCS8qDQogCSAqIFdlIGhhdmUgdG8ganVzdCBpZ25vcmUgYWJvcnQg
cmVxdWVzdHMgaW4gc29tZSBzaXR1YXRpb25zLg0KQEAgLTk5MDUsOSArOTk4
OCwxNCBAQA0KIAkJZ290byBvdXQ7DQogCX0NCiANCi0Jc3RzID0gbmNyX2Fi
b3J0X2NvbW1hbmQoY21kKTsNCisJc3RzID0gbmNyX2Fib3J0X2NvbW1hbmQo
bnAsIGNtZCk7DQogb3V0Og0KLQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCisJ
ZG9uZV9saXN0ICAgICA9IG5wLT5kb25lX2xpc3Q7DQorCW5wLT5kb25lX2xp
c3QgPSAwOw0KKwlOQ1JfVU5MT0NLX05DQihucCwgZmxhZ3MpOw0KKw0KKwlu
Y3JfZmx1c2hfZG9uZV9jbWRzKGRvbmVfbGlzdCk7DQorDQogCXJldHVybiBz
dHM7DQogfQ0KICNlbHNlDQpAQCAtOTk5OSwxNCArMTAwODcsMTQgQEANCiAj
aWZkZWYgREVCVUdfV0FJVElOR19MSVNUDQogCXByaW50ZigiJXM6IGNtZCAl
bHggdHJ5aW5nIHRvIHJlcXVldWVcbiIsIG5jcl9uYW1lKG5wKSwgKHVfbG9u
Zykgd2NtZCk7DQogI2VuZGlmDQotCQkJc3RzID0gbmNyX3F1ZXVlX2NvbW1h
bmQod2NtZCwgd2NtZC0+c2NzaV9kb25lKTsNCisJCQlzdHMgPSBuY3JfcXVl
dWVfY29tbWFuZChucCwgd2NtZCk7DQogCQl9DQogCQlpZiAoc3RzICE9IERJ
RF9PSykgew0KICNpZmRlZiBERUJVR19XQUlUSU5HX0xJU1QNCiAJcHJpbnRm
KCIlczogY21kICVseCBkb25lIGZvcmNlZCBzdHM9JWRcbiIsIG5jcl9uYW1l
KG5wKSwgKHVfbG9uZykgd2NtZCwgc3RzKTsNCiAjZW5kaWYNCiAJCQl3Y21k
LT5yZXN1bHQgPSBTY3NpUmVzdWx0KHN0cywgMCk7DQotCQkJd2NtZC0+c2Nz
aV9kb25lKHdjbWQpOw0KKwkJCW5jcl9xdWV1ZV9kb25lX2NtZChucCwgd2Nt
ZCk7DQogCQl9DQogCX0NCiB9DQpAQCAtMTAyODAsOSArMTAzNjgsOSBAQA0K
IAllbHNlIHsNCiAJCWxvbmcgZmxhZ3M7DQogDQotCQlzYXZlX2ZsYWdzKGZs
YWdzKTsgY2xpKCk7DQorCQlOQ1JfTE9DS19OQ0IobnAsIGZsYWdzKTsNCiAJ
CW5jcl91c2VyY21kIChucCk7DQotCQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsN
CisJCU5DUl9VTkxPQ0tfTkNCKG5wLCBmbGFncyk7DQogCX0NCiAJcmV0dXJu
IGxlbmd0aDsNCiB9DQo=
--8323328-26343631-892310812=:2451--

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu

home help back first fref pref prev next nref lref last post