Re: oops with 2.5.1-pre3 in ide-scsi module

Slo Mo Snail (slomosnail@gmx.net)
Thu, 29 Nov 2001 19:38:25 +0100


--------------Boundary-00=_1SRKCWC8TKES161HBROG
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,
Have you applied any other patches than the 2.5.1-pre3?
If/When not you'll probably get some data corruption :(
Please apply the 2 Patches attatched and
http://kernel.org/pub/linux/kernel/people/axboe/patches/v2.5/2.5.1-pre3/b=
io-pre3-1.gz
Then recompile your kernel ;)
These patches were posted before by Alan Cox and Jens Axboe

CD burning works fine for me with this patches but I have compiled all SC=
SI=20
and IDE stuff directly into the kernel... maybe this matters
Bye

Am Donnerstag, 29. November 2001 19:19 schrieb Dirk Pritsch:
> Hi,
>
> just tried the new 2.5.1-pre3 and got the following oops when trying to
> burn a cd (ide-cd/rw with ide-scsi emulation).
>
> I Hope this is some useful information.
>
>
> ____
> ksymoops 2.4.3 on i586 2.5.1-pre3. Options used
> -V (default)
> -k /proc/ksyms (default)
> -l /proc/modules (default)
> -o /lib/modules/2.5.1-pre3/ (default)
> -m /boot/System.map-2.5.1-pre3 (default)
>
> Warning: You did not tell me where to find
> symbol information. I will
> assume that the log matches the kernel and
> modules that are running
> right now and I'll use the default options
> above for symbol resolution.
> If the current kernel and/or modules do not
> match the log, you can get
> more accurate output by telling me the kernel
> version and where to find
> map, modules, ksyms etc. ksymoops -h explains
> the options.
>
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000038
> c01af582
> *pde =3D 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[idescsi_queue+1158/1396] Not tainted
> EFLAGS: 00210002
> eax: 00000000 ebx: d3f64320 ecx: d3f64ea0 edx: 00000000
> esi: c0989000 edi: d3f64ea0 ebp: d3f64320 esp: c7321cc4
> ds: 0018 es: 0018 ss: 0018
> Process cdrecord (pid: 1055, stackpage=3Dc7321000)
> Stack: 00200293 d36761d4 d3eef800 d3f2dba0 00000000 c8a76ee0 d3eef858
> c0989000 00000001 00000000 c7d5d3c0 c150eee0 c02c3be4 c01a7309 d3eef800
> c01a77b4 d3eef800 d36761d4 d3eef8b8 d36761d4 00000000 c01ac422 d3eef800
> d3eef800 Call Trace: [scsi_dispatch_cmd+257/372] [scsi_done+0/144]
> [scsi_request_fn+786/808] [__scsi_in sert_special+118/128]
> [scsi_insert_special_req+25/32] Code: 03 42 38 89 46 00 83 c6 14 89 74 =
24
> 1c 83 6c 24 20 01 73 bf
> Using defaults from ksymoops -t elf32-i386 -a i386
>
> Code; 00000000 Before first symbol
> 00000000 <_EIP>:
> Code; 00000000 Before first symbol
> 0: 03 42 38 add 0x38(%edx),%eax
> Code; 00000002 Before first symbol
> 3: 89 46 00 mov %eax,0x0(%esi)
> Code; 00000006 Before first symbol
> 6: 83 c6 14 add $0x14,%esi
> Code; 00000008 Before first symbol
> 9: 89 74 24 1c mov %esi,0x1c(%esp,1)
> Code; 0000000c Before first symbol
> d: 83 6c 24 20 01 subl $0x1,0x20(%esp,1)
> Code; 00000012 Before first symbol
> 12: 73 bf jae ffffffd3 <_EIP+0xffffffd3> ffffff=
d2
> <END_OF_CODE+2af53fd0/????>
>
>
> 1 warning issued. Results may not be reliable.
> ____
>
> After the oops the following message appeared in syslog:
>
> Nov 29 18:06:01 enterprise kernel: <6>scsi: device set offline -
> command error recover failed: host 0 channel 0 id 0 lun 0
>
> ____
>
> lsmod shows no loaded ide-scsi or cdrom modules, so the oops happened
> before loading them.
>
> ____
>
>
>
>
> Please CC: me in replies or if you need further information as I'm not
> subscribed to l-k.
>
>
> Cheers,
>
> Dirk
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel"=
in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8BoCwvIHrJes3kVIRAmvGAJ9RATNkAHklG/lr8zzP42y9hsNUvgCcCxP6
Y1/zljBJTzZFvFEb0goURGA=3D
=3DTlL+
-----END PGP SIGNATURE-----

--------------Boundary-00=_1SRKCWC8TKES161HBROG
Content-Type: text/x-diff;
charset="iso-8859-1";
name="axboe.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="axboe.diff"

