Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 29 Nov 2001 13:39:25 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 29 Nov 2001 13:39:23 -0500 Received: from sproxy.gmx.net ([213.165.64.20]:45592 "HELO mail.gmx.net") by vger.kernel.org with SMTP id ; Thu, 29 Nov 2001 13:38:19 -0500 From: Slo Mo Snail Reply-To: slomosnail@gmx.net To: Dirk Pritsch Subject: Re: oops with 2.5.1-pre3 in ide-scsi module Date: Thu, 29 Nov 2001 19:38:25 +0100 X-Mailer: KMail [version 1.3.2] In-Reply-To: <20011129191938.A1402@Enterprise.in-berlin.de> In-Reply-To: <20011129191938.A1402@Enterprise.in-berlin.de> Cc: linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="------------Boundary-00=_1SRKCWC8TKES161HBROG" Message-Id: <20011129183857Z283388-17409+20874@vger.kernel.org> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --------------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 > > > > 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/