--375685179-76745159-980630321=:20615
Content-Type: TEXT/PLAIN; charset=US-ASCII
Hi Alexey,
On Sat, 27 Jan 2001 kuznet@ms2.inr.ac.ru wrote:
> > fits the new Linux model a bit better, as it has one descriptor per
> > packet, not one per fragment (like the current implementation).
>
> Yes. Absence of such mode with acenic is big pain in ass.
And, at least for the starfire, using buffer descriptors eats up more
resources than using packet descriptors. So buffer descriptors are gone,
forever.
> Seems, this is pretty common bug. At least, perfect checksumming
> of chunks with any size and alignment is so big boast of
> alteon people, that it is clearly rather exception than rule. 8)8)
Oh well. Don't we wish hardware were perfect.. :-)
It's not too bad for the starfire, either, as it doesn't appear to suffer
from any alignment issues, and the only fragments it has problem with are
1-byte fragments (2-byte and larger are ok). And I'm still hoping that
Adaptec will release updated firmware (and that they will also approve the
inclusion of their firmware with the Linux driver).
If they don't approve it, maybe I'll add a config option so that the user
can download their own copy of the firmware from Adaptec's site, place it
in /etc somewhere, give the location to the driver and have the driver
open the files from kernel space and process them. It would be ugly
though, and a big PITA.
> I think you have to check for wrong combination of alignment/size and
> to call skb_checksum_help() and to disable checksumming if combination
> is bad.
Good, thanks a lot for the pointer. Maybe I went a bit overboard with my
fix, as I revert to CPU checksumming if *any* fragment (not just the last
one in the chain) has only 1 byte. But it seems to work well now.
I've attached a diff for the latest driver (and firmware) version, against
2.4.1pre10+zerocopy. Sorry about MIME, but my pine is currently broken
(strips trailing spaces/tabs).
And, one final question: is it worth it for me to extract just the Rx
checksumming changes and send them to Linux/Alan, or should I just wait
for zerocopy to be included?
Thanks,
Ion
--
It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.
--375685179-76745159-980630321=:20615
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="starfire-zerocopy-2.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.30.0101271318410.20615@age.cs.columbia.edu>
Content-Description:
Content-Disposition: attachment; filename="starfire-zerocopy-2.diff"
ZGlmZiAtdXJOWCBkaWZmX2tlcm5lbF9leGNsdWRlcyAvdXNyL3NyYy9sb2Nh
bC9saW51eC0yLjQudmFuaWxsYS9kcml2ZXJzL25ldC9zdGFyZmlyZS5jIGxp
bnV4LTIuNC9kcml2ZXJzL25ldC9zdGFyZmlyZS5jDQotLS0gL3Vzci9zcmMv
bG9jYWwvbGludXgtMi40LnZhbmlsbGEvZHJpdmVycy9uZXQvc3RhcmZpcmUu
YwlGcmkgQXVnIDExIDE1OjU3OjU4IDIwMDANCisrKyBsaW51eC0yLjQvZHJp
dmVycy9uZXQvc3RhcmZpcmUuYwlTYXQgSmFuIDI3IDEyOjQ0OjM1IDIwMDEN
CkBAIC0zNCw2ICszNCwxMCBAQA0KIAkNCiAJTEsxLjEuNCAoamdhcnppayk6
DQogCS0gTWVyZ2UgQmVja2VyIHZlcnNpb24gMS4wMw0KKw0KKwlMSzEuMi4w
IChJb24gQmFkdWxlc2N1IDxpb251dEBjcy5jb2x1bWJpYS5lZHU+KQ0KKwkt
IFN1cHBvcnQgaGFyZHdhcmUgUngvVHggY2hlY2tzdW1taW5nDQorCS0gQWRk
IEdGUCBmaXJtd2FyZSB0YWtlbiBmcm9tIEFkYXB0ZWMncyBOZXR3YXJlIGRy
aXZlcg0KICovDQogDQogLyogVGhlc2UgaWRlbnRpZnkgdGhlIGRyaXZlciBi
YXNlIHZlcnNpb24gYW5kIG1heSBub3QgYmUgcmVtb3ZlZC4gKi8NCkBAIC00
MywxMSArNDcsMTcgQEANCiAiIFVwZGF0ZXMgYW5kIGluZm8gYXQgaHR0cDov
L3d3dy5zY3lsZC5jb20vbmV0d29yay9zdGFyZmlyZS5odG1sXG4iOw0KIA0K
IHN0YXRpYyBjb25zdCBjaGFyIHZlcnNpb24zW10gPQ0KLSIgKHVub2ZmaWNp
YWwgMi40Lngga2VybmVsIHBvcnQsIHZlcnNpb24gMS4xLjQsIEF1Z3VzdCAx
MCwgMjAwMClcbiI7DQorIiAodW5vZmZpY2lhbCAyLjQueCBrZXJuZWwgcG9y
dCwgdmVyc2lvbiAxLjIuMCwgSmFudWFyeSAyNSwgMjAwMSlcbiI7DQogDQog
LyogVGhlIHVzZXItY29uZmlndXJhYmxlIHZhbHVlcy4NCiAgICBUaGVzZSBt
YXkgYmUgbW9kaWZpZWQgd2hlbiBhIGRyaXZlciBtb2R1bGUgaXMgbG9hZGVk
LiovDQogDQorLyoNCisgKiBUaGUgY3VycmVudCBmcmFtZSBwcm9jZXNzb3Ig
ZmlybXdhcmUgZmFpbHMgdG8gY2hlY2tzdW0gYSBmcmFnbWVudA0KKyAqIG9m
IGxlbmd0aCAxLiBJZiBhbmQgd2hlbiB0aGlzIGlzIGZpeGVkLCB0aGUgI2Rl
ZmluZSBiZWxvdyBjYW4gYmUgcmVtb3ZlZC4NCisgKi8NCisjZGVmaW5lIEhB
U19CUk9LRU5fRklSTVdBUkUNCisNCiAvKiBVc2VkIGZvciB0dW5pbmcgaW50
ZXJydXB0IGxhdGVuY3kgdnMuIG92ZXJoZWFkLiAqLw0KIHN0YXRpYyBpbnQg
aW50ZXJydXB0X21pdGlnYXRpb24gPSAweDA7DQogDQpAQCAtMTE3LDEyICsx
MjcsMTUgQEANCiAjaW5jbHVkZSA8YXNtL2JpdG9wcy5oPg0KICNpbmNsdWRl
IDxhc20vaW8uaD4NCiANCisjaW5jbHVkZSAic3RhcmZpcmVfZmlybXdhcmUu
aCINCisNCiBNT0RVTEVfQVVUSE9SKCJEb25hbGQgQmVja2VyIDxiZWNrZXJA
c2N5bGQuY29tPiIpOw0KIE1PRFVMRV9ERVNDUklQVElPTigiQWRhcHRlYyBT
dGFyZmlyZSBFdGhlcm5ldCBkcml2ZXIiKTsNCiBNT0RVTEVfUEFSTShtYXhf
aW50ZXJydXB0X3dvcmssICJpIik7DQogTU9EVUxFX1BBUk0obXR1LCAiaSIp
Ow0KIE1PRFVMRV9QQVJNKGRlYnVnLCAiaSIpOw0KIE1PRFVMRV9QQVJNKHJ4
X2NvcHlicmVhaywgImkiKTsNCitNT0RVTEVfUEFSTShpbnRlcnJ1cHRfbWl0
aWdhdGlvbiwgImkiKTsNCiBNT0RVTEVfUEFSTShvcHRpb25zLCAiMS0iIF9f
TU9EVUxFX1NUUklORyhNQVhfVU5JVFMpICJpIik7DQogTU9EVUxFX1BBUk0o
ZnVsbF9kdXBsZXgsICIxLSIgX19NT0RVTEVfU1RSSU5HKE1BWF9VTklUUykg
ImkiKTsNCiANCkBAIC0yNTYsMTkgKzI2OSwzMSBAQA0KIAlUeFRocmVzaG9s
ZD0weDUwMEIwLA0KIAlDb21wbGV0aW9uSGlBZGRyPTB4NTAwQjQsIFR4Q29t
cGxldGlvbkFkZHI9MHg1MDBCOCwNCiAJUnhDb21wbGV0aW9uQWRkcj0weDUw
MEJDLCBSeENvbXBsZXRpb25RMkFkZHI9MHg1MDBDMCwNCi0JQ29tcGxldGlv
blFDb25zdW1lcklkeD0weDUwMEM0LA0KKwlDb21wbGV0aW9uUUNvbnN1bWVy
SWR4PTB4NTAwQzQsIFJ4RE1BQ3RybD0weDUwMEQwLA0KIAlSeERlc2NRQ3Ry
bD0weDUwMEQ0LCBSeERlc2NRSGlBZGRyPTB4NTAwREMsIFJ4RGVzY1FBZGRy
PTB4NTAwRTAsDQogCVJ4RGVzY1FJZHg9MHg1MDBFOCwgUnhETUFTdGF0dXM9
MHg1MDBGMCwgUnhGaWx0ZXJNb2RlPTB4NTAwRjQsDQotCVR4TW9kZT0weDU1
MDAwLA0KKwlUeE1vZGU9MHg1NTAwMCwgVHhHZnBNZW09MHg1ODAwMCwgUnhH
ZnBNZW09MHg1YTAwMCwNCiB9Ow0KIA0KIC8qIEJpdHMgaW4gdGhlIGludGVy
cnVwdCBzdGF0dXMvbWFzayByZWdpc3RlcnMuICovDQogZW51bSBpbnRyX3N0
YXR1c19iaXRzIHsNCi0JSW50ck5vcm1hbFN1bW1hcnk9MHg4MDAwLAlJbnRy
QWJub3JtYWxTdW1tYXJ5PTB4MDIwMDAwMDAsDQotCUludHJSeERvbmU9MHgw
MzAwLCBJbnRyUnhFbXB0eT0weDEwMDQwLCBJbnRyUnhQQ0lFcnI9MHg4MDAw
MCwNCi0JSW50clR4RG9uZT0weDQwMDAsIEludHJUeEVtcHR5PTB4MTAwMCwg
SW50clR4UENJRXJyPTB4ODAwMDAsDQotCVN0YXRzTWF4PTB4MDgwMDAwMDAs
IExpbmtDaGFuZ2U9MHhmMDAwMDAwMCwNCi0JSW50clR4RGF0YUxvdz0weDAw
MDQwMDAwLA0KKwlJbnRyTGlua0NoYW5nZT0weGYwMDAwMDAwLCBJbnRyU3Rh
dHNNYXg9MHgwODAwMDAwMCwNCisJSW50ckFibm9ybWFsU3VtbWFyeT0weDAy
MDAwMDAwLCBJbnRyR2VuZXJhbFRpbWVyPTB4MDEwMDAwMDAsDQorCUludHJT
b2Z0d2FyZT0weDgwMDAwMCwgSW50clJ4Q29tcGxRMUxvdz0weDQwMDAwMCwN
CisJSW50clR4Q29tcGxRTG93PTB4MjAwMDAwLCBJbnRyUENJPTB4MTAwMDAw
LA0KKwlJbnRyRE1BRXJyPTB4MDgwMDAwLCBJbnRyVHhEYXRhTG93PTB4MDQw
MDAwLA0KKwlJbnRyUnhDb21wbFEyTG93PTB4MDIwMDAwLCBJbnRyUnhEZXNj
UTFMb3c9MHgwMTAwMDAsDQorCUludHJOb3JtYWxTdW1tYXJ5PTB4ODAwMCwg
SW50clR4RG9uZT0weDQwMDAsDQorCUludHJUeERNQURvbmU9MHgyMDAwLCBJ
bnRyVHhFbXB0eT0weDEwMDAsDQorCUludHJFYXJseVJ4UTI9MHgwODAwLCBJ
bnRyRWFybHlSeFExPTB4MDQwMCwNCisJSW50clJ4UTJEb25lPTB4MDIwMCwg
SW50clJ4UTFEb25lPTB4MDEwMCwNCisJSW50clJ4R0ZQRGVhZD0weDgwLCBJ
bnRyUnhEZXNjUTJMb3c9MHg0MCwNCisJSW50ck5vVHhDc3VtPTB4MjAsIElu
dHJUeEJhZElEPTB4MTAsDQorCUludHJIaVByaVR4QmFkSUQ9MHgwOCwgSW50
clJ4R2ZwPTB4MDQsDQorCUludHJUeEdmcD0weDAyLCBJbnRyUENJUGFkPTB4
MDEsDQorCS8qIG5vdCBxdWl0ZSBiaXRzICovDQorCUludHJSeERvbmU9SW50
clJ4UTJEb25lIHwgSW50clJ4UTFEb25lLA0KKwlJbnRyUnhFbXB0eT1JbnRy
UnhEZXNjUTFMb3cgfCBJbnRyUnhEZXNjUTJMb3csDQogfTsNCiANCiAvKiBC
aXRzIGluIHRoZSBSeEZpbHRlck1vZGUgcmVnaXN0ZXIuICovDQpAQCAtMjc3
LDYgKzMwMiwzNyBAQA0KIAlBY2NlcHRNdWx0aWNhc3Q9MHgxMCwgQWNjZXB0
TXlQaHlzPTB4RTA0MCwNCiB9Ow0KIA0KKy8qIEJpdHMgaW4gdGhlIFR4RGVz
Y0N0cmwgcmVnaXN0ZXIuICovDQorZW51bSB0eF9jdHJsX2JpdHMgew0KKwlU
eERlc2NTcGFjZVVubGltPTB4MDAsIFR4RGVzY1NwYWNlMzI9MHgxMCwgVHhE
ZXNjU3BhY2U2ND0weDIwLA0KKwlUeERlc2NTcGFjZTEyOD0weDMwLCBUeERl
c2NTcGFjZTI1Nj0weDQwLA0KKwlUeERlc2NUeXBlMD0weDAwLCBUeERlc2NU
eXBlMT0weDAxLCBUeERlc2NUeXBlMj0weDAyLA0KKwlUeERlc2NUeXBlMz0w
eDAzLCBUeERlc2NUeXBlND0weDA0LA0KKwlUeE5vRE1BQ29tcGxldGlvbj0w
eDA4LCBUeERlc2NRNjRiaXQ9MHg4MCwNCisJVHhIaVByaUZJRk9UaHJlc2hT
aGlmdD0yNCwgVHhQYWRMZW5TaGlmdD0xNiwNCisJVHhETUFCdXJzdFNpemVT
aGlmdD04LA0KK307DQorDQorLyogQml0cyBpbiB0aGUgUnhEZXNjUUN0cmwg
cmVnaXN0ZXIuICovDQorZW51bSByeF9jdHJsX2JpdHMgew0KKwlSeEJ1ZmZl
ckxlblNoaWZ0PTE2LCBSeE1pbkRlc2NyVGhyZXNoU2hpZnQ9MCwNCisJUnhQ
cmVmZXRjaE1vZGU9MHg4MDAwLCBSeDIwNDhRRW50cmllcz0weDQwMDAsDQor
CVJ4VmFyaWFibGVRPTB4MjAwMCwgUnhEZXNjNjRiaXQ9MHgxMDAwLA0KKwlS
eERlc2NRQWRkcjY0Yml0PTB4MDEwMCwNCisJUnhEZXNjU3BhY2U0PTB4MDAw
LCBSeERlc2NTcGFjZTg9MHgxMDAsDQorCVJ4RGVzY1NwYWNlMTY9MHgyMDAs
IFJ4RGVzY1NwYWNlMzI9MHgzMDAsDQorCVJ4RGVzY1NwYWNlNjQ9MHg0MDAs
IFJ4RGVzY1NwYWNlMTI4PTB4NTAwLA0KKwlSeENvbnN1bWVyV3JFbj0weDgw
LA0KK307DQorDQorLyogQml0cyBpbiB0aGUgUnhDb21wbGV0aW9uQWRkciBy
ZWdpc3RlciAqLw0KK2VudW0gcnhfY29tcGxfYml0cyB7DQorCVJ4Q29tcGxR
QWRkcjY0Yml0PTB4ODAsIFR4Q29tcGxQcm9kdWNlcldyRW49MHg0MCwNCisJ
UnhDb21wbFR5cGUwPTB4MDAsIFJ4Q29tcGxUeXBlMT0weDEwLA0KKwlSeENv
bXBsVHlwZTI9MHgyMCwgUnhDb21wbFR5cGUzPTB4MzAsDQorCVJ4Q29tcGxU
aHJlc2hTaGlmdD0wLA0KK307DQorDQogLyogVGhlIFJ4IGFuZCBUeCBidWZm
ZXIgZGVzY3JpcHRvcnMuICovDQogc3RydWN0IHN0YXJmaXJlX3J4X2Rlc2Mg
ew0KIAl1MzIgcnhhZGRyOwkJCQkJLyogT3B0aW9uYWxseSA2NCBiaXRzLiAq
Lw0KQEAgLTI4OCw4ICszNDQsMTIgQEANCiAvKiBDb21wbGV0aW9uIHF1ZXVl
IGVudHJ5Lg0KICAgIFlvdSBtdXN0IHVwZGF0ZSB0aGUgcGFnZSBhbGxvY2F0
aW9uLCBpbml0X3JpbmcgYW5kIHRoZSBzaGlmdCBjb3VudCBpbiByeCgpDQog
ICAgaWYgdXNpbmcgYSBsYXJnZXIgZm9ybWF0LiAqLw0KKyNkZWZpbmUgY3N1
bV9yeF9zdGF0dXMNCiBzdHJ1Y3QgcnhfZG9uZV9kZXNjIHsNCiAJdTMyIHN0
YXR1czsJCQkJCS8qIExvdyAxNiBiaXRzIGlzIGxlbmd0aC4gKi8NCisjaWZk
ZWYgY3N1bV9yeF9zdGF0dXMNCisJdTMyIHN0YXR1czI7CQkJCS8qIExvdyAx
NiBiaXRzIGlzIGNzdW0gKi8NCisjZW5kaWYNCiAjaWZkZWYgZnVsbF9yeF9z
dGF0dXMNCiAJdTMyIHN0YXR1czI7DQogCXUxNiB2bGFuaWQ7DQpAQCAtMzAx
LDE0ICszNjEsMjQgQEANCiAJUnhPSz0weDIwMDAwMDAwLCBSeEZJRk9FcnI9
MHgxMDAwMDAwMCwgUnhCdWZRMj0weDA4MDAwMDAwLA0KIH07DQogDQotLyog
VHlwZSAxIFR4IGRlc2NyaXB0b3IuICovDQorLyogVHlwZSAwIFR4IGRlc2Ny
aXB0b3IuICovDQorLyogSWYgbW9yZSBmcmFnbWVudHMgYXJlIG5lZWRlZCwg
ZG9uJ3QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUNCisgICBkZXNjcmlwdG9yIHNw
YWNpbmcgYXMgd2VsbCEgKi8NCiBzdHJ1Y3Qgc3RhcmZpcmVfdHhfZGVzYyB7
DQotCXUzMiBzdGF0dXM7CQkJCQkvKiBVcHBlciBiaXRzIGFyZSBzdGF0dXMs
IGxvd2VyIDE2IGxlbmd0aC4gKi8NCi0JdTMyIGFkZHI7DQorCXUzMiBzdGF0
dXM7DQorCXUzMiBuYnVmczsNCisJdTMyIGZpcnN0X2FkZHI7DQorCXUxNiBm
aXJzdF9sZW47DQorCXUxNiB0b3RhbF9sZW47DQorCXN0cnVjdCB7DQorCQl1
MzIgYWRkcjsNCisJCXUzMiBsZW47DQorCX0gZnJhZ1s2XTsNCiB9Ow0KIGVu
dW0gdHhfZGVzY19iaXRzIHsNCi0JVHhEZXNjSUQ9MHhCMTAxMDAwMCwJCS8q
IEFsc28gbWFya3Mgc2luZ2xlIGZyYWdtZW50LCBhZGQgQ1JDLiAgKi8NCi0J
VHhEZXNjSW50cj0weDA4MDAwMDAwLCBUeFJpbmdXcmFwPTB4MDQwMDAwMDAs
DQorCVR4RGVzY0lEPTB4QjAwMDAwMDAsDQorCVR4Q1JDRW49MHgwMTAwMDAw
MCwgVHhEZXNjSW50cj0weDA4MDAwMDAwLA0KKwlUeFJpbmdXcmFwPTB4MDQw
MDAwMDAsIFR4Q2FsVENQPTB4MDIwMDAwMDAsDQogfTsNCiBzdHJ1Y3QgdHhf
ZG9uZV9yZXBvcnQgew0KIAl1MzIgc3RhdHVzOwkJCQkJLyogdGltZXN0YW1w
LCBpbmRleC4gKi8NCkBAIC0zMTgsMTAgKzM4OCwxNSBAQA0KIH07DQogDQog
I2RlZmluZSBQUklWX0FMSUdOCTE1IAkvKiBSZXF1aXJlZCBhbGlnbm1lbnQg
bWFzayAqLw0KLXN0cnVjdCByaW5nX2luZm8gew0KK3N0cnVjdCByeF9yaW5n
X2luZm8gew0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KIAlkbWFfYWRkcl90
IG1hcHBpbmc7DQogfTsNCitzdHJ1Y3QgdHhfcmluZ19pbmZvIHsNCisJc3Ry
dWN0IHNrX2J1ZmYgKnNrYjsNCisJZG1hX2FkZHJfdCBmaXJzdF9tYXBwaW5n
Ow0KKwlkbWFfYWRkcl90IGZyYWdfbWFwcGluZ1s2XTsNCit9Ow0KIA0KIHN0
cnVjdCBuZXRkZXZfcHJpdmF0ZSB7DQogCS8qIERlc2NyaXB0b3IgcmluZ3Mg
Zmlyc3QgZm9yIGFsaWdubWVudC4gKi8NCkBAIC0zMzAsOCArNDA1LDggQEAN
CiAJZG1hX2FkZHJfdCByeF9yaW5nX2RtYTsNCiAJZG1hX2FkZHJfdCB0eF9y
aW5nX2RtYTsNCiAJLyogVGhlIGFkZHJlc3NlcyBvZiByeC90eC1pbi1wbGFj
ZSBza2J1ZmZzLiAqLw0KLQlzdHJ1Y3QgcmluZ19pbmZvIHJ4X2luZm9bUlhf
UklOR19TSVpFXTsNCi0Jc3RydWN0IHJpbmdfaW5mbyB0eF9pbmZvW1RYX1JJ
TkdfU0laRV07DQorCXN0cnVjdCByeF9yaW5nX2luZm8gcnhfaW5mb1tSWF9S
SU5HX1NJWkVdOw0KKwlzdHJ1Y3QgdHhfcmluZ19pbmZvIHR4X2luZm9bVFhf
UklOR19TSVpFXTsNCiAJLyogUG9pbnRlcnMgdG8gY29tcGxldGlvbiBxdWV1
ZXMgKGZ1bGwgcGFnZXMpLiAgSSBzaG91bGQgY2FjaGUgbGluZSBwYWQuLiov
DQogCXU4IHBhZDBbMTAwXTsNCiAJc3RydWN0IHJ4X2RvbmVfZGVzYyAqcnhf
ZG9uZV9xOw0KQEAgLTM5MCwxNiArNDY1LDE3IEBADQogCXN0YXRpYyBpbnQg
Y2FyZF9pZHggPSAtMTsNCiAJc3RhdGljIGludCBwcmludGVkX3ZlcnNpb24g
PSAwOw0KIAlsb25nIGlvYWRkcjsNCi0JaW50IGRydl9mbGFncywgaW9fc2l6
ZSA9IG5ldGRydl90YmxbY2hpcF9pZHhdLmlvX3NpemU7DQorCWludCBkcnZf
ZmxhZ3MsIGlvX3NpemU7DQogDQogCWNhcmRfaWR4Kys7DQogCW9wdGlvbiA9
IGNhcmRfaWR4IDwgTUFYX1VOSVRTID8gb3B0aW9uc1tjYXJkX2lkeF0gOiAw
Ow0KLQkNCisNCiAJaWYgKCFwcmludGVkX3ZlcnNpb24rKykNCiAJCXByaW50
ayhLRVJOX0lORk8gIiVzIiBLRVJOX0lORk8gIiVzIiBLRVJOX0lORk8gIiVz
IiwNCiAJCSAgICAgICB2ZXJzaW9uMSwgdmVyc2lvbjIsIHZlcnNpb24zKTsN
CiANCiAJaW9hZGRyID0gcGNpX3Jlc291cmNlX3N0YXJ0IChwZGV2LCAwKTsN
CisJaW9fc2l6ZSA9IHBjaV9yZXNvdXJjZV9sZW4gKHBkZXYsIDApOw0KIAlp
ZiAoIWlvYWRkciB8fCAoKHBjaV9yZXNvdXJjZV9mbGFncyAocGRldiwgMCkg
JiBJT1JFU09VUkNFX01FTSkgPT0gMCkpIHsNCiAJCXByaW50ayAoS0VSTl9F
UlIgInN0YXJmaXJlICVkOiBubyBQQ0kgTUVNIHJlc291cmNlcywgYWJvcnRp
bmdcbiIsIGNhcmRfaWR4KTsNCiAJCXJldHVybiAtRU5PREVWOw0KQEAgLTQx
MCw2ICs0ODYsNyBAQA0KIAkJcHJpbnRrIChLRVJOX0VSUiAic3RhcmZpcmUg
JWQ6IGNhbm5vdCBhbGxvYyBldGhlcmRldiwgYWJvcnRpbmdcbiIsIGNhcmRf
aWR4KTsNCiAJCXJldHVybiAtRU5PTUVNOw0KIAl9DQorCVNFVF9NT0RVTEVf
T1dORVIoZGV2KTsNCiAJDQogCWlycSA9IHBkZXYtPmlycTsgDQogDQpAQCAt
NDM0LDYgKzUxMSw5IEBADQogCXByaW50ayhLRVJOX0lORk8gIiVzOiAlcyBh
dCAweCVseCwgIiwNCiAJCSAgIGRldi0+bmFtZSwgbmV0ZHJ2X3RibFtjaGlw
X2lkeF0ubmFtZSwgaW9hZGRyKTsNCiANCisJLyogU3RhcmZpcmUgY2FuIGRv
IFNHIGFuZCBUQ1AvVURQIGNoZWNrc3VtbWluZyAqLw0KKwlkZXYtPmZlYXR1
cmVzIHw9IE5FVElGX0ZfU0cgfCBORVRJRl9GX0lQX0NTVU07DQorDQogCS8q
IFNlcmlhbCBFRVBST00gcmVhZHMgYXJlIGhpZGRlbiBieSB0aGUgaGFyZHdh
cmUuICovDQogCWZvciAoaSA9IDA7IGkgPCA2OyBpKyspDQogCQlkZXYtPmRl
dl9hZGRyW2ldID0gcmVhZGIoaW9hZGRyICsgRUVQUk9NQ3RybCArIDIwLWkp
Ow0KQEAgLTU0NiwxMyArNjI2LDkgQEANCiANCiAJLyogRG8gd2UgZXZlciBu
ZWVkIHRvIHJlc2V0IHRoZSBjaGlwPz8/ICovDQogDQotCU1PRF9JTkNfVVNF
X0NPVU5UOw0KLQ0KIAlyZXR2YWwgPSByZXF1ZXN0X2lycShkZXYtPmlycSwg
JmludHJfaGFuZGxlciwgU0FfU0hJUlEsIGRldi0+bmFtZSwgZGV2KTsNCi0J
aWYgKHJldHZhbCkgew0KLQkJTU9EX0RFQ19VU0VfQ09VTlQ7DQorCWlmIChy
ZXR2YWwpDQogCQlyZXR1cm4gcmV0dmFsOw0KLQl9DQogDQogCS8qIERpc2Fi
bGUgdGhlIFJ4IGFuZCBUeCwgYW5kIHJlc2V0IHRoZSBjaGlwLiAqLw0KIAl3
cml0ZWwoMCwgaW9hZGRyICsgR2VuQ3RybCk7DQpAQCAtNTY0LDcgKzY0MCw3
IEBADQogCWlmIChucC0+dHhfZG9uZV9xID09IDApDQogCQlucC0+dHhfZG9u
ZV9xID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQobnAtPnBjaV9kZXYsIFBBR0Vf
U0laRSwgJm5wLT50eF9kb25lX3FfZG1hKTsNCiAJaWYgKG5wLT5yeF9kb25l
X3EgPT0gMCkNCi0JCW5wLT5yeF9kb25lX3EgPSBwY2lfYWxsb2NfY29uc2lz
dGVudChucC0+cGNpX2RldiwgUEFHRV9TSVpFLCAmbnAtPnJ4X2RvbmVfcV9k
bWEpOw0KKwkJbnAtPnJ4X2RvbmVfcSA9IHBjaV9hbGxvY19jb25zaXN0ZW50
KG5wLT5wY2lfZGV2LCBzaXplb2Yoc3RydWN0IHJ4X2RvbmVfZGVzYykgKiBE
T05FX1FfU0laRSwgJm5wLT5yeF9kb25lX3FfZG1hKTsNCiAJaWYgKG5wLT50
eF9yaW5nID09IDApDQogCQlucC0+dHhfcmluZyA9IHBjaV9hbGxvY19jb25z
aXN0ZW50KG5wLT5wY2lfZGV2LCBQQUdFX1NJWkUsICZucC0+dHhfcmluZ19k
bWEpOw0KIAlpZiAobnAtPnJ4X3JpbmcgPT0gMCkNCkBAIC01NzUsNyArNjUx
LDcgQEANCiAJCQlwY2lfZnJlZV9jb25zaXN0ZW50KG5wLT5wY2lfZGV2LCBQ
QUdFX1NJWkUsDQogCQkJCQkJCQlucC0+dHhfZG9uZV9xLCBucC0+dHhfZG9u
ZV9xX2RtYSk7DQogCQlpZiAobnAtPnJ4X2RvbmVfcSkNCi0JCQlwY2lfZnJl
ZV9jb25zaXN0ZW50KG5wLT5wY2lfZGV2LCBQQUdFX1NJWkUsDQorCQkJcGNp
X2ZyZWVfY29uc2lzdGVudChucC0+cGNpX2Rldiwgc2l6ZW9mKHN0cnVjdCBy
eF9kb25lX2Rlc2MpICogRE9ORV9RX1NJWkUsDQogCQkJCQkJCQlucC0+cnhf
ZG9uZV9xLCBucC0+cnhfZG9uZV9xX2RtYSk7DQogCQlpZiAobnAtPnR4X3Jp
bmcpDQogCQkJcGNpX2ZyZWVfY29uc2lzdGVudChucC0+cGNpX2RldiwgUEFH
RV9TSVpFLA0KQEAgLTU4MywxNiArNjU5LDIzIEBADQogCQlpZiAobnAtPnJ4
X3JpbmcpDQogCQkJcGNpX2ZyZWVfY29uc2lzdGVudChucC0+cGNpX2Rldiwg
UEFHRV9TSVpFLA0KIAkJCQkJCQkJbnAtPnJ4X3JpbmcsIG5wLT5yeF9yaW5n
X2RtYSk7DQotCQlNT0RfREVDX1VTRV9DT1VOVDsNCiAJCXJldHVybiAtRU5P
TUVNOw0KIAl9DQogDQogCWluaXRfcmluZyhkZXYpOw0KIAkvKiBTZXQgdGhl
IHNpemUgb2YgdGhlIFJ4IGJ1ZmZlcnMuICovDQotCXdyaXRlbCgobnAtPnJ4
X2J1Zl9zejw8MTYpIHwgMHhBMDAwLCBpb2FkZHIgKyBSeERlc2NRQ3RybCk7
DQotDQotCS8qIFNldCBUeCBkZXNjcmlwdG9yIHRvIHR5cGUgMSBhbmQgcGFk
ZGluZyB0byAwIGJ5dGVzLiAqLw0KLQl3cml0ZWwoMHgwMjAwMDQwMSwgaW9h
ZGRyICsgVHhEZXNjQ3RybCk7DQorCXdyaXRlbCgobnAtPnJ4X2J1Zl9zeiA8
PCBSeEJ1ZmZlckxlblNoaWZ0KSB8DQorCQkgICAoMCA8PCBSeE1pbkRlc2Ny
VGhyZXNoU2hpZnQpIHwNCisJCSAgIFJ4UHJlZmV0Y2hNb2RlIHwgUnhWYXJp
YWJsZVEgfA0KKwkJICAgUnhEZXNjU3BhY2U0LA0KKwkJICAgaW9hZGRyICsg
UnhEZXNjUUN0cmwpOw0KKw0KKwkvKiBTZXQgVHggZGVzY3JpcHRvciB0byB0
eXBlIDAgYW5kIHNwYWNpbmcgdG8gNjQgYnl0ZXMuICovDQorCXdyaXRlbCgo
MiA8PCBUeEhpUHJpRklGT1RocmVzaFNoaWZ0KSB8DQorCSAgICAgICAoMCA8
PCBUeFBhZExlblNoaWZ0KSB8DQorCSAgICAgICAoNCA8PCBUeERNQUJ1cnN0
U2l6ZVNoaWZ0KSB8DQorCSAgICAgICBUeERlc2NTcGFjZTY0IHwgVHhEZXNj
VHlwZTAsDQorCSAgICAgICBpb2FkZHIgKyBUeERlc2NDdHJsKTsNCiANCiAj
aWYgZGVmaW5lZChBRERSXzY0QklUUykgJiYgZGVmaW5lZChfX2FscGhhX18p
DQogCS8qIFhYWCBXZSByZWFsbHkgbmVlZCBhIDY0LWJpdCBQQ0kgZG1hIGlu
dGVyZmFjZXMgdG9vLi4uIC1EYXZlTSAqLw0KQEAgLTYwNyw3ICs2OTAsMjQg
QEANCiAJd3JpdGVsKG5wLT50eF9yaW5nX2RtYSwgaW9hZGRyICsgVHhSaW5n
UHRyKTsNCiANCiAJd3JpdGVsKG5wLT50eF9kb25lX3FfZG1hLCBpb2FkZHIg
KyBUeENvbXBsZXRpb25BZGRyKTsNCi0Jd3JpdGVsKG5wLT5yeF9kb25lX3Ff
ZG1hLCBpb2FkZHIgKyBSeENvbXBsZXRpb25BZGRyKTsNCisjaWZkZWYgZnVs
bF9yeF9zdGF0dXMNCisJd3JpdGVsKG5wLT5yeF9kb25lX3FfZG1hIHwNCisJ
CSAgIFJ4Q29tcGxUeXBlMyB8DQorCQkgICAoMCA8PCBSeENvbXBsVGhyZXNo
U2hpZnQpLA0KKwkJICAgaW9hZGRyICsgUnhDb21wbGV0aW9uQWRkcik7DQor
I2Vsc2UNCisjaWZkZWYgY3N1bV9yeF9zdGF0dXMNCisJd3JpdGVsKG5wLT5y
eF9kb25lX3FfZG1hIHwNCisJCSAgIFJ4Q29tcGxUeXBlMiB8DQorCQkgICAo
MCA8PCBSeENvbXBsVGhyZXNoU2hpZnQpLA0KKwkJICAgaW9hZGRyICsgUnhD
b21wbGV0aW9uQWRkcik7DQorI2Vsc2UNCisJd3JpdGVsKG5wLT5yeF9kb25l
X3FfZG1hIHwNCisJCSAgIFJ4Q29tcGxUeXBlMCB8DQorCQkgICAoMCA8PCBS
eENvbXBsVGhyZXNoU2hpZnQpLA0KKwkJICAgaW9hZGRyICsgUnhDb21wbGV0
aW9uQWRkcik7DQorI2VuZGlmDQorI2VuZGlmDQogDQogCWlmIChkZWJ1ZyA+
IDEpDQogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6ICBGaWxsaW5nIGluIHRo
ZSBzdGF0aW9uIGFkZHJlc3MuXG4iLCBkZXYtPm5hbWUpOw0KQEAgLTY0Mywx
NSArNzQzLDIxIEBADQogCWNoZWNrX2R1cGxleChkZXYsIDEpOw0KIA0KIAkv
KiBTZXQgdGhlIGludGVycnVwdCBtYXNrIGFuZCBlbmFibGUgUENJIGludGVy
cnVwdHMuICovDQotCXdyaXRlbChJbnRyUnhEb25lIHwgSW50clJ4RW1wdHkg
fCBJbnRyUnhQQ0lFcnIgfA0KLQkJICAgSW50clR4RG9uZSB8IEludHJUeEVt
cHR5IHwgSW50clR4UENJRXJyIHwNCi0JCSAgIFN0YXRzTWF4IHwgTGlua0No
YW5nZSB8IEludHJOb3JtYWxTdW1tYXJ5IHwgSW50ckFibm9ybWFsU3VtbWFy
eQ0KLQkJICAgfCAweDAwMTAgLCBpb2FkZHIgKyBJbnRyRW5hYmxlKTsNCisJ
d3JpdGVsKEludHJSeERvbmUgfCBJbnRyUnhFbXB0eSB8IEludHJETUFFcnIg
fA0KKwkgICAgICAgSW50clR4RG9uZSB8IEludHJTdGF0c01heCB8IEludHJM
aW5rQ2hhbmdlIHwNCisJICAgICAgIEludHJOb3JtYWxTdW1tYXJ5IHwgSW50
ckFibm9ybWFsU3VtbWFyeSB8DQorCSAgICAgICBJbnRyUnhHRlBEZWFkIHwg
SW50ck5vVHhDc3VtIHwgSW50clR4QmFkSUQsDQorCSAgICAgICBpb2FkZHIg
KyBJbnRyRW5hYmxlKTsNCiAJd3JpdGVsKDB4MDA4MDAwMDAgfCByZWFkbChp
b2FkZHIgKyBQQ0lEZXZpY2VDb25maWcpLA0KIAkJICAgaW9hZGRyICsgUENJ
RGV2aWNlQ29uZmlnKTsNCiANCi0JLyogRW5hYmxlIHRoZSBSeCBhbmQgVHgg
dW5pdHMuICovDQotCXdyaXRlbCgweDAwMEYsIGlvYWRkciArIEdlbkN0cmwp
Ow0KKwkvKiBMb2FkIFJ4L1R4IGZpcm13YXJlIGludG8gdGhlIGZyYW1lIHBy
b2Nlc3NvcnMgKi8NCisJZm9yIChpID0gMDsgaSA8IEZJUk1XQVJFX1JYX1NJ
WkUgKiAyOyBpKyspDQorCQl3cml0ZWwoY3B1X3RvX2xlMzIoZmlybXdhcmVf
cnhbaV0pLCBpb2FkZHIgKyBSeEdmcE1lbSArIGkgKiA0KTsNCisJZm9yIChp
ID0gMDsgaSA8IEZJUk1XQVJFX1RYX1NJWkUgKiAyOyBpKyspDQorCQl3cml0
ZWwoY3B1X3RvX2xlMzIoZmlybXdhcmVfdHhbaV0pLCBpb2FkZHIgKyBUeEdm
cE1lbSArIGkgKiA0KTsNCisJLyogRW5hYmxlIHRoZSBSeCBhbmQgVHggdW5p
dHMsIGFuZCB0aGUgUngvVHggZnJhbWUgcHJvY2Vzc29ycy4gKi8NCisJd3Jp
dGVsKDB4MDAzRiwgaW9hZGRyICsgR2VuQ3RybCk7DQogDQogCWlmIChkZWJ1
ZyA+IDIpDQogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IERvbmUgbmV0ZGV2
X29wZW4oKS5cbiIsDQpAQCAtNzY1LDcgKzg3MSw3IEBADQogc3RhdGljIHZv
aWQgaW5pdF9yaW5nKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogew0KIAlz
dHJ1Y3QgbmV0ZGV2X3ByaXZhdGUgKm5wID0gKHN0cnVjdCBuZXRkZXZfcHJp
dmF0ZSAqKWRldi0+cHJpdjsNCi0JaW50IGk7DQorCWludCBpLCBqOw0KIA0K
IAlucC0+dHhfZnVsbCA9IDA7DQogCW5wLT5jdXJfcnggPSBucC0+Y3VyX3R4
ID0gMDsNCkBAIC04MDQsNyArOTEwLDkgQEANCiANCiAJZm9yIChpID0gMDsg
aSA8IFRYX1JJTkdfU0laRTsgaSsrKSB7DQogCQlucC0+dHhfaW5mb1tpXS5z
a2IgPSBOVUxMOw0KLQkJbnAtPnR4X2luZm9baV0ubWFwcGluZyA9IDA7DQor
CQlucC0+dHhfaW5mb1tpXS5maXJzdF9tYXBwaW5nID0gMDsNCisJCWZvciAo
aiA9IDA7IGogPCA2OyBqKyspDQorCQkJbnAtPnR4X2luZm9baV0uZnJhZ19t
YXBwaW5nW2pdID0gMDsNCiAJCW5wLT50eF9yaW5nW2ldLnN0YXR1cyA9IDA7
DQogCX0NCiAJcmV0dXJuOw0KQEAgLTgxNCw2ICs5MjIsNyBAQA0KIHsNCiAJ
c3RydWN0IG5ldGRldl9wcml2YXRlICpucCA9IChzdHJ1Y3QgbmV0ZGV2X3By
aXZhdGUgKilkZXYtPnByaXY7DQogCXVuc2lnbmVkIGVudHJ5Ow0KKwlpbnQg
aTsNCiANCiAJLyogQ2F1dGlvbjogdGhlIHdyaXRlIG9yZGVyIGlzIGltcG9y
dGFudCBoZXJlLCBzZXQgdGhlIGZpZWxkDQogCSAgIHdpdGggdGhlICJvd25l
cnNoaXAiIGJpdHMgbGFzdC4gKi8NCkBAIC04MjEsNDIgKzkzMCw4NyBAQA0K
IAkvKiBDYWxjdWxhdGUgdGhlIG5leHQgVHggZGVzY3JpcHRvciBlbnRyeS4g
Ki8NCiAJZW50cnkgPSBucC0+Y3VyX3R4ICUgVFhfUklOR19TSVpFOw0KIA0K
KyNpZmRlZiBIQVNfQlJPS0VOX0ZJUk1XQVJFDQorCXsNCisJCWludCBoYXNf
YmFkX2xlbmd0aCA9IDA7DQorDQorCQlpZiAoc2tiX2hlYWRsZW4oc2tiKSA9
PSAxKQ0KKwkJCWhhc19iYWRfbGVuZ3RoID0gMTsNCisJCWVsc2Ugew0KKwkJ
CWZvciAoaSA9IDA7IGkgPCBza2Jfc2hpbmZvKHNrYiktPm5yX2ZyYWdzOyBp
KyspDQorCQkJCWlmIChza2Jfc2hpbmZvKHNrYiktPmZyYWdzW2ldLnNpemUg
PT0gMSkgew0KKwkJCQkJaGFzX2JhZF9sZW5ndGggPSAxOw0KKwkJCQkJYnJl
YWs7DQorCQkJCX0NCisJCX0NCisNCisJCWlmIChoYXNfYmFkX2xlbmd0aCkN
CisJCQlza2JfY2hlY2tzdW1faGVscChza2IpOw0KKwl9DQorI2VuZGlmIC8q
IEhBU19CUk9LRU5fRklSTVdBUkUgKi8NCisNCiAJbnAtPnR4X2luZm9bZW50
cnldLnNrYiA9IHNrYjsNCi0JbnAtPnR4X2luZm9bZW50cnldLm1hcHBpbmcg
PQ0KLQkJcGNpX21hcF9zaW5nbGUobnAtPnBjaV9kZXYsIHNrYi0+ZGF0YSwg
c2tiLT5sZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOw0KKwlucC0+dHhfaW5mb1tl
bnRyeV0uZmlyc3RfbWFwcGluZyA9DQorCQlwY2lfbWFwX3NpbmdsZShucC0+
cGNpX2Rldiwgc2tiLT5kYXRhLCBza2JfaGVhZGxlbihza2IpLCBQQ0lfRE1B
X1RPREVWSUNFKTsNCiANCi0JbnAtPnR4X3JpbmdbZW50cnldLmFkZHIgPSBj
cHVfdG9fbGUzMihucC0+dHhfaW5mb1tlbnRyeV0ubWFwcGluZyk7DQorCW5w
LT50eF9yaW5nW2VudHJ5XS5maXJzdF9hZGRyID0gY3B1X3RvX2xlMzIobnAt
PnR4X2luZm9bZW50cnldLmZpcnN0X21hcHBpbmcpOw0KKwlucC0+dHhfcmlu
Z1tlbnRyeV0uZmlyc3RfbGVuID0gY3B1X3RvX2xlMzIoc2tiX2hlYWRsZW4o
c2tiKSk7DQorCW5wLT50eF9yaW5nW2VudHJ5XS50b3RhbF9sZW4gPSBjcHVf
dG9fbGUzMihza2ItPmxlbik7DQogCS8qIEFkZCAgInwgVHhEZXNjSW50ciIg
dG8gZ2VuZXJhdGUgVHgtZG9uZSBpbnRlcnJ1cHRzLiAqLw0KLQlucC0+dHhf
cmluZ1tlbnRyeV0uc3RhdHVzID0gY3B1X3RvX2xlMzIoc2tiLT5sZW4gfCBU
eERlc2NJRCk7DQorCW5wLT50eF9yaW5nW2VudHJ5XS5zdGF0dXMgPSBjcHVf
dG9fbGUzMihUeERlc2NJRCB8IFR4Q1JDRW4pOw0KKwlpZiAoZW50cnkgPj0g
VFhfUklOR19TSVpFLTEpCQkgLyogV3JhcCByaW5nICovDQorCQlucC0+dHhf
cmluZ1tlbnRyeV0uc3RhdHVzIHw9IGNwdV90b19sZTMyKFR4UmluZ1dyYXAg
fCBUeERlc2NJbnRyKTsNCisJbnAtPnR4X3JpbmdbZW50cnldLm5idWZzID0g
Y3B1X3RvX2xlMzIoc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFncyArIDEpOw0K
Kw0KKwlpZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fSFcpDQorCQlu
cC0+dHhfcmluZ1tlbnRyeV0uc3RhdHVzIHw9IGNwdV90b19sZTMyKFR4Q2Fs
VENQKTsNCisNCiAJaWYgKGRlYnVnID4gNSkgew0KLQkJcHJpbnRrKEtFUk5f
REVCVUcgIiVzOiBUeCAjJWQgc2xvdCAlZCAgJTguOHggJTguOHguXG4iLA0K
KwkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBUeCAjJWQgc2xvdCAlZCBzdGF0
dXMgJTguOHggbmJ1ZnMgJWQgbGVuICU0LjR4LyU0LjR4LlxuIiwNCiAJCQkg
ICBkZXYtPm5hbWUsIG5wLT5jdXJfdHgsIGVudHJ5LA0KIAkJCSAgIGxlMzJf
dG9fY3B1KG5wLT50eF9yaW5nW2VudHJ5XS5zdGF0dXMpLA0KLQkJCSAgIGxl
MzJfdG9fY3B1KG5wLT50eF9yaW5nW2VudHJ5XS5hZGRyKSk7DQorCQkJICAg
bGUzMl90b19jcHUobnAtPnR4X3JpbmdbZW50cnldLm5idWZzKSwNCisJCQkg
ICBsZTMyX3RvX2NwdShucC0+dHhfcmluZ1tlbnRyeV0uZmlyc3RfbGVuKSwN
CisJCQkgICBsZTMyX3RvX2NwdShucC0+dHhfcmluZ1tlbnRyeV0udG90YWxf
bGVuKSk7DQorCX0NCisNCisJZm9yIChpID0gMDsgaSA8IHNrYl9zaGluZm8o
c2tiKS0+bnJfZnJhZ3M7IGkrKykgew0KKwkJc2tiX2ZyYWdfdCAqdGhpc19m
cmFnID0gJnNrYl9zaGluZm8oc2tiKS0+ZnJhZ3NbaV07DQorDQorCQkvKiB3
ZSBhbHJlYWR5IGhhdmUgdGhlIHByb3BlciB2YWx1ZSBpbiBlbnRyeSAqLw0K
KwkJbnAtPnR4X2luZm9bZW50cnldLmZyYWdfbWFwcGluZ1tpXSA9DQorCQkJ
cGNpX21hcF9zaW5nbGUobnAtPnBjaV9kZXYsIHBhZ2VfYWRkcmVzcyh0aGlz
X2ZyYWctPnBhZ2UpICsgdGhpc19mcmFnLT5wYWdlX29mZnNldCwgdGhpc19m
cmFnLT5zaXplLCBQQ0lfRE1BX1RPREVWSUNFKTsNCisNCisJCW5wLT50eF9y
aW5nW2VudHJ5XS5mcmFnW2ldLmFkZHIgPSBjcHVfdG9fbGUzMihucC0+dHhf
aW5mb1tlbnRyeV0uZnJhZ19tYXBwaW5nW2ldKTsNCisJCW5wLT50eF9yaW5n
W2VudHJ5XS5mcmFnW2ldLmxlbiA9IGNwdV90b19sZTMyKHRoaXNfZnJhZy0+
c2l6ZSk7DQorCQlpZiAoZGVidWcgPiA1KSB7DQorCQkJcHJpbnRrKEtFUk5f
REVCVUcgIiVzOiBUeCAjJWQgZnJhZyAlZCBsZW4gJTQuNHguXG4iLA0KKwkJ
CQkgICBkZXYtPm5hbWUsIG5wLT5jdXJfdHgsIGksDQorCQkJCSAgIGxlMzJf
dG9fY3B1KG5wLT50eF9yaW5nW2VudHJ5XS5mcmFnW2ldLmxlbikpOw0KKwkJ
fQ0KIAl9DQorDQogCW5wLT5jdXJfdHgrKzsNCi0jaWYgMQ0KLQlpZiAoZW50
cnkgPj0gVFhfUklOR19TSVpFLTEpIHsJCSAvKiBXcmFwIHJpbmcgKi8NCi0J
CW5wLT50eF9yaW5nW2VudHJ5XS5zdGF0dXMgfD0gY3B1X3RvX2xlMzIoVHhS
aW5nV3JhcCB8IFR4RGVzY0ludHIpOw0KKw0KKwlpZiAoZW50cnkgPj0gVFhf
UklOR19TSVpFLTEpCQkgLyogV3JhcCByaW5nICovDQogCQllbnRyeSA9IC0x
Ow0KLQl9DQotI2VuZGlmDQorCWVudHJ5Kys7DQogDQogCS8qIE5vbi14ODY6
IGV4cGxpY2l0bHkgZmx1c2ggZGVzY3JpcHRvciBjYWNoZSBsaW5lcyBoZXJl
LiAqLw0KKwkvKiBFbnN1cmUgZXZlcnl0aGluZyBpcyB3cml0dGVuIGJhY2sg
YWJvdmUgYmVmb3JlIHRoZSB0cmFuc21pdCBpcw0KKwkgICBpbml0aWF0ZWQu
IC0gSmVzICovDQorCXdtYigpOw0KIA0KIAkvKiBVcGRhdGUgdGhlIHByb2R1
Y2VyIGluZGV4LiAqLw0KLQl3cml0ZWwoKytlbnRyeSwgZGV2LT5iYXNlX2Fk
ZHIgKyBUeFByb2R1Y2VySWR4KTsNCisJd3JpdGVsKGVudHJ5ICogKHNpemVv
ZihzdHJ1Y3Qgc3RhcmZpcmVfdHhfZGVzYykgLyA4KSwgZGV2LT5iYXNlX2Fk
ZHIgKyBUeFByb2R1Y2VySWR4KTsNCiANCiAJaWYgKG5wLT5jdXJfdHggLSBu
cC0+ZGlydHlfdHggPj0gVFhfUklOR19TSVpFIC0gMSkgew0KIAkJbnAtPnR4
X2Z1bGwgPSAxOw0KIAkJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOw0KIAl9DQor
DQogCWRldi0+dHJhbnNfc3RhcnQgPSBqaWZmaWVzOw0KIA0KLQlpZiAoZGVi
dWcgPiA0KSB7DQotCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IFRyYW5zbWl0
IGZyYW1lICMlZCBxdWV1ZWQgaW4gc2xvdCAlZC5cbiIsDQotCQkJICAgZGV2
LT5uYW1lLCBucC0+Y3VyX3R4LCBlbnRyeSk7DQotCX0NCiAJcmV0dXJuIDA7
DQogfQ0KIA0KQEAgLTkxOSwxOCArMTA3MywyOSBAQA0KIAkJCQkJbnAtPnN0
YXRzLnR4X3BhY2tldHMrKzsNCiAJCQkJfSBlbHNlIGlmICgodHhfc3RhdHVz
ICYgMHhlMDAwMDAwMCkgPT0gMHg4MDAwMDAwMCkgew0KIAkJCQkJc3RydWN0
IHNrX2J1ZmYgKnNrYjsNCisJCQkJCWludCBpOw0KIAkJCQkJdTE2IGVudHJ5
ID0gdHhfc3RhdHVzOyAJCS8qIEltcGxpY2l0IHRydW5jYXRlICovDQotCQkJ
CQllbnRyeSA+Pj0gMzsNCisJCQkJCWVudHJ5IC89IHNpemVvZihzdHJ1Y3Qg
c3RhcmZpcmVfdHhfZGVzYyk7DQogDQogCQkJCQlza2IgPSBucC0+dHhfaW5m
b1tlbnRyeV0uc2tiOw0KKwkJCQkJbnAtPnR4X2luZm9bZW50cnldLnNrYiA9
IE5VTEw7DQogCQkJCQlwY2lfdW5tYXBfc2luZ2xlKG5wLT5wY2lfZGV2LA0K
LQkJCQkJCQkgbnAtPnR4X2luZm9bZW50cnldLm1hcHBpbmcsDQotCQkJCQkJ
CSBza2ItPmxlbiwgUENJX0RNQV9UT0RFVklDRSk7DQorCQkJCQkJCQkJIG5w
LT50eF9pbmZvW2VudHJ5XS5maXJzdF9tYXBwaW5nLA0KKwkJCQkJCQkJCSBz
a2JfaGVhZGxlbihza2IpLA0KKwkJCQkJCQkJCSBQQ0lfRE1BX1RPREVWSUNF
KTsNCisJCQkJCW5wLT50eF9pbmZvW2VudHJ5XS5maXJzdF9tYXBwaW5nID0g
MDsNCisNCisJCQkJCWZvciAoaSA9IDA7IGkgPCBza2Jfc2hpbmZvKHNrYikt
Pm5yX2ZyYWdzOyBpKyspIHsNCisJCQkJCQlwY2lfdW5tYXBfc2luZ2xlKG5w
LT5wY2lfZGV2LA0KKwkJCQkJCQkJCQkgbnAtPnR4X2luZm9bZW50cnldLmZy
YWdfbWFwcGluZ1tpXSwNCisJCQkJCQkJCQkJIHNrYl9zaGluZm8oc2tiKS0+
ZnJhZ3NbaV0uc2l6ZSwNCisJCQkJCQkJCQkJIFBDSV9ETUFfVE9ERVZJQ0Up
Ow0KKwkJCQkJCW5wLT50eF9pbmZvW2VudHJ5XS5mcmFnX21hcHBpbmdbaV0g
PSAwOw0KKwkJCQkJfQ0KIA0KIAkJCQkJLyogU2NhdmVuZ2UgdGhlIGRlc2Ny
aXB0b3IuICovDQogCQkJCQlkZXZfa2ZyZWVfc2tiX2lycShza2IpOw0KLQkJ
CQkJbnAtPnR4X2luZm9bZW50cnldLnNrYiA9IE5VTEw7DQotCQkJCQlucC0+
dHhfaW5mb1tlbnRyeV0ubWFwcGluZyA9IDA7DQorDQogCQkJCQlucC0+ZGly
dHlfdHgrKzsNCiAJCQkJfQ0KIAkJCQlucC0+dHhfZG9uZV9xW25wLT50eF9k
b25lXS5zdGF0dXMgPSAwOw0KQEAgLTEwMzcsMTQgKzEyMDIsNiBAQA0KIAkJ
CQl0ZW1wID0gc2tiX3B1dChza2IsIHBrdF9sZW4pOw0KIAkJCQlucC0+cnhf
aW5mb1tlbnRyeV0uc2tiID0gTlVMTDsNCiAJCQkJbnAtPnJ4X2luZm9bZW50
cnldLm1hcHBpbmcgPSAwOw0KLSNpZm5kZWYgZmluYWxfdmVyc2lvbgkJCQkv
KiBSZW1vdmUgYWZ0ZXIgdGVzdGluZy4gKi8NCi0JCQkJaWYgKGxlMzJfdG9f
Y3B1KG5wLT5yeF9yaW5nW2VudHJ5XS5yeGFkZHIgJiB+MykgIT0gKCh1bnNp
Z25lZCBsb25nKSB0ZW1wKSkNCi0JCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6
IEludGVybmFsIGZhdWx0OiBUaGUgc2tidWZmIGFkZHJlc3NlcyAiDQotCQkJ
CQkJICAgImRvIG5vdCBtYXRjaCBpbiBuZXRkZXZfcng6ICVkIHZzLiAlcCAv
ICVwLlxuIiwNCi0JCQkJCQkgICBkZXYtPm5hbWUsDQotCQkJCQkJICAgbGUz
Ml90b19jcHUobnAtPnJ4X3JpbmdbZW50cnldLnJ4YWRkciksDQotCQkJCQkJ
ICAgc2tiLT5oZWFkLCB0ZW1wKTsNCi0jZW5kaWYNCiAJCQl9DQogI2lmbmRl
ZiBmaW5hbF92ZXJzaW9uCQkJCS8qIFJlbW92ZSBhZnRlciB0ZXN0aW5nLiAq
Lw0KIAkJCS8qIFlvdSB3aWxsIHdhbnQgdGhpcyBpbmZvIGZvciB0aGUgaW5p
dGlhbCBkZWJ1Zy4gKi8NCkBAIC0xMDYwLDkgKzEyMTcsMjMgQEANCiAJCQkJ
CSAgIHNrYi0+ZGF0YVsxN10pOw0KICNlbmRpZg0KIAkJCXNrYi0+cHJvdG9j
b2wgPSBldGhfdHlwZV90cmFucyhza2IsIGRldik7DQotI2lmZGVmIGZ1bGxf
cnhfc3RhdHVzDQotCQkJaWYgKGxlMzJfdG9fY3B1KG5wLT5yeF9kb25lX3Fb
bnAtPnJ4X2RvbmVdLnN0YXR1czIpICYgMHgwMTAwMDAwMCkNCisjaWYgZGVm
aW5lZChmdWxsX3J4X3N0YXR1cykgfHwgZGVmaW5lZChjc3VtX3J4X3N0YXR1
cykNCisJCQlpZiAobGUzMl90b19jcHUobnAtPnJ4X2RvbmVfcVtucC0+cnhf
ZG9uZV0uc3RhdHVzMikgJiAweDAxMDAwMDAwKSB7DQogCQkJCXNrYi0+aXBf
c3VtbWVkID0gQ0hFQ0tTVU1fVU5ORUNFU1NBUlk7DQorCQkJfQ0KKwkJCS8q
DQorCQkJICogVGhpcyBmZWF0dXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSB3b3Jr
aW5nLCBhdCBsZWFzdA0KKwkJCSAqIHdpdGggdGhlIHR3byBmaXJtd2FyZSB2
ZXJzaW9ucyBJIGhhdmUuIElmIHRoZSBHRlAgc2Vlcw0KKwkJCSAqIGEgZnJh
Z21lbnQsIGl0IGVpdGhlciBpZ25vcmVzIGl0IGNvbXBsZXRlbHksIG9yIHJl
cG9ydHMNCisJCQkgKiAiYmFkIGNoZWNrc3VtIiBvbiBpdC4NCisJCQkgKg0K
KwkJCSAqIE1heWJlIEkgbWlzc2VkIHNvbWV0aGluZyAtLSBjb3JyZWN0aW9u
cyBhcmUgd2VsY29tZS4gLUlvbg0KKwkJCSAqLw0KKwkJCWVsc2UgaWYgKGxl
MzJfdG9fY3B1KG5wLT5yeF9kb25lX3FbbnAtPnJ4X2RvbmVdLnN0YXR1czIp
ICYgMHgwMDQwMDAwMCkgew0KKwkJCQlza2ItPmlwX3N1bW1lZCA9IENIRUNL
U1VNX0hXOw0KKwkJCQlza2ItPmNzdW0gPSBsZTMyX3RvX2NwdShucC0+cnhf
ZG9uZV9xW25wLT5yeF9kb25lXS5zdGF0dXMyKSAmIDB4ZmZmZjsNCisJCQkJ
cHJpbnRrKEtFUk5fREVCVUcgIiVzOiBjaGVja3N1bV9odywgc3RhdHVzMiA9
ICV4XG4iLCBkZXYtPm5hbWUsIG5wLT5yeF9kb25lX3FbbnAtPnJ4X2RvbmVd
LnN0YXR1czIpOw0KKwkJCX0NCiAjZW5kaWYNCiAJCQluZXRpZl9yeChza2Ip
Ow0KIAkJCWRldi0+bGFzdF9yeCA9IGppZmZpZXM7DQpAQCAtMTEwOSwyOCAr
MTI4MCwyNiBAQA0KIHsNCiAJc3RydWN0IG5ldGRldl9wcml2YXRlICpucCA9
IChzdHJ1Y3QgbmV0ZGV2X3ByaXZhdGUgKilkZXYtPnByaXY7DQogDQotCWlm
IChpbnRyX3N0YXR1cyAmIExpbmtDaGFuZ2UpIHsNCisJaWYgKGludHJfc3Rh
dHVzICYgSW50ckxpbmtDaGFuZ2UpIHsNCiAJCXByaW50ayhLRVJOX05PVElD
RSAiJXM6IExpbmsgY2hhbmdlZDogQXV0b25lZ290aWF0aW9uIGFkdmVydGlz
aW5nIg0KIAkJCSAgICIgJTQuNHggIHBhcnRuZXIgJTQuNHguXG4iLCBkZXYt
Pm5hbWUsDQogCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNbMF0sIDQp
LA0KIAkJCSAgIG1kaW9fcmVhZChkZXYsIG5wLT5waHlzWzBdLCA1KSk7DQog
CQljaGVja19kdXBsZXgoZGV2LCAwKTsNCiAJfQ0KLQlpZiAoaW50cl9zdGF0
dXMgJiBTdGF0c01heCkgew0KKwlpZiAoaW50cl9zdGF0dXMgJiBJbnRyU3Rh
dHNNYXgpIHsNCiAJCWdldF9zdGF0cyhkZXYpOw0KIAl9DQogCS8qIENhbWUg
Y2xvc2UgdG8gdW5kZXJydW5uaW5nIHRoZSBUeCBGSUZPLCBpbmNyZWFzZSB0
aHJlc2hvbGQuICovDQogCWlmIChpbnRyX3N0YXR1cyAmIEludHJUeERhdGFM
b3cpDQogCQl3cml0ZWwoKytucC0+dHhfdGhyZXNob2xkLCBkZXYtPmJhc2Vf
YWRkciArIFR4VGhyZXNob2xkKTsNCiAJaWYgKChpbnRyX3N0YXR1cyAmDQot
CQkgfihJbnRyQWJub3JtYWxTdW1tYXJ5fExpbmtDaGFuZ2V8U3RhdHNNYXh8
SW50clR4RGF0YUxvd3wxKSkgJiYgZGVidWcpDQorCQkgfihJbnRyQWJub3Jt
YWxTdW1tYXJ5fEludHJMaW5rQ2hhbmdlfEludHJTdGF0c01heHxJbnRyVHhE
YXRhTG93fDEpKSAmJiBkZWJ1ZykNCiAJCXByaW50ayhLRVJOX0VSUiAiJXM6
IFNvbWV0aGluZyBXaWNrZWQgaGFwcGVuZWQhICU0LjR4LlxuIiwNCiAJCQkg
ICBkZXYtPm5hbWUsIGludHJfc3RhdHVzKTsNCi0JLyogSG1tbW1tLCBpdCdz
IG5vdCBjbGVhciBob3cgdG8gcmVjb3ZlciBmcm9tIFBDSSBmYXVsdHMuICov
DQotCWlmIChpbnRyX3N0YXR1cyAmIEludHJUeFBDSUVycikNCisJLyogSG1t
bW1tLCBpdCdzIG5vdCBjbGVhciBob3cgdG8gcmVjb3ZlciBmcm9tIERNQSBm
YXVsdHMuICovDQorCWlmIChpbnRyX3N0YXR1cyAmIEludHJETUFFcnIpDQog
CQlucC0+c3RhdHMudHhfZmlmb19lcnJvcnMrKzsNCi0JaWYgKGludHJfc3Rh
dHVzICYgSW50clJ4UENJRXJyKQ0KLQkJbnAtPnN0YXRzLnJ4X2ZpZm9fZXJy
b3JzKys7DQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgbmV0X2RldmljZV9zdGF0
cyAqZ2V0X3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQpAQCAtMTI4
MCw3ICsxNDQ5LDcgQEANCiB7DQogCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNl
X2FkZHI7DQogCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSAoc3RydWN0
IG5ldGRldl9wcml2YXRlICopZGV2LT5wcml2Ow0KLQlpbnQgaTsNCisJaW50
IGksIGo7DQogDQogCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsNCiANCkBAIC0x
MzA1LDcgKzE0NzQsNyBAQA0KIAkJZm9yIChpID0gMDsgaSA8IDggLyogVFhf
UklOR19TSVpFIGlzIGh1Z2UhICovOyBpKyspDQogCQkJcHJpbnRrKEtFUk5f
REVCVUcgIiAjJWQgZGVzYy4gJTguOHggJTguOHggLT4gJTguOHguXG4iLA0K
IAkJCQkgICBpLCBsZTMyX3RvX2NwdShucC0+dHhfcmluZ1tpXS5zdGF0dXMp
LA0KLQkJCQkgICBsZTMyX3RvX2NwdShucC0+dHhfcmluZ1tpXS5hZGRyKSwN
CisJCQkJICAgbGUzMl90b19jcHUobnAtPnR4X3JpbmdbaV0uZmlyc3RfYWRk
ciksDQogCQkJCSAgIGxlMzJfdG9fY3B1KG5wLT50eF9kb25lX3FbaV0uc3Rh
dHVzKSk7DQogCQlwcmludGsoS0VSTl9ERUJVRyAiICBSeCByaW5nIGF0ICU4
Ljh4IC0+ICVwOlxuIiwNCiAJCQkgICBucC0+cnhfcmluZ19kbWEsIG5wLT5y
eF9kb25lX3EpOw0KQEAgLTEzMzMsMTYgKzE1MDIsMjMgQEANCiAJCXN0cnVj
dCBza19idWZmICpza2IgPSBucC0+dHhfaW5mb1tpXS5za2I7DQogCQlpZiAo
c2tiICE9IE5VTEwpIHsNCiAJCQlwY2lfdW5tYXBfc2luZ2xlKG5wLT5wY2lf
ZGV2LA0KLQkJCQkJIG5wLT50eF9pbmZvW2ldLm1hcHBpbmcsDQotCQkJCQkg
c2tiLT5sZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOw0KKwkJCQkJIG5wLT50eF9p
bmZvW2ldLmZpcnN0X21hcHBpbmcsDQorCQkJCQkgc2tiX2hlYWRsZW4oc2ti
KSwgUENJX0RNQV9UT0RFVklDRSk7DQorCQkJbnAtPnR4X2luZm9baV0uZmly
c3RfbWFwcGluZyA9IDA7DQogCQkJZGV2X2tmcmVlX3NrYihza2IpOw0KKwkJ
CW5wLT50eF9pbmZvW2ldLnNrYiA9IE5VTEw7DQorCQkJZm9yIChqID0gMDsg
aiA8IDY7IGorKykNCisJCQkJaWYgKG5wLT50eF9pbmZvW2ldLmZyYWdfbWFw
cGluZ1tqXSkgew0KKwkJCQkJcGNpX3VubWFwX3NpbmdsZShucC0+cGNpX2Rl
diwNCisJCQkJCQkJCQkgbnAtPnR4X2luZm9baV0uZnJhZ19tYXBwaW5nW2pd
LA0KKwkJCQkJCQkJCSBza2Jfc2hpbmZvKHNrYiktPmZyYWdzW2pdLnNpemUs
DQorCQkJCQkJCQkJIFBDSV9ETUFfVE9ERVZJQ0UpOw0KKwkJCQkJbnAtPnR4
X2luZm9baV0uZnJhZ19tYXBwaW5nW2pdID0gMDsNCisJCQkJfSBlbHNlDQor
CQkJCQlicmVhazsNCiAJCX0NCi0JCW5wLT50eF9pbmZvW2ldLnNrYiA9IE5V
TEw7DQotCQlucC0+dHhfaW5mb1tpXS5tYXBwaW5nID0gMDsNCiAJfQ0KIA0K
LQlNT0RfREVDX1VTRV9DT1VOVDsNCi0NCiAJcmV0dXJuIDA7DQogfQ0KIA0K
QEAgLTEzNTksNiArMTUzNSw5IEBADQogDQogCXVucmVnaXN0ZXJfbmV0ZGV2
KGRldik7DQogCWlvdW5tYXAoKGNoYXIgKilkZXYtPmJhc2VfYWRkcik7DQor
DQorCXJlbGVhc2VfbWVtX3JlZ2lvbihwY2lfcmVzb3VyY2Vfc3RhcnQgKHBk
ZXYsIDApLA0KKwkJCQkJICAgcGNpX3Jlc291cmNlX2xlbiAocGRldiwgMCkp
Ow0KIA0KIAlpZiAobnAtPnR4X2RvbmVfcSkNCiAJCXBjaV9mcmVlX2NvbnNp
c3RlbnQobnAtPnBjaV9kZXYsIFBBR0VfU0laRSwNCmRpZmYgLXVyTlggZGlm
Zl9rZXJuZWxfZXhjbHVkZXMgL3Vzci9zcmMvbG9jYWwvbGludXgtMi40LnZh
bmlsbGEvZHJpdmVycy9uZXQvc3RhcmZpcmVfZmlybXdhcmUuaCBsaW51eC0y
LjQvZHJpdmVycy9uZXQvc3RhcmZpcmVfZmlybXdhcmUuaA0KLS0tIC91c3Iv
c3JjL2xvY2FsL2xpbnV4LTIuNC52YW5pbGxhL2RyaXZlcnMvbmV0L3N0YXJm
aXJlX2Zpcm13YXJlLmgJV2VkIERlYyAzMSAxNjowMDowMCAxOTY5DQorKysg
bGludXgtMi40L2RyaXZlcnMvbmV0L3N0YXJmaXJlX2Zpcm13YXJlLmgJU2F0
IEphbiAyNyAxMzowMzowNiAyMDAxDQpAQCAtMCwwICsxLDIxNSBAQA0KK3N0
YXRpYyB1MzIgZmlybXdhcmVfcnhbXSA9IHsNCisgIDB4MDEwMDAzZGMsIDB4
MDAwMDAwMDAsDQorICAweDA0MDAwNDIxLCAweDAwMDAwMDg2LA0KKyAgMHg4
MDAwMDAxNSwgMHgwMDAwMTgwZSwNCisgIDB4ODEwMDAwMTUsIDB4MDAwMDY2
NjQsDQorICAweDFhMDA0MGFiLCAweDAwMDAwYjA2LA0KKyAgMHgxNDIwMDAx
MSwgMHgwMDAwMDAwMCwNCisgIDB4MTQyMDQwMjIsIDB4MDAwMGFhYWEsDQor
ICAweDE0MjA0MDIyLCAweDAwMDAwMzAwLA0KKyAgMHgxNDIwNDAyMiwgMHgw
MDAwMDAwMCwNCisgIDB4MWEwMDQwYWIsIDB4MDAwMDBiMTQsDQorICAweDE0
MjAwMDExLCAweDAwMDAwMDAwLA0KKyAgMHg4MzAwMDAxNSwgMHgwMDAwMDAw
MiwNCisgIDB4MDQwMDAwMjEsIDB4MDAwMDAwMDAsDQorICAweDAwMDAwMDEw
LCAweDAwMDAwMDAwLA0KKyAgMHgwNDAwMDQyMSwgMHgwMDAwMDA4NywNCisg
IDB4MDAwMDAwMTAsIDB4MDAwMDAwMDAsDQorICAweDAwMDAwMDEwLCAweDAw
MDAwMDAwLA0KKyAgMHgwMDAwODAxNSwgMHgwMDAwMDAwMCwNCisgIDB4MDAw
MDAwM2UsIDB4MDAwMDAwMDAsDQorICAweDAwMDAwMDEwLCAweDAwMDAwMDAw
LA0KKyAgMHg4MjAwMDAxNSwgMHgwMDAwNDAwMCwNCisgIDB4MDA5ZTgwNTAs
IDB4MDAwMDAwMDAsDQorICAweDAzMDA4MDE1LCAweDAwMDAwMDAwLA0KKyAg
MHg4NjAwODAxNSwgMHgwMDAwMDAwMCwNCisgIDB4ODIwMDAwMTUsIDB4MDAw
MDgwMDAsDQorICAweDAxMDAwMDFjLCAweDAwMDAwMDAwLA0KKyAgMHgwMDAw
NTBhMCwgMHgwMDAwMDEwYywNCisgIDB4NGUyMGQwMTEsIDB4MDAwMDYwMDgs
DQorICAweDE0MjBkMDEyLCAweDAwMDA0MDA4LA0KKyAgMHgwMDAwZjA5MCwg
MHgwMDAwNzAwMCwNCisgIDB4MDAwMGM4YjAsIDB4MDAwMDMwMDAsDQorICAw
eDAwMDA0MDQwLCAweDAwMDAwMDAwLA0KKyAgMHgwMDEwODAxNSwgMHgwMDAw
MDAwMCwNCisgIDB4MDBhMmMxNTAsIDB4MDAwMDQwMDAsDQorICAweDAwYTQw
MGIwLCAweDAwMDAwMDE0LA0KKyAgMHgwMDAwMDAyMCwgMHgwMDAwMDAwMCwN
CisgIDB4MjUwMDQwMGQsIDB4MDAwMDI1MjUsDQorICAweDAwMDQ3MjIwLCAw
eDAwMDAzMTAwLA0KKyAgMHgwMDkzNDA3MCwgMHgwMDAwMDAwMCwNCisgIDB4
MDAwMDAwMjAsIDB4MDAwMDAwMDAsDQorICAweDAwOTI0NDYwLCAweDAwMDAw
MTg0LA0KKyAgMHgyYjIwYzAxMSwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMGM0
MjAsIDB4MDAwMDA1NDAsDQorICAweDM2MDE0MDE4LCAweDAwMDA0MjJkLA0K
KyAgMHgxNDIwMDAxMSwgMHgwMDAwMDAwMCwNCisgIDB4MDA5MjQ0NjAsIDB4
MDAwMDAxODMsDQorICAweDMyMDAwMDFmLCAweDAwMDAwMDM0LA0KKyAgMHgw
MmFjMDAxNSwgMHgwMDAwMDAwMiwNCisgIDB4MDBhNjAxMTAsIDB4MDAwMDAw
MDgsDQorICAweDQyMjAwMDExLCAweDAwMDAwMDAwLA0KKyAgMHgwMDkyNDA2
MCwgMHgwMDAwMDEwMywNCisgIDB4MDAwMDAwMWUsIDB4MDAwMDAwMDAsDQor
ICAweDAwMDAwMDIwLCAweDAwMDAwMTAwLA0KKyAgMHgwMDAwMDAxZSwgMHgw
MDAwMDAwMCwNCisgIDB4MDA5MjQ0NjAsIDB4MDAwMDAwODYsDQorICAweDAw
MDA0MDgwLCAweDAwMDAwMDAwLA0KKyAgMHgwMDkyYzA3MCwgMHgwMDAwMDAw
MCwNCisgIDB4MDA5MjQwNjAsIDB4MDAwMDAxMDAsDQorICAweDAwMDBjODkw
LCAweDAwMDA1MDAwLA0KKyAgMHgwMGE2YzExMCwgMHgwMDAwMDAwMCwNCisg
IDB4MDBiMGMwOTAsIDB4MDAwMDAwMTIsDQorICAweDAyMWMwMDE1LCAweDAw
MDAwMDAwLA0KKyAgMHgzMjAwMDAxZiwgMHgwMDAwMDAzNCwNCisgIDB4MDA5
MjQ0NjAsIDB4MDAwMDA1MTAsDQorICAweDQ0MjEwMDExLCAweDAwMDAwMDAw
LA0KKyAgMHg0MjAwMDAxMSwgMHgwMDAwMDAwMCwNCisgIDB4ODMwMDAwMTUs
IDB4MDAwMDAwNDAsDQorICAweDAwOTI0NDYwLCAweDAwMDAwNTA4LA0KKyAg
MHg0NTAxNDAxOCwgMHgwMDAwNDU0NSwNCisgIDB4MDA4MDgwNTAsIDB4MDAw
MDAwMDAsDQorICAweDYyMjA4MDEyLCAweDAwMDAwMDAwLA0KKyAgMHg4MjAw
MDAxNSwgMHgwMDAwMDgwMCwNCisgIDB4MTUyMDAwMTEsIDB4MDAwMDAwMDAs
DQorICAweDAwMDAwMDEwLCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwMDAxMCwg
MHgwMDAwMDAwMCwNCisgIDB4MDAwMDAwMTAsIDB4MDAwMDAwMDAsDQorICAw
eDAwMDAwMDEwLCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwMDAxMCwgMHgwMDAw
MDAwMCwNCisgIDB4ODAwMDAwMTUsIDB4MDAwMGVlYTQsDQorICAweDgxMDAw
MDE1LCAweDAwMDAwMDVmLA0KKyAgMHgwMDAwMDA2MCwgMHgwMDAwMDAwMCwN
CisgIDB4MDAwMDQxMjAsIDB4MDAwMDAwMDAsDQorICAweDAwMDA0YTAwLCAw
eDAwMDA0MDAwLA0KKyAgMHgwMDkyNDQ2MCwgMHgwMDAwMDE5MCwNCisgIDB4
NTYwMTQwMWEsIDB4MDAwMDU5NTYsDQorICAweDE0MDAwMDExLCAweDAwMDAw
MDAwLA0KKyAgMHgwMDkzNDA1MCwgMHgwMDAwMDAxOCwNCisgIDB4MDA5MzAw
NTAsIDB4MDAwMDAwMTgsDQorICAweDM2MDE0MDNhLCAweDAwMDAwMDJkLA0K
KyAgMHgwMDA2NDNhOSwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMGM0MjAsIDB4
MDAwMDAxNDAsDQorICAweDU2MDE0MDFhLCAweDAwMDA1OTU2LA0KKyAgMHgx
NDAwMDAxMSwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMDAwMTAsIDB4MDAwMDAw
MDAsDQorICAweDAwMDAwMDEwLCAweDAwMDAwMDAwLA0KKyAgMHgwMDA2NDJh
OSwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMjQ0MjAsIDB4MDAwMDAxODMsDQor
ICAweDU2MDE0MDFhLCAweDAwMDA1OTU2LA0KKyAgMHg4MjAwMDAxNSwgMHgw
MDAwMjAwMCwNCisgIDB4MTUyMDAwMTEsIDB4MDAwMDAwMDAsDQorICAweDgy
MDAwMDE1LCAweDAwMDAwMDEwLA0KKyAgMHgxNTIwMDAxMSwgMHgwMDAwMDAw
MCwNCisgIDB4ODIwMDAwMTUsIDB4MDAwMDAwMTAsDQorICAweDE1MjAwMDEx
LCAweDAwMDAwMDAwLA0KK307CS8qIDEwNCBSeCBpbnN0cnVjdGlvbnMgKi8N
CisjZGVmaW5lIEZJUk1XQVJFX1JYX1NJWkUgMTA0DQorDQorc3RhdGljIHUz
MiBmaXJtd2FyZV90eFtdID0gew0KKyAgMHgwMTAwMDNkYywgMHgwMDAwMDAw
MCwNCisgIDB4MDQwMDA0MjEsIDB4MDAwMDAwODYsDQorICAweDgwMDAwMDE1
LCAweDAwMDAxODBlLA0KKyAgMHg4MTAwMDAxNSwgMHgwMDAwNjY2NCwNCisg
IDB4MWEwMDQwYWIsIDB4MDAwMDBiMDYsDQorICAweDE0MjAwMDExLCAweDAw
MDAwMDAwLA0KKyAgMHgxNDIwNDAyMiwgMHgwMDAwYWFhYSwNCisgIDB4MTQy
MDQwMjIsIDB4MDAwMDAzMDAsDQorICAweDE0MjA0MDIyLCAweDAwMDAwMDAw
LA0KKyAgMHgxYTAwNDBhYiwgMHgwMDAwMGIxNCwNCisgIDB4MTQyMDAwMTEs
IDB4MDAwMDAwMDAsDQorICAweDgzMDAwMDE1LCAweDAwMDAwMDAyLA0KKyAg
MHgwNDAwMDAyMSwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMDAwMTAsIDB4MDAw
MDAwMDAsDQorICAweDA0MDAwNDIxLCAweDAwMDAwMDg3LA0KKyAgMHgwMDAw
MDAxMCwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMDAwMTAsIDB4MDAwMDAwMDAs
DQorICAweDAwMDA4MDE1LCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwMDAzZSwg
MHgwMDAwMDAwMCwNCisgIDB4MDAwMDAwMTAsIDB4MDAwMDAwMDAsDQorICAw
eDgyMDAwMDE1LCAweDAwMDA0MDAwLA0KKyAgMHgwMDllODA1MCwgMHgwMDAw
MDAwMCwNCisgIDB4MDMwMDgwMTUsIDB4MDAwMDAwMDAsDQorICAweDg2MDA4
MDE1LCAweDAwMDAwMDAwLA0KKyAgMHg4MjAwMDAxNSwgMHgwMDAwODAwMCwN
CisgIDB4MDEwMDAwMWMsIDB4MDAwMDAwMDAsDQorICAweDAwMDA1MGEwLCAw
eDAwMDAwMTBjLA0KKyAgMHg0ZTIwZDAxMSwgMHgwMDAwNjAwOCwNCisgIDB4
MTQyMGQwMTIsIDB4MDAwMDQwMDgsDQorICAweDAwMDBmMDkwLCAweDAwMDA3
MDAwLA0KKyAgMHgwMDAwYzhiMCwgMHgwMDAwMzAwMCwNCisgIDB4MDAwMDQw
NDAsIDB4MDAwMDAwMDAsDQorICAweDAwMTA4MDE1LCAweDAwMDAwMDAwLA0K
KyAgMHgwMGEyYzE1MCwgMHgwMDAwNDAwMCwNCisgIDB4MDBhNDAwYjAsIDB4
MDAwMDAwMTQsDQorICAweDAwMDAwMDIwLCAweDAwMDAwMDAwLA0KKyAgMHgy
NTAwNDAwZCwgMHgwMDAwMjUyNSwNCisgIDB4MDAwNDcyMjAsIDB4MDAwMDMx
MDAsDQorICAweDAwOTM0MDcwLCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwMDAy
MCwgMHgwMDAwMDAwMCwNCisgIDB4MDA5MjQ0NjAsIDB4MDAwMDAxODQsDQor
ICAweDJiMjBjMDExLCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwYzQyMCwgMHgw
MDAwMDU0MCwNCisgIDB4MzYwMTQwMTgsIDB4MDAwMDQyMmQsDQorICAweDE0
MjAwMDExLCAweDAwMDAwMDAwLA0KKyAgMHgwMDkyNDQ2MCwgMHgwMDAwMDE4
MywNCisgIDB4MzIwMDAwMWYsIDB4MDAwMDAwMzQsDQorICAweDAyYWMwMDE1
LCAweDAwMDAwMDAyLA0KKyAgMHgwMGE2MDExMCwgMHgwMDAwMDAwOCwNCisg
IDB4NDIyMDAwMTEsIDB4MDAwMDAwMDAsDQorICAweDAwOTI0MDYwLCAweDAw
MDAwMTAzLA0KKyAgMHgwMDAwMDAxZSwgMHgwMDAwMDAwMCwNCisgIDB4MDAw
MDAwMjAsIDB4MDAwMDAxMDAsDQorICAweDAwMDAwMDFlLCAweDAwMDAwMDAw
LA0KKyAgMHgwMDkyNDQ2MCwgMHgwMDAwMDA4NiwNCisgIDB4MDAwMDQwODAs
IDB4MDAwMDAwMDAsDQorICAweDAwOTJjMDcwLCAweDAwMDAwMDAwLA0KKyAg
MHgwMDkyNDA2MCwgMHgwMDAwMDEwMCwNCisgIDB4MDAwMGM4OTAsIDB4MDAw
MDUwMDAsDQorICAweDAwYTZjMTEwLCAweDAwMDAwMDAwLA0KKyAgMHgwMGIw
YzA5MCwgMHgwMDAwMDAxMiwNCisgIDB4MDIxYzAwMTUsIDB4MDAwMDAwMDAs
DQorICAweDMyMDAwMDFmLCAweDAwMDAwMDM0LA0KKyAgMHgwMDkyNDQ2MCwg
MHgwMDAwMDUxMCwNCisgIDB4NDQyMTAwMTEsIDB4MDAwMDAwMDAsDQorICAw
eDQyMDAwMDExLCAweDAwMDAwMDAwLA0KKyAgMHg4MzAwMDAxNSwgMHgwMDAw
MDA0MCwNCisgIDB4MDA5MjQ0NjAsIDB4MDAwMDA1MDgsDQorICAweDQ1MDE0
MDE4LCAweDAwMDA0NTQ1LA0KKyAgMHgwMDgwODA1MCwgMHgwMDAwMDAwMCwN
CisgIDB4NjIyMDgwMTIsIDB4MDAwMDAwMDAsDQorICAweDgyMDAwMDE1LCAw
eDAwMDAwODAwLA0KKyAgMHgxNTIwMDAxMSwgMHgwMDAwMDAwMCwNCisgIDB4
MDAwMDAwMTAsIDB4MDAwMDAwMDAsDQorICAweDAwMDAwMDEwLCAweDAwMDAw
MDAwLA0KKyAgMHgwMDAwMDAxMCwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMDAw
MTAsIDB4MDAwMDAwMDAsDQorICAweDAwMDAwMDEwLCAweDAwMDAwMDAwLA0K
KyAgMHg4MDAwMDAxNSwgMHgwMDAwZWVhNCwNCisgIDB4ODEwMDAwMTUsIDB4
MDAwMDAwNWYsDQorICAweDAwMDAwMDYwLCAweDAwMDAwMDAwLA0KKyAgMHgw
MDAwNDEyMCwgMHgwMDAwMDAwMCwNCisgIDB4MDAwMDRhMDAsIDB4MDAwMDQw
MDAsDQorICAweDAwOTI0NDYwLCAweDAwMDAwMTkwLA0KKyAgMHg1NjAxNDAx
YSwgMHgwMDAwNTk1NiwNCisgIDB4MTQwMDAwMTEsIDB4MDAwMDAwMDAsDQor
ICAweDAwOTM0MDUwLCAweDAwMDAwMDE4LA0KKyAgMHgwMDkzMDA1MCwgMHgw
MDAwMDAxOCwNCisgIDB4MzYwMTQwM2EsIDB4MDAwMDAwMmQsDQorICAweDAw
MDY0M2E5LCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwYzQyMCwgMHgwMDAwMDE0
MCwNCisgIDB4NTYwMTQwMWEsIDB4MDAwMDU5NTYsDQorICAweDE0MDAwMDEx
LCAweDAwMDAwMDAwLA0KKyAgMHgwMDAwMDAxMCwgMHgwMDAwMDAwMCwNCisg
IDB4MDAwMDAwMTAsIDB4MDAwMDAwMDAsDQorICAweDAwMDY0MmE5LCAweDAw
MDAwMDAwLA0KKyAgMHgwMDAyNDQyMCwgMHgwMDAwMDE4MywNCisgIDB4NTYw
MTQwMWEsIDB4MDAwMDU5NTYsDQorICAweDgyMDAwMDE1LCAweDAwMDAyMDAw
LA0KKyAgMHgxNTIwMDAxMSwgMHgwMDAwMDAwMCwNCisgIDB4ODIwMDAwMTUs
IDB4MDAwMDAwMTAsDQorICAweDE1MjAwMDExLCAweDAwMDAwMDAwLA0KKyAg
MHg4MjAwMDAxNSwgMHgwMDAwMDAxMCwNCisgIDB4MTUyMDAwMTEsIDB4MDAw
MDAwMDAsDQorfTsJLyogMTA0IFR4IGluc3RydWN0aW9ucyAqLw0KKyNkZWZp
bmUgRklSTVdBUkVfVFhfU0laRSAxMDQNCmRpZmYgLXVyTlggZGlmZl9rZXJu
ZWxfZXhjbHVkZXMgL3Vzci9zcmMvbG9jYWwvbGludXgtMi40LnZhbmlsbGEv
ZHJpdmVycy9uZXQvc3RhcmZpcmVfZmlybXdhcmUucGwgbGludXgtMi40L2Ry
aXZlcnMvbmV0L3N0YXJmaXJlX2Zpcm13YXJlLnBsDQotLS0gL3Vzci9zcmMv
bG9jYWwvbGludXgtMi40LnZhbmlsbGEvZHJpdmVycy9uZXQvc3RhcmZpcmVf
ZmlybXdhcmUucGwJV2VkIERlYyAzMSAxNjowMDowMCAxOTY5DQorKysgbGlu
dXgtMi40L2RyaXZlcnMvbmV0L3N0YXJmaXJlX2Zpcm13YXJlLnBsCVRodSBK
YW4gMjUgMjE6NDM6MjcgMjAwMQ0KQEAgLTAsMCArMSwzMSBAQA0KKyMhL3Vz
ci9iaW4vcGVybA0KKw0KKyMgVGhpcyBzY3JpcHQgY2FuIGJlIHVzZWQgdG8g
Z2VuZXJhdGUgYSBuZXcgc3RhcmZpcmVfZmlybXdhcmUuaA0KKyMgZnJvbSBH
RlBfUlguREFUIGFuZCBHRlBfVFguREFULCBmaWxlcyBpbmNsdWRlZCB3aXRo
IHRoZSBEREsNCisjIGFuZCBhbHNvIHdpdGggdGhlIE5vdmVsbCBkcml2ZXJz
Lg0KKw0KK29wZW4gRlcsICJHRlBfUlguREFUIiB8fCBkaWU7DQorb3BlbiBG
V0gsICI+c3RhcmZpcmVfZmlybXdhcmUuaCIgfHwgZGllOw0KKw0KK3ByaW50
ZihGV0ggInN0YXRpYyB1MzIgZmlybXdhcmVfcnhbXSA9IHtcbiIpOw0KKyRj
b3VudGVyID0gMDsNCit3aGlsZSAoJGZvbyA9IDxGVz4pIHsNCisgIGNob21w
Ow0KKyAgcHJpbnRmKEZXSCAiICAweCVzLCAweDAwMDAlcyxcbiIsIHN1YnN0
cigkZm9vLCA0LCA4KSwgc3Vic3RyKCRmb28sIDAsIDQpKTsNCisgICRjb3Vu
dGVyKys7DQorfQ0KKw0KK2Nsb3NlIEZXOw0KK29wZW4gRlcsICJHRlBfVFgu
REFUIiB8fCBkaWU7DQorDQorcHJpbnRmKEZXSCAifTtcdC8qICVkIFJ4IGlu
c3RydWN0aW9ucyAqL1xuI2RlZmluZSBGSVJNV0FSRV9SWF9TSVpFICVkXG5c
bnN0YXRpYyB1MzIgZmlybXdhcmVfdHhbXSA9IHtcbiIsICRjb3VudGVyLCAk
Y291bnRlcik7DQorJGNvdW50ZXIgPSAwOw0KK3doaWxlICgkZm9vID0gPEZX
Pikgew0KKyAgY2hvbXA7DQorICBwcmludGYoRldIICIgIDB4JXMsIDB4MDAw
MCVzLFxuIiwgc3Vic3RyKCRmb28sIDQsIDgpLCBzdWJzdHIoJGZvbywgMCwg
NCkpOw0KKyAgJGNvdW50ZXIrKzsNCit9DQorDQorY2xvc2UgRlc7DQorcHJp
bnRmKEZXSCAifTtcdC8qICVkIFR4IGluc3RydWN0aW9ucyAqL1xuI2RlZmlu
ZSBGSVJNV0FSRV9UWF9TSVpFICVkXG4iLCAkY291bnRlciwgJGNvdW50ZXIp
Ow0KK2Nsb3NlKEZXSCk7DQo=
--375685179-76745159-980630321=:20615--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/