ZGlmZiAtdXIgLVggZXhjbHVkZSAvb3B0L2tlcm5lbC9saW51eC0yLjUuMS1wcmUzL2RyaXZlcnMv
YmxvY2svZWxldmF0b3IuYyBsaW51eC9kcml2ZXJzL2Jsb2NrL2VsZXZhdG9yLmMKLS0tIC9vcHQv
a2VybmVsL2xpbnV4LTIuNS4xLXByZTMvZHJpdmVycy9ibG9jay9lbGV2YXRvci5jCVRodSBOb3Yg
MjkgMDY6MDc6MjAgMjAwMQorKysgbGludXgvZHJpdmVycy9ibG9jay9lbGV2YXRvci5jCVRodSBO
b3YgMjkgMDQ6MzY6MjkgMjAwMQpAQCAtOTgsNyArOTgsNyBAQAogewogCWlmIChiaW9fZGF0YV9k
aXIoYmlvKSA9PSBycS0+Y21kKSB7CiAJCWlmIChycS0+cnFfZGV2ID09IGJpby0+YmlfZGV2ICYm
ICFycS0+d2FpdGluZwotCQkgICAgJiYgIXJxLT5zcGVjaWFsICYmIHJxLT5pbmFjdGl2ZSAmJiBy
cS0+cSA9PSBxKQorCQkgICAgJiYgIXJxLT5zcGVjaWFsICYmIHJxLT5pbmFjdGl2ZSkKIAkJCXJl
dHVybiAxOwogCX0KIApkaWZmIC11ciAtWCBleGNsdWRlIC9vcHQva2VybmVsL2xpbnV4LTIuNS4x
LXByZTMvZHJpdmVycy9ibG9jay9mbG9wcHkuYyBsaW51eC9kcml2ZXJzL2Jsb2NrL2Zsb3BweS5j
Ci0tLSAvb3B0L2tlcm5lbC9saW51eC0yLjUuMS1wcmUzL2RyaXZlcnMvYmxvY2svZmxvcHB5LmMJ
VGh1IE5vdiAyOSAwNjowNzoyMCAyMDAxCisrKyBsaW51eC9kcml2ZXJzL2Jsb2NrL2Zsb3BweS5j
CVRodSBOb3YgMjkgMDU6MDc6MzcgMjAwMQpAQCAtMjQzNywxNiArMjQzNywxNSBAQAogCWNoYXIg
KmJhc2U7CiAKIAliYXNlID0gQ1VSUkVOVC0+YnVmZmVyOwotCXNpemUgPSBDVVJSRU5ULT5jdXJy
ZW50X25yX3NlY3RvcnMgPDwgOTsKLQliaW8gPSBDVVJSRU5ULT5iaW87CisJc2l6ZSA9IDA7CiAK
LQlpZiAoYmlvKXsKLQkJYmlvID0gYmlvLT5iaV9uZXh0OwotCQl3aGlsZSAoYmlvICYmIGJpb19k
YXRhKGJpbykgPT0gYmFzZSArIHNpemUpewotCQkJc2l6ZSArPSBiaW9fc2l6ZShiaW8pOwotCQkJ
YmlvID0gYmlvLT5iaV9uZXh0OwotCQl9CisJcnFfZm9yX2VhY2hfYmlvKGJpbywgQ1VSUkVOVCkg
eworCQlpZiAoYmlvX2RhdGEoYmlvKSAhPSBiYXNlICsgc2l6ZSkKKwkJCWJyZWFrOworCisJCXNp
emUgKz0gYmlvLT5iaV9zaXplOwogCX0KKwogCXJldHVybiBzaXplID4+IDk7CiB9CiAKQEAgLTI1
NDMsNyArMjU0Miw3IEBACiAJCQlicmVhazsKIAkJfQogI2VuZGlmCi0JCXNpemUgPSBiaW9fc2l6
ZShiaW8pOworCQlzaXplID0gYmlvLT5iaV9zaXplOzsKIAkJYnVmZmVyID0gYmlvX2RhdGEoYmlv
KTsKIAl9CiAjaWZkZWYgRkxPUFBZX1NBTklUWV9DSEVDSwpkaWZmIC11ciAtWCBleGNsdWRlIC9v
cHQva2VybmVsL2xpbnV4LTIuNS4xLXByZTMvZHJpdmVycy9ibG9jay9sbF9yd19ibGsuYyBsaW51
eC9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Jsay5jCi0tLSAvb3B0L2tlcm5lbC9saW51eC0yLjUuMS1w
cmUzL2RyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMJVGh1IE5vdiAyOSAwNjowNzoyMCAyMDAxCisr
KyBsaW51eC9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Jsay5jCVRodSBOb3YgMjkgMDY6MDI6MTcgMjAw
MQpAQCAtMzAzLDEwICszMDMsNyBAQAogCiAJCQlCSU9fQlVHX09OKGkgPiBiaW8tPmJpX3ZjbnQp
OwogCi0JCQlpZiAoIWNsdXN0ZXIpCi0JCQkJZ290byBuZXdfc2VnbWVudDsKLQotCQkJaWYgKGJ2
ZWNfdG9fcGh5cyhidmVjKSA9PSBsYXN0ZW5kKSB7CisJCQlpZiAoY2x1c3RlciAmJiBidmVjX3Rv
X3BoeXMoYnZlYykgPT0gbGFzdGVuZCkgewogCQkJCWlmIChzZ1tuc2VncyAtIDFdLmxlbmd0aCAr
IG5ieXRlcyA+IHEtPm1heF9zZWdtZW50X3NpemUpCiAJCQkJCWdvdG8gbmV3X3NlZ21lbnQ7CiAK
QEAgLTExMzUsNyArMTEzMiw3IEBACiAJQlVHX09OKCFiaW8tPmJpX2VuZF9pbyk7CiAKIAlCSU9f
QlVHX09OKGJpb19vZmZzZXQoYmlvKSA+IFBBR0VfU0laRSk7Ci0JQklPX0JVR19PTighYmlvX3Np
emUoYmlvKSk7CisJQklPX0JVR19PTighYmlvLT5iaV9zaXplKTsKIAlCSU9fQlVHX09OKCFiaW8t
PmJpX2lvX3ZlYyk7CiAKIAliaW8tPmJpX3J3ID0gcnc7CkBAIC0xMTcyLDExICsxMTY5LDcgQEAK
IAliaW8gPSBiaW9fYWxsb2MoR0ZQX05PSU8sIDEpOwogCiAJYmlvLT5iaV9zZWN0b3IgPSBiaC0+
Yl9ibG9ja25yICogKGJoLT5iX3NpemUgPj4gOSk7Ci0JYmlvLT5iaV9uZXh0ID0gTlVMTDsKIAli
aW8tPmJpX2RldiA9IGJoLT5iX2RldjsKLQliaW8tPmJpX3ByaXZhdGUgPSBiaDsKLQliaW8tPmJp
X2VuZF9pbyA9IGVuZF9iaW9fYmhfaW9fc3luYzsKLQogCWJpby0+YmlfaW9fdmVjWzBdLmJ2X3Bh
Z2UgPSBiaC0+Yl9wYWdlOwogCWJpby0+YmlfaW9fdmVjWzBdLmJ2X2xlbiA9IGJoLT5iX3NpemU7
CiAJYmlvLT5iaV9pb192ZWNbMF0uYnZfb2Zmc2V0ID0gYmhfb2Zmc2V0KGJoKTsKQEAgLTExODQs
NiArMTE3Nyw5IEBACiAJYmlvLT5iaV92Y250ID0gMTsKIAliaW8tPmJpX2lkeCA9IDA7CiAJYmlv
LT5iaV9zaXplID0gYmgtPmJfc2l6ZTsKKworCWJpby0+YmlfZW5kX2lvID0gZW5kX2Jpb19iaF9p
b19zeW5jOworCWJpby0+YmlfcHJpdmF0ZSA9IGJoOwogCiAJcmV0dXJuIHN1Ym1pdF9iaW8ocncs
IGJpbyk7CiB9CmRpZmYgLXVyIC1YIGV4Y2x1ZGUgL29wdC9rZXJuZWwvbGludXgtMi41LjEtcHJl
My9kcml2ZXJzL2Jsb2NrL2xvb3AuYyBsaW51eC9kcml2ZXJzL2Jsb2NrL2xvb3AuYwotLS0gL29w
dC9rZXJuZWwvbGludXgtMi41LjEtcHJlMy9kcml2ZXJzL2Jsb2NrL2xvb3AuYwlUaHUgTm92IDI5
IDA2OjA3OjIwIDIwMDEKKysrIGxpbnV4L2RyaXZlcnMvYmxvY2svbG9vcC5jCVRodSBOb3YgMjkg
MDU6MDg6MDYgMjAwMQpAQCAtMTgyLDcgKzE4Miw3IEBACiAJZG93bigmbWFwcGluZy0+aG9zdC0+
aV9zZW0pOwogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7CiAJb2Zmc2V0ID0gcG9z
ICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOwotCWxlbiA9IGJpb19zaXplKGJpbyk7CisJbGVuID0g
YmlvLT5iaV9zaXplOwogCWRhdGEgPSBiaW9fZGF0YShiaW8pOwogCXdoaWxlIChsZW4gPiAwKSB7
CiAJCWludCBJViA9IGluZGV4ICogKFBBR0VfQ0FDSEVfU0laRS9ic2l6ZSkgKyBvZmZzZXQvYnNp
emU7CkBAIC0yNzIsNyArMjcyLDcgQEAKIAljb29raWUuZGF0YSA9IGJpb19kYXRhKGJpbyk7CiAJ
Y29va2llLmJzaXplID0gYnNpemU7CiAJZGVzYy53cml0dGVuID0gMDsKLQlkZXNjLmNvdW50ID0g
YmlvX3NpemUoYmlvKTsKKwlkZXNjLmNvdW50ID0gYmlvLT5iaV9zaXplOwogCWRlc2MuYnVmID0g
KGNoYXIqKSZjb29raWU7CiAJZGVzYy5lcnJvciA9IDA7CiAJc3Bpbl9sb2NrX2lycSgmbG8tPmxv
X2xvY2spOwpAQCAtNDcwLDcgKzQ3MCw3IEBACiAJSVYgPSBsb29wX2dldF9pdihsbywgcmJoLT5i
aV9zZWN0b3IpOwogCWlmIChydyA9PSBXUklURSkgewogCQlpZiAobG9fZG9fdHJhbnNmZXIobG8s
IFdSSVRFLCBiaW9fZGF0YShiaCksIGJpb19kYXRhKHJiaCksCi0JCQkJICAgYmlvX3NpemUoYmgp
LCBJVikpCisJCQkJICAgYmgtPmJpX3NpemUsIElWKSkKIAkJCWdvdG8gZXJyOwogCX0KIApAQCAt
NTA0LDcgKzUwNCw3IEBACiAJCXVuc2lnbmVkIGxvbmcgSVYgPSBsb29wX2dldF9pdihsbywgcmJo
LT5iaV9zZWN0b3IpOwogCiAJCXJldCA9IGxvX2RvX3RyYW5zZmVyKGxvLCBSRUFELCBiaW9fZGF0
YShiaW8pLCBiaW9fZGF0YShyYmgpLAotCQkJCSAgICAgYmlvX3NpemUoYmlvKSwgSVYpOworCQkJ
CSAgICAgYmlvLT5iaV9zaXplLCBJVik7CiAKIAkJYmlvX2VuZGlvKHJiaCwgIXJldCwgYmlvX3Nl
Y3RvcnMoYmlvKSk7CiAJCWxvb3BfcHV0X2J1ZmZlcihiaW8pOwpkaWZmIC11ciAtWCBleGNsdWRl
IC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXByZTMvZHJpdmVycy9ibG9jay9uYmQuYyBsaW51eC9k
cml2ZXJzL2Jsb2NrL25iZC5jCi0tLSAvb3B0L2tlcm5lbC9saW51eC0yLjUuMS1wcmUzL2RyaXZl
cnMvYmxvY2svbmJkLmMJVGh1IE5vdiAyOSAwNjowNzoyMCAyMDAxCisrKyBsaW51eC9kcml2ZXJz
L2Jsb2NrL25iZC5jCVRodSBOb3YgMjkgMDU6MDQ6NDEgMjAwMQpAQCAtMTY4LDcgKzE2OCw3IEBA
CiAJCXN0cnVjdCBiaW8gKmJpbyA9IHJlcS0+YmlvOwogCQlERUJVRygiZGF0YSwgIik7CiAJCWRv
IHsKLQkJCXJlc3VsdCA9IG5iZF94bWl0KDEsIHNvY2ssIGJpb19kYXRhKGJpbyksIGJpb19zaXpl
KGJpbyksIGJpby0+YmlfbmV4dCA9PSBOVUxMID8gMCA6IE1TR19NT1JFKTsKKwkJCXJlc3VsdCA9
IG5iZF94bWl0KDEsIHNvY2ssIGJpb19kYXRhKGJpbyksIGJpby0+Ymlfc2l6ZSwgYmlvLT5iaV9u
ZXh0ID09IE5VTEwgPyAwIDogTVNHX01PUkUpOwogCQkJaWYgKHJlc3VsdCA8PSAwKQogCQkJCUZB
SUwoIlNlbmQgZGF0YSBmYWlsZWQuIik7CiAJCQliaW8gPSBiaW8tPmJpX25leHQ7CkBAIC0yMDgs
NyArMjA4LDcgQEAKIAkJc3RydWN0IGJpbyAqYmlvID0gcmVxLT5iaW87CiAJCURFQlVHKCJkYXRh
LCAiKTsKIAkJZG8gewotCQkJcmVzdWx0ID0gbmJkX3htaXQoMCwgbG8tPnNvY2ssIGJpb19kYXRh
KGJpbyksIGJpb19zaXplKGJpbyksIE1TR19XQUlUQUxMKTsKKwkJCXJlc3VsdCA9IG5iZF94bWl0
KDAsIGxvLT5zb2NrLCBiaW9fZGF0YShiaW8pLCBiaW8tPmJpX3NpemUsIE1TR19XQUlUQUxMKTsK
IAkJCWlmIChyZXN1bHQgPD0gMCkKIAkJCQlIQVJERkFJTCgiUmVjdiBkYXRhIGZhaWxlZC4iKTsK
IAkJCWJpbyA9IGJpby0+YmlfbmV4dDsKZGlmZiAtdXIgLVggZXhjbHVkZSAvb3B0L2tlcm5lbC9s
aW51eC0yLjUuMS1wcmUzL2RyaXZlcnMvbWQvbHZtLmMgbGludXgvZHJpdmVycy9tZC9sdm0uYwot
LS0gL29wdC9rZXJuZWwvbGludXgtMi41LjEtcHJlMy9kcml2ZXJzL21kL2x2bS5jCVRodSBOb3Yg
MjkgMDY6MDc6MjEgMjAwMQorKysgbGludXgvZHJpdmVycy9tZC9sdm0uYwlUaHUgTm92IDI5IDA1
OjUwOjQ3IDIwMDEKQEAgLTEyNDYsOCArMTI0Niw2IEBACiAgCX0KIAogIG91dDoKLQlpZiAodGVz
dF9iaXQoQklPX0hBU0hFRCwgJmJoLT5iaV9mbGFncykpCi0JCUJVRygpOwogCWJoLT5iaV9kZXYg
PSByZGV2X21hcDsKIAliaC0+Ymlfc2VjdG9yID0gcnNlY3Rvcl9tYXA7CiAJdXBfcmVhZCgmbHYt
Pmx2X2xvY2spOwpkaWZmIC11ciAtWCBleGNsdWRlIC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXBy
ZTMvZHJpdmVycy9tZXNzYWdlL2kyby9pMm9fYmxvY2suYyBsaW51eC9kcml2ZXJzL21lc3NhZ2Uv
aTJvL2kyb19ibG9jay5jCi0tLSAvb3B0L2tlcm5lbC9saW51eC0yLjUuMS1wcmUzL2RyaXZlcnMv
bWVzc2FnZS9pMm8vaTJvX2Jsb2NrLmMJVGh1IE5vdiAyOSAwNjowNzoyMSAyMDAxCisrKyBsaW51
eC9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19ibG9jay5jCVRodSBOb3YgMjkgMDU6MTQ6MTMgMjAw
MQpAQCAtMjg3LDggKzI4Nyw4IEBACiAJCXdoaWxlKGJpbykKIAkJewogCQkJaWYgKGJpb190b19w
aHlzKGJpbykgPT0gbGFzdCkgewotCQkJCXNpemUgKz0gYmlvX3NpemUoYmlvKTsKLQkJCQlsYXN0
ICs9IGJpb19zaXplKGJpbyk7CisJCQkJc2l6ZSArPSBiaW8tPmJpX3NpemU7CisJCQkJbGFzdCAr
PSBiaW8tPmJpX3NpemU7CiAJCQkJaWYoYmlvLT5iaV9uZXh0KQogCQkJCQlfX3Jhd193cml0ZWwo
MHgxNDAwMDAwMHwoc2l6ZSksIG1wdHItOCk7CiAJCQkJZWxzZQpAQCAtMjk3LDE2ICsyOTcsMTYg
QEAKIAkJCWVsc2UKIAkJCXsKIAkJCQlpZihiaW8tPmJpX25leHQpCi0JCQkJCV9fcmF3X3dyaXRl
bCgweDEwMDAwMDAwfGJpb19zaXplKGJpbyksIG1wdHIpOworCQkJCQlfX3Jhd193cml0ZWwoMHgx
MDAwMDAwMHxiaW8tPmJpX3NpemUsIG1wdHIpOwogCQkJCWVsc2UKLQkJCQkJX19yYXdfd3JpdGVs
KDB4RDAwMDAwMDB8YmlvX3NpemUoYmlvKSwgbXB0cik7CisJCQkJCV9fcmF3X3dyaXRlbCgweEQw
MDAwMDAwfGJpby0+Ymlfc2l6ZSwgbXB0cik7CiAJCQkJX19yYXdfd3JpdGVsKGJpb190b19waHlz
KGJpbyksIG1wdHIrNCk7CiAJCQkJbXB0ciArPSA4OwkKLQkJCQlzaXplID0gYmlvX3NpemUoYmlv
KTsKLQkJCQlsYXN0ID0gYmlvX3RvX3BoeXMoYmlvKSArIGJpb19zaXplKGJpbyk7CisJCQkJc2l6
ZSA9IGJpby0+Ymlfc2l6ZTsKKwkJCQlsYXN0ID0gYmlvX3RvX3BoeXMoYmlvKSArIGJpby0+Ymlf
c2l6ZTsKIAkJCX0KIAotCQkJY291bnQgLT0gYmlvX3NpemUoYmlvKTsKKwkJCWNvdW50IC09IGJp
by0+Ymlfc2l6ZTsKIAkJCWJpbyA9IGJpby0+YmlfbmV4dDsKIAkJfQogCQkvKgpAQCAtMzI2LDgg
KzMyNiw4IEBACiAJCXdoaWxlKGJpbykKIAkJewogCQkJaWYgKGJpb190b19waHlzKGJpbykgPT0g
bGFzdCkgewotCQkJCXNpemUgKz0gYmlvX3NpemUoYmlvKTsKLQkJCQlsYXN0ICs9IGJpb19zaXpl
KGJpbyk7CisJCQkJc2l6ZSArPSBiaW8tPmJpX3NpemU7CisJCQkJbGFzdCArPSBiaW8tPmJpX3Np
emU7CiAJCQkJaWYoYmlvLT5iaV9uZXh0KQogCQkJCQlfX3Jhd193cml0ZWwoMHgxNDAwMDAwMHwo
c2l6ZSksIG1wdHItOCk7CiAJCQkJZWxzZQpAQCAtMzM2LDE2ICszMzYsMTYgQEAKIAkJCWVsc2UK
IAkJCXsKIAkJCQlpZihiaW8tPmJpX25leHQpCi0JCQkJCV9fcmF3X3dyaXRlbCgweDE0MDAwMDAw
fGJpb19zaXplKGJpbyksIG1wdHIpOworCQkJCQlfX3Jhd193cml0ZWwoMHgxNDAwMDAwMHxiaW8t
PmJpX3NpemUsIG1wdHIpOwogCQkJCWVsc2UKLQkJCQkJX19yYXdfd3JpdGVsKDB4RDQwMDAwMDB8
YmlvX3NpemUoYmlvKSwgbXB0cik7CisJCQkJCV9fcmF3X3dyaXRlbCgweEQ0MDAwMDAwfGJpby0+
Ymlfc2l6ZSwgbXB0cik7CiAJCQkJX19yYXdfd3JpdGVsKGJpb190b19waHlzKGJpbyksIG1wdHIr
NCk7CiAJCQkJbXB0ciArPSA4OwkKLQkJCQlzaXplID0gYmlvX3NpemUoYmlvKTsKLQkJCQlsYXN0
ID0gYmlvX3RvX3BoeXMoYmlvKSArIGJpb19zaXplKGJpbyk7CisJCQkJc2l6ZSA9IGJpby0+Ymlf
c2l6ZTsKKwkJCQlsYXN0ID0gYmlvX3RvX3BoeXMoYmlvKSArIGJpby0+Ymlfc2l6ZTsKIAkJCX0K
IAotCQkJY291bnQgLT0gYmlvX3NpemUoYmlvKTsKKwkJCWNvdW50IC09IGJpby0+Ymlfc2l6ZTsK
IAkJCWJpbyA9IGJpby0+YmlfbmV4dDsKIAkJfQogCmRpZmYgLXVyIC1YIGV4Y2x1ZGUgL29wdC9r
ZXJuZWwvbGludXgtMi41LjEtcHJlMy9kcml2ZXJzL3Njc2kvc2NzaV9tZXJnZS5jIGxpbnV4L2Ry
aXZlcnMvc2NzaS9zY3NpX21lcmdlLmMKLS0tIC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXByZTMv
ZHJpdmVycy9zY3NpL3Njc2lfbWVyZ2UuYwlUaHUgTm92IDI5IDA2OjA3OjIxIDIwMDEKKysrIGxp
bnV4L2RyaXZlcnMvc2NzaS9zY3NpX21lcmdlLmMJVGh1IE5vdiAyOSAwNToxMjoyOCAyMDAxCkBA
IC0xNDgsNyArMTQ4LDcgQEAKIAkgKi8KIAliaW8gPSByZXEtPmJpbzsKICNpZmRlZiBETUFfU0VH
TUVOVF9TSVpFX0xJTUlURUQKLQlpZiAocmVxc2l6ZSArIGJpb19zaXplKGJpbykgPiBQQUdFX1NJ
WkUpCisJaWYgKHJlcXNpemUgKyBiaW8tPmJpX3NpemUgPiBQQUdFX1NJWkUpCiAJCXJldCsrOwog
I2VuZGlmCiAKQEAgLTE1Niw3ICsxNTYsNyBAQAogCQliaW9fZm9yX2VhY2hfc2VnbWVudChidmVj
LCBiaW8sIGkpCiAJCQlyZXQrKzsKIAotCQlyZXFzaXplICs9IGJpb19zaXplKGJpbyk7CisJCXJl
cXNpemUgKz0gYmlvLT5iaV9zaXplOwogCX0KIAogCWlmIChyZW1haW5kZXIpCkBAIC0yMDEsNyAr
MjAxLDcgQEAKIH0KIAogI2RlZmluZSBNRVJHRUFCTEVfQlVGRkVSUyhYLFkpIFwKLSgoKCgobG9u
ZyliaW9fdG9fcGh5cygoWCkpK2Jpb19zaXplKChYKSkpfCgobG9uZyliaW9fdG9fcGh5cygoWSkp
KSkgJiBcCisoKCgoKGxvbmcpYmlvX3RvX3BoeXMoKFgpKSsoWCktPmJpX3NpemUpfCgobG9uZyli
aW9fdG9fcGh5cygoWSkpKSkgJiBcCiAgIChETUFfQ0hVTktfU0laRSAtIDEpKSA9PSAwKQogCiAj
aWZkZWYgRE1BX0NIVU5LX1NJWkUKQEAgLTc2Nyw3ICs3NjcsNyBAQAogCQkgKiBiYWNrIGFuZCBh
bGxvY2F0ZSBhIHJlYWxseSBzbWFsbCBvbmUgLSBlbm91Z2ggdG8gc2F0aXNmeQogCQkgKiB0aGUg
Zmlyc3QgYnVmZmVyLgogCQkgKi8KLQkJaWYgKGJpb190b19waHlzKGJpbykgKyBiaW9fc2l6ZShi
aW8pIC0gMSA+IElTQV9ETUFfVEhSRVNIT0xEKSB7CisJCWlmIChiaW9fdG9fcGh5cyhiaW8pICsg
YmlvLT5iaV9zaXplIC0gMSA+IElTQV9ETUFfVEhSRVNIT0xEKSB7CiAJCQlidWZmID0gKGNoYXIg
Kikgc2NzaV9tYWxsb2ModGhpc19jb3VudCA8PCA5KTsKIAkJCWlmICghYnVmZikgewogCQkJCXBy
aW50aygiV2FybmluZyAtIHJ1bm5pbmcgbG93IG9uIERNQSBtZW1vcnlcbiIpOwpkaWZmIC11ciAt
WCBleGNsdWRlIC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXByZTMvZnMvYmlvLmMgbGludXgvZnMv
YmlvLmMKLS0tIC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXByZTMvZnMvYmlvLmMJVGh1IE5vdiAy
OSAwNjowNzoyMSAyMDAxCisrKyBsaW51eC9mcy9iaW8uYwlUaHUgTm92IDI5IDAyOjI0OjMxIDIw
MDEKQEAgLTIxNSw2ICsyMTUsOSBAQAogCWF0b21pY19zZXQoJmJpby0+YmlfY250LCAxKTsKIAli
aW8tPmJpX2ZsYWdzID0gMDsKIAliaW8tPmJpX3J3ID0gMDsKKwliaW8tPmJpX3ZjbnQgPSAwOwor
CWJpby0+YmlfaWR4ID0gMDsKKwliaW8tPmJpX3NpemUgPSAwOwogCWJpby0+YmlfZW5kX2lvID0g
TlVMTDsKIH0KIApkaWZmIC11ciAtWCBleGNsdWRlIC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXBy
ZTMvaW5jbHVkZS9saW51eC9iaW8uaCBsaW51eC9pbmNsdWRlL2xpbnV4L2Jpby5oCi0tLSAvb3B0
L2tlcm5lbC9saW51eC0yLjUuMS1wcmUzL2luY2x1ZGUvbGludXgvYmlvLmgJVGh1IE5vdiAyOSAw
NjowNzoyMiAyMDAxCisrKyBsaW51eC9pbmNsdWRlL2xpbnV4L2Jpby5oCVRodSBOb3YgMjkgMDU6
MDQ6MDUgMjAwMQpAQCAtOTMsMTAgKzkzLDkgQEAKICNkZWZpbmUgYmlvX2lvdmVjX2lkeChiaW8s
IGlkeCkJKCYoKGJpbyktPmJpX2lvX3ZlY1soYmlvKS0+YmlfaWR4XSkpCiAjZGVmaW5lIGJpb19p
b3ZlYyhiaW8pCQliaW9faW92ZWNfaWR4KChiaW8pLCAoYmlvKS0+YmlfaWR4KQogI2RlZmluZSBi
aW9fcGFnZShiaW8pCQliaW9faW92ZWMoKGJpbykpLT5idl9wYWdlCi0jZGVmaW5lIGJpb19zaXpl
KGJpbykJCSgoYmlvKS0+Ymlfc2l6ZSkKICNkZWZpbmUgX19iaW9fb2Zmc2V0KGJpbywgaWR4KQli
aW9faW92ZWNfaWR4KChiaW8pLCAoaWR4KSktPmJ2X29mZnNldAogI2RlZmluZSBiaW9fb2Zmc2V0
KGJpbykJCWJpb19pb3ZlYygoYmlvKSktPmJ2X29mZnNldAotI2RlZmluZSBiaW9fc2VjdG9ycyhi
aW8pCShiaW9fc2l6ZSgoYmlvKSkgPj4gOSkKKyNkZWZpbmUgYmlvX3NlY3RvcnMoYmlvKQkoKGJp
byktPmJpX3NpemUgPj4gOSkKICNkZWZpbmUgYmlvX2RhdGEoYmlvKQkJKHBhZ2VfYWRkcmVzcyhi
aW9fcGFnZSgoYmlvKSkpICsgYmlvX29mZnNldCgoYmlvKSkpCiAjZGVmaW5lIGJpb19iYXJyaWVy
KGJpbykJKChiaW8pLT5iaV9ydyAmICgxIDw8IEJJT19CQVJSSUVSKSkKIApAQCAtMTA3LDEzICsx
MDYsNiBAQAogI2RlZmluZSBidmVjX3RvX3BoeXMoYnYpCShwYWdlX3RvX3BoeXMoKGJ2KS0+YnZf
cGFnZSkgKyAoYnYpLT5idl9vZmZzZXQpCiAKIC8qCi0gKiBoYWNrIHRvIGF2b2lkIGRvaW5nIDY0
LWJpdCBjYWxjdWxhdGlvbnMgb24gMzItYml0IGFyY2hzLCBpbnN0ZWFkIHVzZSBhCi0gKiBwc2V1
ZG8tcGZuIGNoZWNrIHRvIGRvIHNlZ21lbnQgY29hbGVzY2luZwotICovCi0jZGVmaW5lIGJpb19z
ZWNfcGZuKGJpbykgXAotCSgoKChiaW9fcGFnZShiaW8pIC0gYmlvX3BhZ2UoYmlvKS0+em9uZS0+
em9uZV9tZW1fbWFwKSA8PCBQQUdFX1NISUZUKSAvIGJpb19zaXplKGJpbykpICsgKGJpb19vZmZz
ZXQoYmlvKSA+PiA5KSkKLQotLyoKICAqIHF1ZXVlcyB0aGF0IGhhdmUgaGlnaG1lbSBzdXBwb3J0
IGVuYWJsZWQgbWF5IHN0aWxsIG5lZWQgdG8gcmV2ZXJ0IHRvCiAgKiBQSU8gdHJhbnNmZXJzIG9j
Y2FzaW9uYWxseSBhbmQgdGh1cyBtYXAgaGlnaCBwYWdlcyB0ZW1wb3JhcmlseS4gRm9yCiAgKiBw
ZXJtYW5lbnQgUElPIGZhbGwgYmFjaywgdXNlciBpcyBwcm9iYWJseSBiZXR0ZXIgb2ZmIGRpc2Fi
bGluZyBoaWdobWVtCkBAIC0xMjQsMTIgKzExNiwxNiBAQAogI2RlZmluZSBfX2Jpb19rdW5tYXAo
YmlvLCBpZHgpCWt1bm1hcChiaW9faW92ZWNfaWR4KChiaW8pLCAoaWR4KSktPmJ2X3BhZ2UpCiAj
ZGVmaW5lIGJpb19rdW5tYXAoYmlvKQkJX19iaW9fa3VubWFwKChiaW8pLCAoYmlvKS0+YmlfaWR4
KQogCisvKgorICogbWVyZ2UgaGVscGVycyBldGMKKyAqLworI2RlZmluZSBfX0JWRUNfRU5EKGJp
bykgYmlvX2lvdmVjX2lkeCgoYmlvKSwgKGJpbyktPmJpX2lkeCAtIDEpCiAjZGVmaW5lIEJJT19D
T05USUcoYmlvLCBueHQpIFwKLQkoYmlvX3RvX3BoeXMoKGJpbykpICsgYmlvX3NpemUoKGJpbykp
ID09IGJpb190b19waHlzKChueHQpKSkKKwkoYnZlY190b19waHlzKF9fQlZFQ19FTkQoKGJpbykp
ICsgKGJpbyktPmJpX3NpemUpID09YmlvX3RvX3BoeXMoKG54dCkpKQogI2RlZmluZSBfX0JJT19T
RUdfQk9VTkRBUlkoYWRkcjEsIGFkZHIyLCBtYXNrKSBcCiAJKCgoYWRkcjEpIHwgKG1hc2spKSA9
PSAoKChhZGRyMikgLSAxKSB8IChtYXNrKSkpCiAjZGVmaW5lIEJJT19TRUdfQk9VTkRBUlkocSwg
YjEsIGIyKSBcCi0JX19CSU9fU0VHX0JPVU5EQVJZKGJ2ZWNfdG9fcGh5cyhiaW9faW92ZWNfaWR4
KChiMSksIChiMSktPmJpX2NudCAtIDEpKSwgYmlvX3RvX3BoeXMoKGIyKSkgKyBiaW9fc2l6ZSgo
YjIpKSwgKHEpLT5zZWdfYm91bmRhcnlfbWFzaykKKwlfX0JJT19TRUdfQk9VTkRBUlkoYnZlY190
b19waHlzKF9fQlZFQ19FTkQoKGIxKSkpLCBiaW9fdG9fcGh5cygoYjIpKSArIChiMiktPmJpX3Np
emUsIChxKS0+c2VnX2JvdW5kYXJ5X21hc2spCiAKIHR5cGVkZWYgaW50IChiaW9fZW5kX2lvX3Qp
IChzdHJ1Y3QgYmlvICosIGludCk7CiB0eXBlZGVmIHZvaWQgKGJpb19kZXN0cnVjdG9yX3QpIChz
dHJ1Y3QgYmlvICopOwpkaWZmIC11ciAtWCBleGNsdWRlIC9vcHQva2VybmVsL2xpbnV4LTIuNS4x
LXByZTMvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBsaW51eC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5o
Ci0tLSAvb3B0L2tlcm5lbC9saW51eC0yLjUuMS1wcmUzL2luY2x1ZGUvbGludXgvYmxrZGV2LmgJ
VGh1IE5vdiAyOSAwNjowNzoyMiAyMDAxCisrKyBsaW51eC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5o
CVRodSBOb3YgMjkgMDU6NDk6NDggMjAwMQpAQCAtMTc3LDE0ICsxNzcsMTEgQEAKIAogI2lmZGVm
IENPTkZJR19ISUdITUVNCiAKLWV4dGVybiB2b2lkIGNyZWF0ZV9ib3VuY2Uoc3RydWN0IGJpbyAq
KmJpb19vcmlnLCBpbnQgZ2ZwX21hc2spOworZXh0ZXJuIHZvaWQgY3JlYXRlX2JvdW5jZSh1bnNp
Z25lZCBsb25nIHBmbiwgc3RydWN0IGJpbyAqKmJpb19vcmlnLCBpbnQgZ2ZwX21hc2spOwogCiBl
eHRlcm4gaW5saW5lIHZvaWQgYmxrX3F1ZXVlX2JvdW5jZShyZXF1ZXN0X3F1ZXVlX3QgKnEsIHN0
cnVjdCBiaW8gKipiaW8pCiB7Ci0Jc3RydWN0IHBhZ2UgKnBhZ2UgPSBiaW9fcGFnZSgqYmlvKTsK
LQotCWlmICgocGFnZSAtIHBhZ2UtPnpvbmUtPnpvbmVfbWVtX21hcCkgKyAocGFnZS0+em9uZS0+
em9uZV9zdGFydF9wYWRkciA+PiBQQUdFX1NISUZUKSA8IHEtPmJvdW5jZV9wZm4pCi0JCWNyZWF0
ZV9ib3VuY2UoYmlvLCBxLT5ib3VuY2VfZ2ZwKTsKKwljcmVhdGVfYm91bmNlKHEtPmJvdW5jZV9w
Zm4sIGJpbywgcS0+Ym91bmNlX2dmcCk7CiB9CiAKICNlbHNlIC8qIENPTkZJR19ISUdITUVNICov
CmRpZmYgLXVyIC1YIGV4Y2x1ZGUgL29wdC9rZXJuZWwvbGludXgtMi41LjEtcHJlMy9pbmNsdWRl
L2xpbnV4L2hpZ2htZW0uaCBsaW51eC9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaAotLS0gL29wdC9r
ZXJuZWwvbGludXgtMi41LjEtcHJlMy9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaAlUaHUgTm92IDI5
IDA2OjA3OjIyIDIwMDEKKysrIGxpbnV4L2luY2x1ZGUvbGludXgvaGlnaG1lbS5oCVRodSBOb3Yg
MjkgMDU6NDk6MzQgMjAwMQpAQCAtMTMsNyArMTMsNyBAQAogLyogZGVjbGFyYXRpb25zIGZvciBs
aW51eC9tbS9oaWdobWVtLmMgKi8KIHVuc2lnbmVkIGludCBucl9mcmVlX2hpZ2hwYWdlcyh2b2lk
KTsKIAotZXh0ZXJuIHZvaWQgY3JlYXRlX2JvdW5jZShzdHJ1Y3QgYmlvICoqYmlvX29yaWcsIGlu
dCBnZnBfbWFzayk7CitleHRlcm4gdm9pZCBjcmVhdGVfYm91bmNlKHVuc2lnbmVkIGxvbmcgcGZu
LCBzdHJ1Y3QgYmlvICoqYmlvX29yaWcsIGludCBnZnBfbWFzayk7CiAKIHN0YXRpYyBpbmxpbmUg
Y2hhciAqYmhfa21hcChzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQogewpkaWZmIC11ciAtWCBleGNs
dWRlIC9vcHQva2VybmVsL2xpbnV4LTIuNS4xLXByZTMvbW0vaGlnaG1lbS5jIGxpbnV4L21tL2hp
Z2htZW0uYwotLS0gL29wdC9rZXJuZWwvbGludXgtMi41LjEtcHJlMy9tbS9oaWdobWVtLmMJVGh1
IE5vdiAyOSAwNjowNzoyMiAyMDAxCisrKyBsaW51eC9tbS9oaWdobWVtLmMJVGh1IE5vdiAyOSAw
NjowMjowNCAyMDAxCkBAIC0yMDcsMzUgKzIwNywzMSBAQAogICogcXVldWUgZ2ZwIG1hc2sgc2V0
LCAqdG8gbWF5IG9yIG1heSBub3QgYmUgYSBoaWdobWVtIHBhZ2UuIGttYXAgaXQKICAqIGFsd2F5
cywgaXQgd2lsbCBkbyB0aGUgUmlnaHQgVGhpbmcKICAqLwotc3RhdGljIGlubGluZSB2b2lkIGNv
cHlfZnJvbV9oaWdoX2JpbyhzdHJ1Y3QgYmlvICp0bywgc3RydWN0IGJpbyAqZnJvbSkKK3N0YXRp
YyBpbmxpbmUgdm9pZCBjb3B5X3RvX2hpZ2hfYmlvX2lycShzdHJ1Y3QgYmlvICp0bywgc3RydWN0
IGJpbyAqZnJvbSkKIHsKIAl1bnNpZ25lZCBjaGFyICp2dG8sICp2ZnJvbTsKKwl1bnNpZ25lZCBs
b25nIGZsYWdzOworCXN0cnVjdCBiaW9fdmVjICp0b3ZlYywgKmZyb212ZWM7CisJaW50IGk7CiAK
LQlpZiAodW5saWtlbHkoaW5faW50ZXJydXB0KCkpKQotCQlCVUcoKTsKLQotCXZ0byA9IGJpb19r
bWFwKHRvKTsKLQl2ZnJvbSA9IGJpb19rbWFwKGZyb20pOwotCi0JbWVtY3B5KHZ0bywgdmZyb20g
KyBiaW9fb2Zmc2V0KGZyb20pLCBiaW9fc2l6ZSh0bykpOworCWJpb19mb3JfZWFjaF9zZWdtZW50
KHRvdmVjLCB0bywgaSkgeworCQlmcm9tdmVjID0gJmZyb20tPmJpX2lvX3ZlY1tpXTsKIAotCWJp
b19rdW5tYXAoZnJvbSk7Ci0JYmlvX2t1bm1hcCh0byk7Ci19CisJCS8qCisJCSAqIG5vdCBib3Vu
Y2VkCisJCSAqLworCQlpZiAodG92ZWMtPmJ2X3BhZ2UgPT0gZnJvbXZlYy0+YnZfcGFnZSkKKwkJ
CWNvbnRpbnVlOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weV90b19oaWdoX2Jpb19pcnEoc3Ry
dWN0IGJpbyAqdG8sIHN0cnVjdCBiaW8gKmZyb20pCi17Ci0JdW5zaWduZWQgY2hhciAqdnRvLCAq
dmZyb207Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKKwkJdmZyb20gPSBwYWdlX2FkZHJlc3MoZnJv
bXZlYy0+YnZfcGFnZSkgKyBmcm9tdmVjLT5idl9vZmZzZXQ7CiAKLQlfX3NhdmVfZmxhZ3MoZmxh
Z3MpOwotCV9fY2xpKCk7Ci0JdnRvID0ga21hcF9hdG9taWMoYmlvX3BhZ2UodG8pLCBLTV9CT1VO
Q0VfUkVBRCk7Ci0JdmZyb20gPSBrbWFwX2F0b21pYyhiaW9fcGFnZShmcm9tKSwgS01fQk9VTkNF
X1JFQUQpOwotCW1lbWNweSh2dG8gKyBiaW9fb2Zmc2V0KHRvKSwgdmZyb20sIGJpb19zaXplKHRv
KSk7Ci0Ja3VubWFwX2F0b21pYyh2ZnJvbSwgS01fQk9VTkNFX1JFQUQpOwotCWt1bm1hcF9hdG9t
aWModnRvLCBLTV9CT1VOQ0VfUkVBRCk7Ci0JX19yZXN0b3JlX2ZsYWdzKGZsYWdzKTsKKwkJX19z
YXZlX2ZsYWdzKGZsYWdzKTsKKwkJX19jbGkoKTsKKwkJdnRvID0ga21hcF9hdG9taWModG92ZWMt
PmJ2X3BhZ2UsIEtNX0JPVU5DRV9SRUFEKTsKKwkJbWVtY3B5KHZ0byArIHRvdmVjLT5idl9vZmZz
ZXQsIHZmcm9tLCB0by0+Ymlfc2l6ZSk7CisJCWt1bm1hcF9hdG9taWModnRvLCBLTV9CT1VOQ0Vf
UkVBRCk7CisJCV9fcmVzdG9yZV9mbGFncyhmbGFncyk7CisJfQogfQogCiBzdGF0aWMgX19pbml0
IGludCBpbml0X2VtZXJnZW5jeV9wb29sKHZvaWQpCkBAIC0zNDcsMTUgKzM0Myw2NCBAQAogCWdv
dG8gcmVwZWF0X2FsbG9jOwogfQogCi12b2lkIGNyZWF0ZV9ib3VuY2Uoc3RydWN0IGJpbyAqKmJp
b19vcmlnLCBpbnQgZ2ZwX21hc2spCit2b2lkIGNyZWF0ZV9ib3VuY2UodW5zaWduZWQgbG9uZyBw
Zm4sIHN0cnVjdCBiaW8gKipiaW9fb3JpZywgaW50IGdmcF9tYXNrKQogewogCXN0cnVjdCBwYWdl
ICpwYWdlOwotCXN0cnVjdCBiaW8gKmJpbzsKKwlzdHJ1Y3QgYmlvICpiaW8gPSBOVUxMOwogCWlu
dCBpLCBydyA9IGJpb19kYXRhX2RpcigqYmlvX29yaWcpOworCXN0cnVjdCBiaW9fdmVjICp0bywg
KmZyb207CiAKIAlCVUdfT04oKCpiaW9fb3JpZyktPmJpX2lkeCk7CiAKLQliaW8gPSBiaW9fYWxs
b2MoR0ZQX05PSElHSElPLCAoKmJpb19vcmlnKS0+YmlfdmNudCk7CisJYmlvX2Zvcl9lYWNoX3Nl
Z21lbnQoZnJvbSwgKmJpb19vcmlnLCBpKSB7CisJCXBhZ2UgPSBmcm9tLT5idl9wYWdlOworCisJ
CS8qCisJCSAqIGlzIGRlc3RpbmF0aW9uIHBhZ2UgYmVsb3cgYm91bmNlIHBmbj8KKwkJICovCisJ
CWlmICgocGFnZSAtIHBhZ2UtPnpvbmUtPnpvbmVfbWVtX21hcCkgKyAocGFnZS0+em9uZS0+em9u
ZV9zdGFydF9wYWRkciA+PiBQQUdFX1NISUZUKSA8IHBmbikKKwkJCWNvbnRpbnVlOworCisJCS8q
CisJCSAqIGlyaywgYm91bmNlIGl0CisJCSAqLworCQlpZiAoIWJpbykKKwkJCWJpbyA9IGJpb19h
bGxvYyhHRlBfTk9ISUdISU8sICgqYmlvX29yaWcpLT5iaV92Y250KTsKKworCQl0byA9ICZiaW8t
PmJpX2lvX3ZlY1tpXTsKKworCQl0by0+YnZfcGFnZSA9IGFsbG9jX2JvdW5jZV9wYWdlKGdmcF9t
YXNrKTsKKwkJdG8tPmJ2X2xlbiA9IGZyb20tPmJ2X2xlbjsKKwkJdG8tPmJ2X29mZnNldCA9IGZy
b20tPmJ2X29mZnNldDsKKworCQlpZiAocncgJiBXUklURSkgeworCQkJY2hhciAqdnRvLCAqdmZy
b207CisKKwkJCXZ0byA9IHBhZ2VfYWRkcmVzcyh0by0+YnZfcGFnZSkgKyB0by0+YnZfb2Zmc2V0
OworCQkJdmZyb20gPSBrbWFwKGZyb20tPmJ2X3BhZ2UpOworCQkJbWVtY3B5KHZ0bywgdmZyb20g
KyBmcm9tLT5idl9vZmZzZXQsIHRvLT5idl9sZW4pOworCQkJa3VubWFwKHRvLT5idl9wYWdlKTsK
KwkJfQorCX0KKworCS8qCisJICogbm8gcGFnZXMgYm91bmNlZAorCSAqLworCWlmICghYmlvKQor
CQlyZXR1cm47CisKKwkvKgorCSAqIGF0IGxlYXN0IG9uZSBwYWdlIHdhcyBib3VuY2VkLCBmaWxs
IGluIHBvc3NpYmxlIG5vbi1oaWdobWVtCisJICogcGFnZXMKKwkgKi8KKwliaW9fZm9yX2VhY2hf
c2VnbWVudChmcm9tLCAqYmlvX29yaWcsIGkpIHsKKwkJdG8gPSAmYmlvLT5iaV9pb192ZWNbaV07
CisJCWlmICghdG8tPmJ2X3BhZ2UpIHsKKwkJCXRvLT5idl9wYWdlID0gZnJvbS0+YnZfcGFnZTsK
KwkJCXRvLT5idl9sZW4gPSBmcm9tLT5idl9sZW47CisJCQl0by0+YnZfb2Zmc2V0ID0gdG8tPmJ2
X29mZnNldDsKKwkJfQorCX0KIAogCWJpby0+YmlfZGV2ID0gKCpiaW9fb3JpZyktPmJpX2RldjsK
IAliaW8tPmJpX3NlY3RvciA9ICgqYmlvX29yaWcpLT5iaV9zZWN0b3I7CkBAIC0zNjksMjMgKzQx
NCw2IEBACiAJCWJpby0+YmlfZW5kX2lvID0gYm91bmNlX2VuZF9pb193cml0ZTsKIAllbHNlCiAJ
CWJpby0+YmlfZW5kX2lvID0gYm91bmNlX2VuZF9pb19yZWFkOwotCi0JZm9yIChpID0gMDsgaSA8
IGJpby0+YmlfdmNudDsgaSsrKSB7Ci0JCWNoYXIgKnZ0bywgKnZmcm9tOwotCi0JCXBhZ2UgPSBh
bGxvY19ib3VuY2VfcGFnZShnZnBfbWFzayk7Ci0KLQkJYmlvLT5iaV9pb192ZWNbaV0uYnZfcGFn
ZSA9IHBhZ2U7Ci0JCWJpby0+YmlfaW9fdmVjW2ldLmJ2X2xlbiA9ICgqYmlvX29yaWcpLT5iaV9p
b192ZWNbaV0uYnZfbGVuOwotCQliaW8tPmJpX2lvX3ZlY1tpXS5idl9vZmZzZXQgPSAwOwotCi0J
CWlmIChydyAmIFdSSVRFKSB7Ci0JCQl2dG8gPSBwYWdlX2FkZHJlc3MocGFnZSk7Ci0JCQl2ZnJv
bSA9IF9fYmlvX2ttYXAoKmJpb19vcmlnLCBpKTsKLQkJCW1lbWNweSh2dG8sIHZmcm9tICsgX19i
aW9fb2Zmc2V0KCpiaW9fb3JpZywgaSksIGJpby0+YmlfaW9fdmVjW2ldLmJ2X2xlbik7Ci0JCQlf
X2Jpb19rdW5tYXAoYmlvLCBpKTsKLQkJfQotCX0KIAogCWJpby0+YmlfcHJpdmF0ZSA9ICpiaW9f
b3JpZzsKIAkqYmlvX29yaWcgPSBiaW87Cg==

--------------Boundary-00=_1SRKCWC8TKES161HBROG
Content-Type: text/x-diff;
charset="iso-8859-1";
name="alan.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="alan.diff"

ZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVjdXJzaXZlIC0tZXhjbHVkZS1mcm9tIC91c3Ivc3JjL2V4
Y2x1ZGUgbGludXguMXAzL2RyaXZlcnMvYmxvY2svcmQuYyBsaW51eC5hYy9kcml2ZXJzL2Jsb2Nr
L3JkLmMKLS0tIGxpbnV4LjFwMy9kcml2ZXJzL2Jsb2NrL3JkLmMJVGh1IE5vdiAyOSAwMToxODoz
MiAyMDAxCisrKyBsaW51eC5hYy9kcml2ZXJzL2Jsb2NrL3JkLmMJVGh1IE5vdiAyOSAwMTo0MToz
NyAyMDAxCkBAIC00MDksMTMgKzQwOSwxMyBAQAogewogCWV4dGVybiB2b2lkIGZyZWVfaW5pdHJk
X21lbSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKIAotCXNwaW5fbG9jayggJmluaXRy
ZF91c2Vyc19sb2NrICk7CisJc3Bpbl9sb2NrKCZpbml0cmRfdXNlcnNfbG9jayk7CiAJaWYgKCEt
LWluaXRyZF91c2VycykgewotCQlzcGluX3VubG9jayggJmluaXRyZF91c2Vyc19sb2NrICk7CisJ
CXNwaW5fdW5sb2NrKCZpbml0cmRfdXNlcnNfbG9jayk7CiAJCWZyZWVfaW5pdHJkX21lbShpbml0
cmRfc3RhcnQsIGluaXRyZF9lbmQpOwogCQlpbml0cmRfc3RhcnQgPSAwOwogCX0gZWxzZSB7Ci0J
CXNwaW5fdW5sb2NrKCAmaW5pdHJkX3VzZXJzX2xvY2sgKTsKKwkJc3Bpbl91bmxvY2soJmluaXRy
ZF91c2Vyc19sb2NrKTsKIAl9CiAJCQogCWJsa2Rldl9wdXQoaW5vZGUtPmlfYmRldiwgQkRFVl9G
SUxFKTsKQEAgLTQzNywxMCArNDM3LDExIEBACiAKICNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklU
UkQKIAlpZiAodW5pdCA9PSBJTklUUkRfTUlOT1IpIHsKLQkJc3Bpbl9sb2NrKCAmaW5pdHJkX3Vz
ZXJzX2xvY2sgKTsKKwkJc3Bpbl9sb2NrKCZpbml0cmRfdXNlcnNfbG9jayk7CiAJCWluaXRyZF91
c2VycysrOwotCQlpZiAoIWluaXRyZF9zdGFydCkgcmV0dXJuIC1FTk9ERVY7Ci0JCXNwaW5fdW5s
b2NrKCAmaW5pdHJkX3VzZXJzX2xvY2sgKTsKKwkJc3Bpbl91bmxvY2soJmluaXRyZF91c2Vyc19s
b2NrKTsKKwkJaWYgKCFpbml0cmRfc3RhcnQpIAorCQkJcmV0dXJuIC1FTk9ERVY7CiAJCWZpbHAt
PmZfb3AgPSAmaW5pdHJkX2ZvcHM7CiAJCXJldHVybiAwOwogCX0KZGlmZiAtdSAtLW5ldy1maWxl
IC0tcmVjdXJzaXZlIC0tZXhjbHVkZS1mcm9tIC91c3Ivc3JjL2V4Y2x1ZGUgbGludXguMXAzL2Ry
aXZlcnMvY2hhci9wYzExMHBhZC5jIGxpbnV4LmFjL2RyaXZlcnMvY2hhci9wYzExMHBhZC5jCi0t
LSBsaW51eC4xcDMvZHJpdmVycy9jaGFyL3BjMTEwcGFkLmMJVGh1IE5vdiAyOSAwMToxODozMiAy
MDAxCisrKyBsaW51eC5hYy9kcml2ZXJzL2NoYXIvcGMxMTBwYWQuYwlUaHUgTm92IDI5IDAxOjM5
OjIxIDIwMDEKQEAgLTY4LDggKzY4LDggQEAKIC8qIGRyaXZlci9maWxlc3lzdGVtIGludGVyZmFj
ZSBtYW5hZ2VtZW50ICovCiBzdGF0aWMgd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CiBzdGF0aWMg
c3RydWN0IGZhc3luY19zdHJ1Y3QgKmFzeW5jcHRyOwotc3RhdGljIGFjdGl2ZV9jb3VudCA9IDA7
IAkvKiBudW1iZXIgb2YgY29uY3VycmVudCBvcGVuKClzICovCi1zdGF0aWMgc3BpbmxvY2tfdCBh
Y3RpdmVfbG9jayA9IFNQSU5fTE9DS19VTkxPQ0tFRDsKK3N0YXRpYyBpbnQgYWN0aXZlX2NvdW50
ID0gMDsgCS8qIG51bWJlciBvZiBjb25jdXJyZW50IG9wZW4oKXMgKi8KK3N0YXRpYyBzcGlubG9j
a190IHBjMTEwX2xvY2sgPSBTUElOX0xPQ0tfVU5MT0NLRUQ7CiAvKiB0aGlzIGxvY2sgc2hvdWxk
IGJlIGhlbGQgd2hlbiByZWZlcmVuY2luZyBhY3RpdmVfY291bnQgKi8KIHN0YXRpYyBzdHJ1Y3Qg
c2VtYXBob3JlIHJlYWRlcl9sb2NrOwogCkBAIC00ODIsMTUgKzQ4MiwxNCBAQAogCWludCB0aGlz
ZCwgdGhpc2RkLCB0aGlzeCwgdGhpc3k7CiAJaW50IGI7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK
LQkKLQlzYXZlX2ZsYWdzKGZsYWdzKTsKLQljbGkoKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZw
YzExMF9sb2NrLCBmbGFncyk7CQogCXJlYWRfcmF3X3BhZCgmdGhpc2QsICZ0aGlzZGQsICZ0aGlz
eCwgJnRoaXN5KTsKIAlkWzBdPSh0aGlzZD8weDgwOjApIHwgKHRoaXNkZD8weDQwOjApIHwgYm91
bmNlOwogCWRbMV09KHJlY2VudF90cmFuc2l0aW9uPzB4ODA6MCkrdHJhbnNpdGlvbl9jb3VudDsK
IAlyZWFkX2J1dHRvbigmYik7CiAJZFsyXT0oc3ludGhlc2l6ZV90YXA8PDQpIHwgKGI/MHgwMTow
KTsKLQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwYzEx
MF9sb2NrLCBmbGFncyk7CiB9CiAKIC8qKgpAQCAtNTg2LDExICs1ODUsMTIgQEAKICAKIHN0YXRp
YyBpbnQgY2xvc2VfcGFkKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUp
CiB7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlmYXN5bmNfcGFkKC0xLCBmaWxlLCAwKTsKLQlz
cGluX2xvY2soICZhY3RpdmVfbG9jayApOworCXNwaW5fbG9ja19pcnFzYXZlKCZwYzExMF9sb2Nr
LCBmbGFncyk7CiAJaWYgKCEtLWFjdGl2ZV9jb3VudCkKIAkJb3V0YigweDMwLCBjdXJyZW50X3Bh
cmFtcy5pbysyKTsgIC8qIHN3aXRjaCBvZmYgZGlnaXRpc2VyICovCi0Jc3Bpbl91bmxvY2soICZh
Y3RpdmVfbG9jayApOwkKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhY3RpdmVfbG9jaywgZmxh
Z3MpOwkKIAlyZXR1cm4gMDsKIH0KIApAQCAtNjEwLDE2ICs2MTAsMTMgQEAKIHsKIAl1bnNpZ25l
ZCBsb25nIGZsYWdzOwogCQotCXNwaW5fbG9jayggJmFjdGl2ZV9sb2NrICk7CisgICAgICAgCXNw
aW5fbG9ja19pcnFzYXZlKCZwYzExMF9sb2NrLCBmbGFncyk7CiAJaWYgKGFjdGl2ZV9jb3VudCsr
KQogICAgICAgICB7Ci0JCXNwaW5fdW5sb2NrKCAmYWN0aXZlX2xvY2sgKTsKKyAgICAgICAgCXNw
aW5fdW5sb2NrX2lycXJlc3RvcmUoJnBjMTEwX2xvY2ssIGZsYWdzKTsKIAkJcmV0dXJuIDA7CiAJ
fQotCXNwaW5fdW5sb2NrKCAmYWN0aXZlX2xvY2sgKTsKIAotCXNhdmVfZmxhZ3MoZmxhZ3MpOwot
CWNsaSgpOwogCW91dGIoMHgzMCwgY3VycmVudF9wYXJhbXMuaW8rMik7CS8qIHN3aXRjaCBvZmYg
ZGlnaXRpc2VyICovCiAJcGFkX2lycSgwLDAsMCk7CQkvKiByZWFkIHRvIGZsdXNoIGFueSBwZW5k
aW5nIGJ5dGVzICovCiAJcGFkX2lycSgwLDAsMCk7CQkvKiByZWFkIHRvIGZsdXNoIGFueSBwZW5k
aW5nIGJ5dGVzICovCkBAIC02MzQsNyArNjMxLDcgQEAKIAlzeW50aGVzaXplX3RhcD0wOwogCWRl
bF90aW1lcigmYm91bmNlX3RpbWVyKTsKIAlkZWxfdGltZXIoJnRhcF90aW1lcik7Ci0JcmVzdG9y
ZV9mbGFncyhmbGFncyk7CisgICAgICAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBjMTEwX2xv
Y2ssIGZsYWdzKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC11IC0tbmV3LWZpbGUgLS1yZWN1cnNp
dmUgLS1leGNsdWRlLWZyb20gL3Vzci9zcmMvZXhjbHVkZSBsaW51eC4xcDMvZHJpdmVycy9jaGFy
L3BjX2tleWIuYyBsaW51eC5hYy9kcml2ZXJzL2NoYXIvcGNfa2V5Yi5jCi0tLSBsaW51eC4xcDMv
ZHJpdmVycy9jaGFyL3BjX2tleWIuYwlUaHUgTm92IDI5IDAxOjE4OjMyIDIwMDEKKysrIGxpbnV4
LmFjL2RyaXZlcnMvY2hhci9wY19rZXliLmMJVGh1IE5vdiAyOSAwMTo0NDo1MSAyMDAxCkBAIC00
MDYsNyArNDA2LDcgQEAKIAogICAgICAgIGlmIChycXN0ID09IFBNX1JFU1VNRSkgewogICAgICAg
ICAgICAgICAgaWYgKHF1ZXVlKSB7ICAgICAgICAgICAgICAgICAgICAvKiBBdXggcG9ydCBkZXRl
Y3RlZCAqLwotCQkgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoICZhdXhfY291bnRfbG9jaywgZmxh
Z3MpOworCQkgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmF1eF9jb3VudF9sb2NrLCBmbGFncyk7
CiAgICAgICAgICAgICAgIAkgICAgICAgaWYgKCBhdXhfY291bnQgPT0gMCkgeyAgIC8qIE1vdXNl
IG5vdCBpbiB1c2UgKi8gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl9sb2Nr
KCZrYmRfY29udHJvbGxlcl9sb2NrKTsKIAkJCSAgICAgICAvKgpAQCAtNDIwLDkgKzQyMCw5IEBA
CiAJCQkgICAgICAga2JkX3dyaXRlX2NvbW1hbmQoS0JEX0NDTURfV1JJVEVfTU9ERSk7CiAJCQkg
ICAgICAga2Jfd2FpdCgpOwogCQkJICAgICAgIGtiZF93cml0ZV9vdXRwdXQoQVVYX0lOVFNfT0ZG
KTsKLQkJCSAgICAgICBzcGluX3VubG9jaygma2JkX2NvbnRyb2xsZXJfbG9jaywgZmxhZ3MpOwor
CQkJICAgICAgIHNwaW5fdW5sb2NrKCZrYmRfY29udHJvbGxlcl9sb2NrKTsKIAkJICAgICAgIH0K
LQkJICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoICZhdXhfY291bnRfbG9jayxmbGFncyAp
OworCQkgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYXV4X2NvdW50X2xvY2ssIGZsYWdz
KTsKIAkgICAgICAgfQogICAgICAgIH0KICNlbmRpZgpAQCAtNDMzLDcgKzQzMyw3IEBACiBzdGF0
aWMgaW5saW5lIHZvaWQgaGFuZGxlX21vdXNlX2V2ZW50KHVuc2lnbmVkIGNoYXIgc2NhbmNvZGUp
CiB7CiAjaWZkZWYgQ09ORklHX1BTTU9VU0UKLQlpbnQgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBm
bGFnczsKIAlzdGF0aWMgdW5zaWduZWQgY2hhciBwcmV2X2NvZGU7CiAJaWYgKG1vdXNlX3JlcGx5
X2V4cGVjdGVkKSB7CiAJCWlmIChzY2FuY29kZSA9PSBBVVhfQUNLKSB7CkBAIC00NTIsNyArNDUy
LDcgQEAKIAogCXByZXZfY29kZSA9IHNjYW5jb2RlOwogCWFkZF9tb3VzZV9yYW5kb21uZXNzKHNj
YW5jb2RlKTsKLQlzcGluX2xvY2tfaXJxc2F2ZSggJmF1eF9jb3VudF9sb2NrLCBmbGFncyk7CisJ
c3Bpbl9sb2NrX2lycXNhdmUoJmF1eF9jb3VudF9sb2NrLCBmbGFncyk7CiAJaWYgKCBhdXhfY291
bnQgKSB7CiAJCWludCBoZWFkID0gcXVldWUtPmhlYWQ7CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQAog
CQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZxdWV1ZS0+cHJvY19saXN0KTsKIAkJfQogCX0KLQlz
cGluX3VubG9ja19pcnFyZXN0b3JlKCAmYXV4X2NvdW50X2xvY2ssIGZsYWdzKTsKKwlzcGluX3Vu
bG9ja19pcnFyZXN0b3JlKCZhdXhfY291bnRfbG9jaywgZmxhZ3MpOwogI2VuZGlmCiB9CiAKQEAg
LTEwNTIsMTQgKzEwNTIsMTQgQEAKIAogc3RhdGljIGludCByZWxlYXNlX2F1eChzdHJ1Y3QgaW5v
ZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogewotCWludCBmbGFnczsKKwl1bnNpZ25l
ZCBsb25nIGZsYWdzOwogCWZhc3luY19hdXgoLTEsIGZpbGUsIDApOwotCXNwaW5fbG9ja19pcnFz
YXZlKCAmYXV4X2NvdW50LCBmbGFncyApOworCXNwaW5fbG9ja19pcnFzYXZlKCZhdXhfY291bnQs
IGZsYWdzKTsKIAlpZiAoIC0tYXV4X2NvdW50ICkgewotCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl
KCAmYXV4X2NvdW50X2xvY2sgKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYXV4X2NvdW50
X2xvY2ssIGZsYWdzKTsKIAkJcmV0dXJuIDA7CiAJfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo
ICZhdXhfY291bnRfbG9jaywgZmxhZ3MgKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhdXhf
Y291bnRfbG9jaywgZmxhZ3MpOwogCWtiZF93cml0ZV9jbWQoQVVYX0lOVFNfT0ZGKTsJCQkgICAg
LyogRGlzYWJsZSBjb250cm9sbGVyIGludHMgKi8KIAlrYmRfd3JpdGVfY29tbWFuZF93KEtCRF9D
Q01EX01PVVNFX0RJU0FCTEUpOwogCWF1eF9mcmVlX2lycShBVVhfREVWKTsKQEAgLTEwNzMsMTYg
KzEwNzMsMTYgQEAKIAogc3RhdGljIGludCBvcGVuX2F1eChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwg
c3RydWN0IGZpbGUgKiBmaWxlKQogewotCWludCBmbGFnczsKLQlzcGluX2xvY2tfaXJxc2F2ZSgg
JmF1eF9jb3VudF9sb2NrLCBmbGFncyApOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3Bpbl9s
b2NrX2lycXNhdmUoJmF1eF9jb3VudF9sb2NrLCBmbGFncyk7CiAJaWYgKCBhdXhfY291bnQrKyAp
IHsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJmF1eF9jb3VudF9sb2NrICk7CisJCXNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJmF1eF9jb3VudF9sb2NrLCBmbGFncyk7CiAJCXJldHVybiAwOwog
CX0KIAlxdWV1ZS0+aGVhZCA9IHF1ZXVlLT50YWlsID0gMDsJCS8qIEZsdXNoIGlucHV0IHF1ZXVl
ICovCiAJaWYgKGF1eF9yZXF1ZXN0X2lycShrZXlib2FyZF9pbnRlcnJ1cHQsIEFVWF9ERVYpKSB7
CiAJCWF1eF9jb3VudC0tOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCAmYXV4X2NvdW50X2xv
Y2ssIGZsYWdzICk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmF1eF9jb3VudF9sb2NrLCBm
bGFncyk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCWtiZF93cml0ZV9jb21tYW5kX3coS0JEX0ND
TURfTU9VU0VfRU5BQkxFKTsJLyogRW5hYmxlIHRoZQpAQCAtMTA5NCw3ICsxMDk0LDcgQEAKIAlt
ZGVsYXkoMik7CQkJLyogRW5zdXJlIHdlIGZvbGxvdyB0aGUga2JjIGFjY2VzcyBkZWxheSBydWxl
cy4uICovCiAKIAlzZW5kX2RhdGEoS0JEX0NNRF9FTkFCTEUpOwkvKiB0cnkgdG8gd29ya2Fyb3Vu
ZCB0b3NoaWJhNDAzMGNkdCBwcm9ibGVtICovCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSggJmF1
eF9jb3VudF9sb2NrLCBmbGFncyApOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmF1eF9jb3Vu
dF9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVj
dXJzaXZlIC0tZXhjbHVkZS1mcm9tIC91c3Ivc3JjL2V4Y2x1ZGUgbGludXguMXAzL2RyaXZlcnMv
Y2hhci93ZHQuYyBsaW51eC5hYy9kcml2ZXJzL2NoYXIvd2R0LmMKLS0tIGxpbnV4LjFwMy9kcml2
ZXJzL2NoYXIvd2R0LmMJVGh1IE5vdiAyOSAwMToxODozMiAyMDAxCisrKyBsaW51eC5hYy9kcml2
ZXJzL2NoYXIvd2R0LmMJVGh1IE5vdiAyOSAwMToyMjozMiAyMDAxCkBAIC01MCw3ICs1MCw3IEBA
CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCi1z
dGF0aWMgaW50IHdkdF9pc19vcGVuOworc3RhdGljIHVuc2lnbmVkIGxvbmcgd2R0X2lzX29wZW47
CiAKIC8qCiAgKglZb3UgbXVzdCBzZXQgdGhlc2UgLSB0aGVyZSBpcyBubyBzYW5lIHdheSB0byBw
cm9iZSBmb3IgdGhpcyBib2FyZC4KQEAgLTMzNywxMyArMzM3LDEyIEBACiAJc3dpdGNoKE1JTk9S
KGlub2RlLT5pX3JkZXYpKQogCXsKIAkJY2FzZSBXQVRDSERPR19NSU5PUjoKLQkJCWlmKHdkdF9p
c19vcGVuKQorCQkJaWYodGVzdF9hbmRfc2V0X2JpdCgwLCAmd2R0X2lzX29wZW4pKQogCQkJCXJl
dHVybiAtRUJVU1k7CiAJCQkvKgogCQkJICoJQWN0aXZhdGUgCiAJCQkgKi8KIAkgCi0JCQl3ZHRf
aXNfb3Blbj0xOwogCQkJaW5iX3AoV0RUX0RDKTsJCS8qIERpc2FibGUgKi8KIAkJCXdkdF9jdHJf
bW9kZSgwLDMpOwogCQkJd2R0X2N0cl9tb2RlKDEsMik7CkBAIC0zODAsNyArMzc5LDcgQEAKIAkJ
aW5iX3AoV0RUX0RDKTsJCS8qIERpc2FibGUgY291bnRlcnMgKi8KIAkJd2R0X2N0cl9sb2FkKDIs
MCk7CS8qIDAgbGVuZ3RoIHJlc2V0IHB1bHNlcyBub3cgKi8KICNlbmRpZgkJCi0JCXdkdF9pc19v
cGVuPTA7CisJCWNsZWFyX2JpdCgwLCAmd2R0X2lzX29wZW4pOwogCX0KIAlyZXR1cm4gMDsKIH0K
ZGlmZiAtdSAtLW5ldy1maWxlIC0tcmVjdXJzaXZlIC0tZXhjbHVkZS1mcm9tIC91c3Ivc3JjL2V4
Y2x1ZGUgbGludXguMXAzL2RyaXZlcnMvY2hhci93ZHRfcGNpLmMgbGludXguYWMvZHJpdmVycy9j
aGFyL3dkdF9wY2kuYwotLS0gbGludXguMXAzL2RyaXZlcnMvY2hhci93ZHRfcGNpLmMJVGh1IE5v
diAyOSAwMToxODozMiAyMDAxCisrKyBsaW51eC5hYy9kcml2ZXJzL2NoYXIvd2R0X3BjaS5jCVRo
dSBOb3YgMjkgMDE6MjM6MTcgMjAwMQpAQCAtNzEsNyArNzEsNyBAQAogI2RlZmluZSBQQ0lfREVW
SUNFX0lEX1dER19DU00gMHgyMmMwCiAjZW5kaWYKIAotc3RhdGljIGludCB3ZHRfaXNfb3BlbjsK
K3N0YXRpYyB1bnNpZ25lZCBsb25nIHdkdF9pc19vcGVuOwogCiAvKgogICoJWW91IG11c3Qgc2V0
IHRoZXNlIC0gdGhlcmUgaXMgbm8gc2FuZSB3YXkgdG8gcHJvYmUgZm9yIHRoaXMgYm9hcmQuCg==

--------------Boundary-00=_1SRKCWC8TKES161HBROG--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/