From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Penchala Narasimha Reddy Chilakala, ERS-HCLTech" Subject: RE: [PATCH ] scsi-misc-2.6: File System going into read-only mode Date: Tue, 17 Nov 2009 10:52:30 +0530 Message-ID: <4F2B1A2459C7AD4D96A23CE911C352CB1E91552CD2@CHN-HCLT-EVS07.HCLT.CORP.HCL.IN> References: <1258386668.2517.7.camel@mulgrave.site> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_003_4F2B1A2459C7AD4D96A23CE911C352CB1E91552CD2CHNHCLTEVS07H_" Return-path: Received: from gws07.mail.hcl.in ([203.105.186.27]:59286 "EHLO gws07.hcl.in" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752289AbZKQFWc (ORCPT ); Tue, 17 Nov 2009 00:22:32 -0500 In-Reply-To: <1258386668.2517.7.camel@mulgrave.site> Content-Language: en-US Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: James Bottomley Cc: "'linux-scsi@vger.kernel.org'" , James Bottomley , ServeRAID Driver --_003_4F2B1A2459C7AD4D96A23CE911C352CB1E91552CD2CHNHCLTEVS07H_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi=20James, Please=20find=20the=20attached=20updated=20patch=20without=20the=20attemp= ted=20ioctl=20fib=20counting=20and=20make=20sure=20the=20patch=20would=20= come=20in=20the=20-rc.=20 Thanks, Narasimha=20Reddy -----Original=20Message----- From:=20James=20Bottomley=20[mailto:James.Bottomley@suse.de]=20 Sent:=20Monday,=20November=2016,=202009=209:21=20PM To:=20Penchala=20Narasimha=20Reddy=20Chilakala,=20ERS-HCLTech Cc:=20'linux-scsi@vger.kernel.org';=20James=20Bottomley;=20ServeRAID=20Dr= iver Subject:=20RE:=20[PATCH=20]=20scsi-misc-2.6:=20File=20System=20going=20in= to=20read-only=20mode On=20Mon,=202009-11-16=20at=2008:55=20+0530,=20Penchala=20Narasimha=20Red= dy=20Chilakala, ERS-HCLTech=20wrote: >=20Hi=20James, > >=20Thanks=20a=20lot=20for=20your=20nice=20review,=20feedback=20and=20sup= port=20so=20far.=20I=20hope >=20that=20we=20have=20sorted=20out=20all=20the=20issues=20raised=20by=20= you=20except=20the=20racy >=20issue. Yes=20...=20I=20think=20the=20race=20problem=20isn't=20particularly=20rel= evant=20to=20the bugs,=20so=20send=20me=20a=20patch=20without=20the=20attempted=20ioctl=20= fib=20counting=20and=20it can=20go=20into=20-rc=20...=20you=20can=20work=20on=20the=20fib=20countin= g=20later=20for scsi-misc. James DISCLAIMER: -------------------------------------------------------------------------= ---------------------------------------------- The=20contents=20of=20this=20e-mail=20and=20any=20attachment(s)=20are=20c= onfidential=20and=20intended=20for=20the=20named=20recipient(s)=20only.= =20 It=20shall=20not=20attach=20any=20liability=20on=20the=20originator=20or= =20HCL=20or=20its=20affiliates.=20Any=20views=20or=20opinions=20presented= =20in=20 this=20email=20are=20solely=20those=20of=20the=20author=20and=20may=20not= =20necessarily=20reflect=20the=20opinions=20of=20HCL=20or=20its=20affilia= tes.=20 Any=20form=20of=20reproduction,=20dissemination,=20copying,=20disclosure,= =20modification,=20distribution=20and=20/=20or=20publication=20of=20 this=20message=20without=20the=20prior=20written=20consent=20of=20the=20a= uthor=20of=20this=20e-mail=20is=20strictly=20prohibited.=20If=20you=20hav= e=20 received=20this=20email=20in=20error=20please=20delete=20it=20and=20notif= y=20the=20sender=20immediately.=20Before=20opening=20any=20mail=20and=20 attachments=20please=20check=20them=20for=20viruses=20and=20defect. -------------------------------------------------------------------------= ---------------------------------------------- --_003_4F2B1A2459C7AD4D96A23CE911C352CB1E91552CD2CHNHCLTEVS07H_ Content-Type: application/octet-stream; name="community_aac24701.email" Content-Description: community_aac24701.email Content-Disposition: attachment; filename="community_aac24701.email"; size=693; creation-date="Fri, 25 Sep 2009 14:22:04 GMT"; modification-date="Thu, 05 Nov 2009 17:02:10 GMT" Content-Transfer-Encoding: base64 ClRoaXMgYXR0YWNoZWQgcGF0Y2ggaXMgYWdhaW5zdCBjdXJyZW50IHNjc2ktbWlzYy0yLjYuCgpP YmxpZ2F0b3J5RGlzY2xhaW1lcjogUGxlYXNlIGFjY2VwdCBteSBjb25kb2xlbmNlcyByZWdhcmRp bmcgT3V0bG9vaydzIGhhbmRsaW5nIG9mIHBhdGNoIGF0dGFjaG1lbnRzLgoKU2lnbmVkLW9mZi1i eTogUGVuY2hhbGEgTmFyYXNpbWhhIFJlZGR5IDxTZXJ2ZVJBSUREcml2ZXJAaGNsLmluPgoKIGRy aXZlcnMvc2NzaS9hYWNyYWlkL2FhY2hiYS5jICAgfCAgIDUyICsrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL3Njc2kvYWFjcmFpZC9hYWNyYWlkLmggIHwgICAgNSAr Ky0KIGRyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1jdHJsLmMgfCAgIDM3ICsrKysrKysrKysrKysr Ky0tLS0tLS0tLS0KIGRyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1pbml0LmMgfCAgICA2ICsrKy0K IGRyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1zdXAuYyAgfCAgIDU5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvc2NzaS9hYWNyYWlkL2RwY3N1cC5jICAg fCAgIDM2ICsrKysrKysrKysrKysrKysrKysrLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5z ZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpTaW5jZXJlbHkgLSBQZW5jaGFsYSBOYXJhc2lt aGEgUmVkZHkK --_003_4F2B1A2459C7AD4D96A23CE911C352CB1E91552CD2CHNHCLTEVS07H_ Content-Type: application/octet-stream; name="community_aac24701.patch" Content-Description: community_aac24701.patch Content-Disposition: attachment; filename="community_aac24701.patch"; size=14706; creation-date="Fri, 25 Sep 2009 14:22:04 GMT"; modification-date="Thu, 05 Nov 2009 16:49:22 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtcHVyTiBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2FhY2hiYS5jIGIvZHJpdmVycy9zY3Np L2FhY3JhaWQvYWFjaGJhLmMKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFjaGJhLmMJMjAw OS0wOS0xMCAwMzo0Mzo1OS4wMDAwMDAwMDAgKzA1MzAKKysrIGIvZHJpdmVycy9zY3NpL2FhY3Jh aWQvYWFjaGJhLmMJMjAwOS0wOS0yNSAxMTo0MzoxMi4wMDAwMDAwMDAgKzA1MzAKQEAgLTI5Myw3 ICsyOTMsMTAgQEAgaW50IGFhY19nZXRfY29uZmlnX3N0YXR1cyhzdHJ1Y3QgYWFjX2RldgogCQkJ c3RhdHVzID0gLUVJTlZBTDsKIAkJfQogCX0KLQlhYWNfZmliX2NvbXBsZXRlKGZpYnB0cik7CisJ LyogRG8gbm90IHNldCBYZmVyU3RhdGUgdG8gemVybyB1bmxlc3MgcmVjZWl2ZXMgYSByZXNwb25z ZSBmcm9tIEYvVyAqLworCWlmIChzdGF0dXMgPj0gMCkKKwkJYWFjX2ZpYl9jb21wbGV0ZShmaWJw dHIpOworCiAJLyogU2VuZCBhIENUX0NPTU1JVF9DT05GSUcgdG8gZW5hYmxlIGRpc2NvdmVyeSBv ZiBkZXZpY2VzICovCiAJaWYgKHN0YXR1cyA+PSAwKSB7CiAJCWlmICgoYWFjX2NvbW1pdCA9PSAx KSB8fCBjb21taXRfZmxhZykgewpAQCAtMzEwLDEzICszMTMsMTggQEAgaW50IGFhY19nZXRfY29u ZmlnX3N0YXR1cyhzdHJ1Y3QgYWFjX2RldgogCQkJCSAgICBGc2FOb3JtYWwsCiAJCQkJICAgIDEs IDEsCiAJCQkJICAgIE5VTEwsIE5VTEwpOwotCQkJYWFjX2ZpYl9jb21wbGV0ZShmaWJwdHIpOwor CQkJLyogRG8gbm90IHNldCBYZmVyU3RhdGUgdG8gemVybyB1bmxlc3MKKwkJCSAqIHJlY2VpdmVz IGEgcmVzcG9uc2UgZnJvbSBGL1cgKi8KKwkJCWlmIChzdGF0dXMgPj0gMCkKKwkJCQlhYWNfZmli X2NvbXBsZXRlKGZpYnB0cik7CiAJCX0gZWxzZSBpZiAoYWFjX2NvbW1pdCA9PSAwKSB7CiAJCQlw cmludGsoS0VSTl9XQVJOSU5HCiAJCQkgICJhYWNfZ2V0X2NvbmZpZ19zdGF0dXM6IEZvcmVpZ24g ZGV2aWNlIGNvbmZpZ3VyYXRpb25zIGFyZSBiZWluZyBpZ25vcmVkXG4iKTsKIAkJfQogCX0KLQlh YWNfZmliX2ZyZWUoZmlicHRyKTsKKwkvKiBGSUIgc2hvdWxkIGJlIGZyZWVkIG9ubHkgYWZ0ZXIg Z2V0dGluZyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgRi9XICovCisJaWYgKHN0YXR1cyAhPSAtRVJF U1RBUlRTWVMpCisJCWFhY19maWJfZnJlZShmaWJwdHIpOwogCXJldHVybiBzdGF0dXM7CiB9CiAK QEAgLTM1NSw3ICszNjMsOSBAQCBpbnQgYWFjX2dldF9jb250YWluZXJzKHN0cnVjdCBhYWNfZGV2 ICpkCiAJCW1heGltdW1fbnVtX2NvbnRhaW5lcnMgPSBsZTMyX3RvX2NwdShkcmVzcC0+Q29udGFp bmVyU3dpdGNoRW50cmllcyk7CiAJCWFhY19maWJfY29tcGxldGUoZmlicHRyKTsKIAl9Ci0JYWFj X2ZpYl9mcmVlKGZpYnB0cik7CisJLyogRklCIHNob3VsZCBiZSBmcmVlZCBvbmx5IGFmdGVyIGdl dHRpbmcgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEYvVyAqLworCWlmIChzdGF0dXMgIT0gLUVSRVNU QVJUU1lTKQorCQlhYWNfZmliX2ZyZWUoZmlicHRyKTsKIAogCWlmIChtYXhpbXVtX251bV9jb250 YWluZXJzIDwgTUFYSU1VTV9OVU1fQ09OVEFJTkVSUykKIAkJbWF4aW11bV9udW1fY29udGFpbmVy cyA9IE1BWElNVU1fTlVNX0NPTlRBSU5FUlM7CkBAIC0xMjQ1LDggKzEyNTUsMTIgQEAgaW50IGFh Y19nZXRfYWRhcHRlcl9pbmZvKHN0cnVjdCBhYWNfZGV2KgogCQkJIE5VTEwpOwogCiAJaWYgKHJj b2RlIDwgMCkgewotCQlhYWNfZmliX2NvbXBsZXRlKGZpYnB0cik7Ci0JCWFhY19maWJfZnJlZShm aWJwdHIpOworCQkvKiBGSUIgc2hvdWxkIGJlIGZyZWVkIG9ubHkgYWZ0ZXIKKwkJICogZ2V0dGlu ZyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgRi9XICovCisJCWlmIChyY29kZSAhPSAtRVJFU1RBUlRT WVMpIHsKKwkJCWFhY19maWJfY29tcGxldGUoZmlicHRyKTsKKwkJCWFhY19maWJfZnJlZShmaWJw dHIpOworCQl9CiAJCXJldHVybiByY29kZTsKIAl9CiAJbWVtY3B5KCZkZXYtPmFkYXB0ZXJfaW5m bywgaW5mbywgc2l6ZW9mKCppbmZvKSk7CkBAIC0xMjcwLDYgKzEyODQsMTIgQEAgaW50IGFhY19n ZXRfYWRhcHRlcl9pbmZvKHN0cnVjdCBhYWNfZGV2KgogCiAJCWlmIChyY29kZSA+PSAwKQogCQkJ bWVtY3B5KCZkZXYtPnN1cHBsZW1lbnRfYWRhcHRlcl9pbmZvLCBzaW5mbywgc2l6ZW9mKCpzaW5m bykpOworCQlpZiAocmNvZGUgPT0gLUVSRVNUQVJUU1lTKSB7CisJCQlmaWJwdHIgPSBhYWNfZmli X2FsbG9jKGRldik7CisJCQlpZiAoIWZpYnB0cikKKwkJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQor CiAJfQogCiAKQEAgLTE0NzAsOSArMTQ5MCwxMSBAQCBpbnQgYWFjX2dldF9hZGFwdGVyX2luZm8o c3RydWN0IGFhY19kZXYqCiAJCQkgIChkZXYtPnNjc2lfaG9zdF9wdHItPnNnX3RhYmxlc2l6ZSAq IDgpICsgMTEyOwogCQl9CiAJfQotCi0JYWFjX2ZpYl9jb21wbGV0ZShmaWJwdHIpOwotCWFhY19m aWJfZnJlZShmaWJwdHIpOworCS8qIEZJQiBzaG91bGQgYmUgZnJlZWQgb25seSBhZnRlciBnZXR0 aW5nIHRoZSByZXNwb25zZSBmcm9tIHRoZSBGL1cgKi8KKwlpZiAocmNvZGUgIT0gLUVSRVNUQVJU U1lTKSB7CisJCWFhY19maWJfY29tcGxldGUoZmlicHRyKTsKKwkJYWFjX2ZpYl9mcmVlKGZpYnB0 cik7CisJfQogCiAJcmV0dXJuIHJjb2RlOwogfQpAQCAtMTYzMyw2ICsxNjU1LDcgQEAgc3RhdGlj IGludCBhYWNfcmVhZChzdHJ1Y3Qgc2NzaV9jbW5kICogcwogCSAqCUFsb2NhdGUgYW5kIGluaXRp YWxpemUgYSBGaWIKIAkgKi8KIAlpZiAoIShjbWRfZmliY29udGV4dCA9IGFhY19maWJfYWxsb2Mo ZGV2KSkpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYWFjX3JlYWQ6IGZpYiBhbGxvY2F0aW9u IGZhaWxlZFxuIik7CiAJCXJldHVybiAtMTsKIAl9CiAKQEAgLTE3MTIsOSArMTczNSwxNCBAQCBz dGF0aWMgaW50IGFhY193cml0ZShzdHJ1Y3Qgc2NzaV9jbW5kICogCiAJICoJQWxsb2NhdGUgYW5k IGluaXRpYWxpemUgYSBGaWIgdGhlbiBzZXR1cCBhIEJsb2NrV3JpdGUgY29tbWFuZAogCSAqLwog CWlmICghKGNtZF9maWJjb250ZXh0ID0gYWFjX2ZpYl9hbGxvYyhkZXYpKSkgewotCQlzY3NpY21k LT5yZXN1bHQgPSBESURfRVJST1IgPDwgMTY7Ci0JCXNjc2ljbWQtPnNjc2lfZG9uZShzY3NpY21k KTsKLQkJcmV0dXJuIDA7CisJCS8qIEZJQiB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZSxub3QgY2F0 YXN0cm9waGljIGZhaWx1cmUgKi8KKworCQkvKiBzY3NpY21kLT5yZXN1bHQgPSBESURfRVJST1Ig PDwgMTY7CisJCSAqIHNjc2ljbWQtPnNjc2lfZG9uZShzY3NpY21kKTsKKwkJICogcmV0dXJuIDA7 CisJCSAqLworCQlwcmludGsoS0VSTl9XQVJOSU5HICJhYWNfd3JpdGU6IGZpYiBhbGxvY2F0aW9u IGZhaWxlZFxuIik7CisJCXJldHVybiAtMTsKIAl9CiAKIAlzdGF0dXMgPSBhYWNfYWRhcHRlcl93 cml0ZShjbWRfZmliY29udGV4dCwgc2NzaWNtZCwgbGJhLCBjb3VudCwgZnVhKTsKZGlmZiAtcHVy TiBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2FhY3JhaWQuaCBiL2RyaXZlcnMvc2NzaS9hYWNyYWlk L2FhY3JhaWQuaAotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9hYWNyYWlkLmgJMjAwOS0wOS0x MCAwMzo0Mzo1OS4wMDAwMDAwMDAgKzA1MzAKKysrIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvYWFj cmFpZC5oCTIwMDktMDktMjUgMTI6MTM6NTUuMDAwMDAwMDAwICswNTMwCkBAIC0xMiw3ICsxMiw3 IEBACiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAjaWZuZGVmIEFBQ19EUklWRVJfQlVJTEQK LSMgZGVmaW5lIEFBQ19EUklWRVJfQlVJTEQgMjQ2MQorIyBkZWZpbmUgQUFDX0RSSVZFUl9CVUlM RCAyNDcwMQogIyBkZWZpbmUgQUFDX0RSSVZFUl9CUkFOQ0ggIi1tcyIKICNlbmRpZgogI2RlZmlu ZSBNQVhJTVVNX05VTV9DT05UQUlORVJTCTMyCkBAIC0xMDM2LDYgKzEwMzYsOSBAQCBzdHJ1Y3Qg YWFjX2RldgogCXU4CQkJcHJpbnRmX2VuYWJsZWQ7CiAJdTgJCQlpbl9yZXNldDsKIAl1OAkJCW1z aTsKKwlpbnQJCQltYW5hZ2VtZW50X2ZpYl9jb3VudDsKKwlzcGlubG9ja190CQltYW5hZ2VfbG9j azsKKwogfTsKIAogI2RlZmluZSBhYWNfYWRhcHRlcl9pbnRlcnJ1cHQoZGV2KSBcCmRpZmYgLXB1 ck4gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tY3RybC5jIGIvZHJpdmVycy9zY3NpL2FhY3Jh aWQvY29tbWN0cmwuYwotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tY3RybC5jCTIwMDkt MDktMTAgMDM6NDM6NTkuMDAwMDAwMDAwICswNTMwCisrKyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlk L2NvbW1jdHJsLmMJMjAwOS0wOS0yNSAxMjowNzo0NC4wMDAwMDAwMDAgKzA1MzAKQEAgLTE1Myw3 ICsxNTMsNyBAQCBjbGVhbnVwOgogCQlmaWJwdHItPmh3X2ZpYl9wYSA9IGh3X2ZpYl9wYTsKIAkJ ZmlicHRyLT5od19maWJfdmEgPSBod19maWI7CiAJfQotCWlmIChyZXR2YWwgIT0gLUVJTlRSKQor CWlmIChyZXR2YWwgIT0gLUVSRVNUQVJUU1lTKQogCQlhYWNfZmliX2ZyZWUoZmlicHRyKTsKIAly ZXR1cm4gcmV0dmFsOwogfQpAQCAtMzIyLDcgKzMyMiw3IEBAIHJldHVybl9maWI6CiAJCX0KIAkJ aWYgKGYud2FpdCkgewogCQkJaWYoZG93bl9pbnRlcnJ1cHRpYmxlKCZmaWJjdHgtPndhaXRfc2Vt KSA8IDApIHsKLQkJCQlzdGF0dXMgPSAtRUlOVFI7CisJCQkJc3RhdHVzID0gLUVSRVNUQVJUU1lT OwogCQkJfSBlbHNlIHsKIAkJCQkvKiBMb2NrIGFnYWluIGFuZCByZXRyeSAqLwogCQkJCXNwaW5f bG9ja19pcnFzYXZlKCZkZXYtPmZpYl9sb2NrLCBmbGFncyk7CkBAIC01OTMsMTAgKzU5MywxMCBA QCBzdGF0aWMgaW50IGFhY19zZW5kX3Jhd19zcmIoc3RydWN0IGFhY19kCiAJCQkJdTY0IGFkZHI7 CiAJCQkJdm9pZCogcDsKIAkJCQlpZiAodXBzZy0+c2dbaV0uY291bnQgPgotCQkJCSAgICAoZGV2 LT5hZGFwdGVyX2luZm8ub3B0aW9ucyAmCisJCQkJICAgICgoZGV2LT5hZGFwdGVyX2luZm8ub3B0 aW9ucyAmCiAJCQkJICAgICBBQUNfT1BUX05FV19DT01NKSA/CiAJCQkJICAgICAgKGRldi0+c2Nz aV9ob3N0X3B0ci0+bWF4X3NlY3RvcnMgPDwgOSkgOgotCQkJCSAgICAgIDY1NTM2KSB7CisJCQkJ ICAgICAgNjU1MzYpKSB7CiAJCQkJCXJjb2RlID0gLUVJTlZBTDsKIAkJCQkJZ290byBjbGVhbnVw OwogCQkJCX0KQEAgLTY0NSwxMCArNjQ1LDEwIEBAIHN0YXRpYyBpbnQgYWFjX3NlbmRfcmF3X3Ny YihzdHJ1Y3QgYWFjX2QKIAkJCQl1NjQgYWRkcjsKIAkJCQl2b2lkKiBwOwogCQkJCWlmICh1c2ct PnNnW2ldLmNvdW50ID4KLQkJCQkgICAgKGRldi0+YWRhcHRlcl9pbmZvLm9wdGlvbnMgJgorCQkJ CSAgICAoKGRldi0+YWRhcHRlcl9pbmZvLm9wdGlvbnMgJgogCQkJCSAgICAgQUFDX09QVF9ORVdf Q09NTSkgPwogCQkJCSAgICAgIChkZXYtPnNjc2lfaG9zdF9wdHItPm1heF9zZWN0b3JzIDw8IDkp IDoKLQkJCQkgICAgICA2NTUzNikgeworCQkJCSAgICAgIDY1NTM2KSkgewogCQkJCQlyY29kZSA9 IC1FSU5WQUw7CiAJCQkJCWdvdG8gY2xlYW51cDsKIAkJCQl9CkBAIC02OTUsMTAgKzY5NSwxMCBA QCBzdGF0aWMgaW50IGFhY19zZW5kX3Jhd19zcmIoc3RydWN0IGFhY19kCiAJCQkJdWludHB0cl90 IGFkZHI7CiAJCQkJdm9pZCogcDsKIAkJCQlpZiAodXNnLT5zZ1tpXS5jb3VudCA+Ci0JCQkJICAg IChkZXYtPmFkYXB0ZXJfaW5mby5vcHRpb25zICYKKwkJCQkgICAgKChkZXYtPmFkYXB0ZXJfaW5m by5vcHRpb25zICYKIAkJCQkgICAgIEFBQ19PUFRfTkVXX0NPTU0pID8KIAkJCQkgICAgICAoZGV2 LT5zY3NpX2hvc3RfcHRyLT5tYXhfc2VjdG9ycyA8PCA5KSA6Ci0JCQkJICAgICAgNjU1MzYpIHsK KwkJCQkgICAgICA2NTUzNikpIHsKIAkJCQkJcmNvZGUgPSAtRUlOVkFMOwogCQkJCQlnb3RvIGNs ZWFudXA7CiAJCQkJfQpAQCAtNzM0LDEwICs3MzQsMTAgQEAgc3RhdGljIGludCBhYWNfc2VuZF9y YXdfc3JiKHN0cnVjdCBhYWNfZAogCQkJCWRtYV9hZGRyX3QgYWRkcjsKIAkJCQl2b2lkKiBwOwog CQkJCWlmICh1cHNnLT5zZ1tpXS5jb3VudCA+Ci0JCQkJICAgIChkZXYtPmFkYXB0ZXJfaW5mby5v cHRpb25zICYKKwkJCQkgICAgKChkZXYtPmFkYXB0ZXJfaW5mby5vcHRpb25zICYKIAkJCQkgICAg IEFBQ19PUFRfTkVXX0NPTU0pID8KIAkJCQkgICAgICAoZGV2LT5zY3NpX2hvc3RfcHRyLT5tYXhf c2VjdG9ycyA8PCA5KSA6Ci0JCQkJICAgICAgNjU1MzYpIHsKKwkJCQkgICAgICA2NTUzNikpIHsK IAkJCQkJcmNvZGUgPSAtRUlOVkFMOwogCQkJCQlnb3RvIGNsZWFudXA7CiAJCQkJfQpAQCAtNzcy LDggKzc3Miw4IEBAIHN0YXRpYyBpbnQgYWFjX3NlbmRfcmF3X3NyYihzdHJ1Y3QgYWFjX2QKIAkJ cHNnLT5jb3VudCA9IGNwdV90b19sZTMyKHNnX2luZHgrMSk7CiAJCXN0YXR1cyA9IGFhY19maWJf c2VuZChTY3NpUG9ydENvbW1hbmQsIHNyYmZpYiwgYWN0dWFsX2ZpYnNpemUsIEZzYU5vcm1hbCwg MSwgMSwgTlVMTCwgTlVMTCk7CiAJfQotCWlmIChzdGF0dXMgPT0gLUVJTlRSKSB7Ci0JCXJjb2Rl ID0gLUVJTlRSOworCWlmIChzdGF0dXMgPT0gLUVSRVNUQVJUU1lTKSB7CisJCXJjb2RlID0gLUVS RVNUQVJUU1lTOwogCQlnb3RvIGNsZWFudXA7CiAJfQogCkBAIC04MTAsNyArODEwLDcgQEAgY2xl YW51cDoKIAlmb3IoaT0wOyBpIDw9IHNnX2luZHg7IGkrKyl7CiAJCWtmcmVlKHNnX2xpc3RbaV0p OwogCX0KLQlpZiAocmNvZGUgIT0gLUVJTlRSKSB7CisJaWYgKHJjb2RlICE9IC1FUkVTVEFSVFNZ UykgewogCQlhYWNfZmliX2NvbXBsZXRlKHNyYmZpYik7CiAJCWFhY19maWJfZnJlZShzcmJmaWIp OwogCX0KQEAgLTg0MiwxMyArODQyLDIyIEBAIHN0YXRpYyBpbnQgYWFjX2dldF9wY2lfaW5mbyhz dHJ1Y3QgYWFjX2QKIGludCBhYWNfZG9faW9jdGwoc3RydWN0IGFhY19kZXYgKiBkZXYsIGludCBj bWQsIHZvaWQgX191c2VyICphcmcpCiB7CiAJaW50IHN0YXR1czsKKwl1bnNpZ25lZCBsb25nIG1m bGFnczsKIAogCS8qCiAJICoJSEJBIGdldHMgZmlyc3QgY3JhY2sKIAkgKi8KIAorCXNwaW5fbG9j a19pcnFzYXZlKCZkZXYtPm1hbmFnZV9sb2NrLCBtZmxhZ3MpOworCWlmIChkZXYtPm1hbmFnZW1l bnRfZmliX2NvdW50ID4gQUFDX05VTV9NR1RfRklCKSB7CisJCXByaW50ayhLRVJOX0lORk8gIk5v IG1hbmFnZW1lbnQgRmlicyBBdmFpbGFibGU6JWRcbiIsCisJCQkJCQlkZXYtPm1hbmFnZW1lbnRf ZmliX2NvdW50KTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5tYW5hZ2VfbG9jaywg bWZsYWdzKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZGV2LT5tYW5hZ2VfbG9jaywgbWZsYWdzKTsKIAlzdGF0dXMgPSBhYWNfZGV2X2lvY3RsKGRldiwg Y21kLCBhcmcpOwotCWlmKHN0YXR1cyAhPSAtRU5PVFRZKQorCWlmIChzdGF0dXMgIT0gLUVOT1RU WSkKIAkJcmV0dXJuIHN0YXR1czsKIAogCXN3aXRjaCAoY21kKSB7CmRpZmYgLXB1ck4gYS9kcml2 ZXJzL3Njc2kvYWFjcmFpZC9jb21taW5pdC5jIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbWlu aXQuYwotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21taW5pdC5jCTIwMDktMDktMTAgMDM6 NDM6NTkuMDAwMDAwMDAwICswNTMwCisrKyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1pbml0 LmMJMjAwOS0wOS0yNSAxMTo1NDoyMy4wMDAwMDAwMDAgKzA1MzAKQEAgLTE5NCw3ICsxOTQsOSBA QCBpbnQgYWFjX3NlbmRfc2h1dGRvd24oc3RydWN0IGFhY19kZXYgKiBkCiAKIAlpZiAoc3RhdHVz ID49IDApCiAJCWFhY19maWJfY29tcGxldGUoZmliY3R4KTsKLQlhYWNfZmliX2ZyZWUoZmliY3R4 KTsKKwkvKiBGSUIgc2hvdWxkIGJlIGZyZWVkIG9ubHkgYWZ0ZXIgZ2V0dGluZyB0aGUgcmVzcG9u c2UgZnJvbSB0aGUgRi9XICovCisJaWYgKHN0YXR1cyAhPSAtRVJFU1RBUlRTWVMpCisJCWFhY19m aWJfZnJlZShmaWJjdHgpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTMwNCw2ICszMDYsOCBA QCBzdHJ1Y3QgYWFjX2RldiAqYWFjX2luaXRfYWRhcHRlcihzdHJ1Y3QgCiAJLyoKIAkgKglDaGVj ayB0aGUgcHJlZmVycmVkIGNvbW0gc2V0dGluZ3MsIGRlZmF1bHRzIGZyb20gdGVtcGxhdGUuCiAJ ICovCisJZGV2LT5tYW5hZ2VtZW50X2ZpYl9jb3VudCA9IDA7CisJc3Bpbl9sb2NrX2luaXQoJmRl di0+bWFuYWdlX2xvY2spOwogCWRldi0+bWF4X2ZpYl9zaXplID0gc2l6ZW9mKHN0cnVjdCBod19m aWIpOwogCWRldi0+c2dfdGFibGVzaXplID0gaG9zdC0+c2dfdGFibGVzaXplID0gKGRldi0+bWF4 X2ZpYl9zaXplCiAJCS0gc2l6ZW9mKHN0cnVjdCBhYWNfZmliaGRyKQpkaWZmIC1wdXJOIGEvZHJp dmVycy9zY3NpL2FhY3JhaWQvY29tbXN1cC5jIGIvZHJpdmVycy9zY3NpL2FhY3JhaWQvY29tbXN1 cC5jCi0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2NvbW1zdXAuYwkyMDA5LTA5LTEwIDAzOjQz OjU5LjAwMDAwMDAwMCArMDUzMAorKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9jb21tc3VwLmMJ MjAwOS0xMS0wNSAxNjo0OToxMy4wMDAwMDAwMDAgKzA1MzAKQEAgLTE4OSw3ICsxODksMTQgQEAg c3RydWN0IGZpYiAqYWFjX2ZpYl9hbGxvYyhzdHJ1Y3QgYWFjX2RldgogCiB2b2lkIGFhY19maWJf ZnJlZShzdHJ1Y3QgZmliICpmaWJwdHIpCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNp Z25lZCBsb25nIGZsYWdzLCBmbGFnc3Y7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZmlicHRyLT5l dmVudF9sb2NrLCBmbGFnc3YpOworCWlmIChmaWJwdHItPmRvbmUgPT0gMikgeworCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZmaWJwdHItPmV2ZW50X2xvY2ssIGZsYWdzdik7CisJCXJldHVybjsK Kwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZmlicHRyLT5ldmVudF9sb2NrLCBmbGFnc3Yp OwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZpYnB0ci0+ZGV2LT5maWJfbG9jaywgZmxhZ3MpOwog CWlmICh1bmxpa2VseShmaWJwdHItPmZsYWdzICYgRklCX0NPTlRFWFRfRkxBR19USU1FRF9PVVQp KQpAQCAtNDczLDE0ICs0ODAsMjcgQEAgaW50IGFhY19maWJfc2VuZCh1MTYgY29tbWFuZCwgc3Ry dWN0IGZpYgogCiAJaWYod2FpdCkKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmZpYnB0ci0+ZXZlbnRf bG9jaywgZmxhZ3MpOwotCWFhY19hZGFwdGVyX2RlbGl2ZXIoZmlicHRyKTsKKworCWlmIChhYWNf YWRhcHRlcl9kZWxpdmVyKGZpYnB0cikgIT0gMCkgeworCQlwcmludGsoS0VSTl9FUlIgImFhY19m aWJfc2VuZDogcmV0dXJuZWQgLUVCVVNZXG4iKTsKKwkJaWYgKHdhaXQpCisJCQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZmaWJwdHItPmV2ZW50X2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIC1FQlVT WTsKKwl9CisKIAogCS8qCiAJICoJSWYgdGhlIGNhbGxlciB3YW50ZWQgdXMgdG8gd2FpdCBmb3Ig cmVzcG9uc2Ugd2FpdCBub3cuCiAJICovCiAKIAlpZiAod2FpdCkgeworCQl1bnNpZ25lZCBsb25n IG1mbGFnczsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZmlicHRyLT5ldmVudF9sb2NrLCBm bGFncyk7CisKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+bWFuYWdlX2xvY2ssIG1mbGFncyk7 CisJCWRldi0+bWFuYWdlbWVudF9maWJfY291bnQrKzsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGV2LT5tYW5hZ2VfbG9jaywgbWZsYWdzKTsKKwogCQkvKiBPbmx5IHNldCBmb3IgZmlyc3Qg a25vd24gaW50ZXJydXB0YWJsZSBjb21tYW5kICovCiAJCWlmICh3YWl0IDwgMCkgewogCQkJLyoK QEAgLTUxNiwxNCArNTM2LDE1IEBAIGludCBhYWNfZmliX3NlbmQodTE2IGNvbW1hbmQsIHN0cnVj dCBmaWIKIAkJCQl1ZGVsYXkoNSk7CiAJCQl9CiAJCX0gZWxzZSBpZiAoZG93bl9pbnRlcnJ1cHRp YmxlKCZmaWJwdHItPmV2ZW50X3dhaXQpKSB7Ci0JCQlmaWJwdHItPmRvbmUgPSAyOwotCQkJdXAo JmZpYnB0ci0+ZXZlbnRfd2FpdCk7CisJCQkvKiBEbyBub3RoaW5nIC4uLiBzYXRpc2Z5CisJCQkg KiBkb3duX2ludGVycnVwdGlibGUgbXVzdF9jaGVjayAqLwogCQl9CisKIAkJc3Bpbl9sb2NrX2ly cXNhdmUoJmZpYnB0ci0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCQlpZiAoKGZpYnB0ci0+ZG9uZSA9 PSAwKSB8fCAoZmlicHRyLT5kb25lID09IDIpKSB7CisJCWlmIChmaWJwdHItPmRvbmUgPT0gMCkg ewogCQkJZmlicHRyLT5kb25lID0gMjsgLyogVGVsbCBpbnRlcnJ1cHQgd2UgYWJvcnRlZCAqLwog CQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZmlicHRyLT5ldmVudF9sb2NrLCBmbGFncyk7Ci0J CQlyZXR1cm4gLUVJTlRSOworCQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKIAkJfQogCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZmaWJwdHItPmV2ZW50X2xvY2ssIGZsYWdzKTsKIAkJQlVHX09OKGZp YnB0ci0+ZG9uZSA9PSAwKTsKQEAgLTY4OSw2ICs3MTAsNyBAQCBpbnQgYWFjX2ZpYl9hZGFwdGVy X2NvbXBsZXRlKHN0cnVjdCBmaWIgCiAKIGludCBhYWNfZmliX2NvbXBsZXRlKHN0cnVjdCBmaWIg KmZpYnB0cikKIHsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBod19maWIgKiBod19m aWIgPSBmaWJwdHItPmh3X2ZpYl92YTsKIAogCS8qCkBAIC03MDksNiArNzMxLDEzIEBAIGludCBh YWNfZmliX2NvbXBsZXRlKHN0cnVjdCBmaWIgKmZpYnB0cikKIAkgKgljb21tYW5kIGlzIGNvbXBs ZXRlIHRoYXQgd2UgaGFkIHNlbnQgdG8gdGhlIGFkYXB0ZXIgYW5kIHRoaXMKIAkgKgljZGIgY291 bGQgYmUgcmV1c2VkLgogCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZmaWJwdHItPmV2ZW50X2xv Y2ssIGZsYWdzKTsKKwlpZiAoZmlicHRyLT5kb25lID09IDIpIHsKKwkJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmZmlicHRyLT5ldmVudF9sb2NrLCBmbGFncyk7CisJCXJldHVybiAwOworCX0KKwlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZmaWJwdHItPmV2ZW50X2xvY2ssIGZsYWdzKTsKKwogCWlm KChod19maWItPmhlYWRlci5YZmVyU3RhdGUgJiBjcHVfdG9fbGUzMihTZW50RnJvbUhvc3QpKSAm JgogCQkoaHdfZmliLT5oZWFkZXIuWGZlclN0YXRlICYgY3B1X3RvX2xlMzIoQWRhcHRlclByb2Nl c3NlZCkpKQogCXsKQEAgLTEzNTUsNyArMTM4NCwxMCBAQCBpbnQgYWFjX3Jlc2V0X2FkYXB0ZXIo c3RydWN0IGFhY19kZXYgKiBhCiAKIAkJCWlmIChzdGF0dXMgPj0gMCkKIAkJCQlhYWNfZmliX2Nv bXBsZXRlKGZpYmN0eCk7Ci0JCQlhYWNfZmliX2ZyZWUoZmliY3R4KTsKKwkJCS8qIEZJQiBzaG91 bGQgYmUgZnJlZWQgb25seSBhZnRlciBnZXR0aW5nCisJCQkgKiB0aGUgcmVzcG9uc2UgZnJvbSB0 aGUgRi9XICovCisJCQlpZiAoc3RhdHVzICE9IC1FUkVTVEFSVFNZUykKKwkJCQlhYWNfZmliX2Zy ZWUoZmliY3R4KTsKIAkJfQogCX0KIApAQCAtMTc1OSw2ICsxNzkxLDcgQEAgaW50IGFhY19jb21t YW5kX3RocmVhZCh2b2lkICpkYXRhKQogCQkJCXN0cnVjdCBmaWIgKmZpYnB0cjsKIAogCQkJCWlm ICgoZmlicHRyID0gYWFjX2ZpYl9hbGxvYyhkZXYpKSkgeworCQkJCQlpbnQgc3RhdHVzOwogCQkJ CQlfX2xlMzIgKmluZm87CiAKIAkJCQkJYWFjX2ZpYl9pbml0KGZpYnB0cik7CkBAIC0xNzY5LDE1 ICsxODAyLDIxIEBAIGludCBhYWNfY29tbWFuZF90aHJlYWQodm9pZCAqZGF0YSkKIAogCQkJCQkq aW5mbyA9IGNwdV90b19sZTMyKG5vdy50dl9zZWMpOwogCi0JCQkJCSh2b2lkKWFhY19maWJfc2Vu ZChTZW5kSG9zdFRpbWUsCisJCQkJCXN0YXR1cyA9IGFhY19maWJfc2VuZChTZW5kSG9zdFRpbWUs CiAJCQkJCQlmaWJwdHIsCiAJCQkJCQlzaXplb2YoKmluZm8pLAogCQkJCQkJRnNhTm9ybWFsLAog CQkJCQkJMSwgMSwKIAkJCQkJCU5VTEwsCiAJCQkJCQlOVUxMKTsKLQkJCQkJYWFjX2ZpYl9jb21w bGV0ZShmaWJwdHIpOwotCQkJCQlhYWNfZmliX2ZyZWUoZmlicHRyKTsKKwkJCQkJLyogRG8gbm90 IHNldCBYZmVyU3RhdGUgdG8gemVybyB1bmxlc3MKKwkJCQkJICogcmVjZWl2ZXMgYSByZXNwb25z ZSBmcm9tIEYvVyAqLworCQkJCQlpZiAoc3RhdHVzID49IDApCisJCQkJCQlhYWNfZmliX2NvbXBs ZXRlKGZpYnB0cik7CisJCQkJCS8qIEZJQiBzaG91bGQgYmUgZnJlZWQgb25seSBhZnRlcgorCQkJ CQkgKiBnZXR0aW5nIHRoZSByZXNwb25zZSBmcm9tIHRoZSBGL1cgKi8KKwkJCQkJaWYgKHN0YXR1 cyAhPSAtRVJFU1RBUlRTWVMpCisJCQkJCQlhYWNfZmliX2ZyZWUoZmlicHRyKTsKIAkJCQl9CiAJ CQkJZGlmZmVyZW5jZSA9IChsb25nKSh1bnNpZ25lZCl1cGRhdGVfaW50ZXJ2YWwqSFo7CiAJCQl9 IGVsc2UgewpkaWZmIC1wdXJOIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvZHBjc3VwLmMgYi9kcml2 ZXJzL3Njc2kvYWFjcmFpZC9kcGNzdXAuYwotLS0gYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9kcGNz dXAuYwkyMDA5LTA5LTEwIDAzOjQzOjU5LjAwMDAwMDAwMCArMDUzMAorKysgYi9kcml2ZXJzL3Nj c2kvYWFjcmFpZC9kcGNzdXAuYwkyMDA5LTA5LTI1IDEyOjA4OjQ0LjAwMDAwMDAwMCArMDUzMApA QCAtNTcsOSArNTcsOSBAQCB1bnNpZ25lZCBpbnQgYWFjX3Jlc3BvbnNlX25vcm1hbChzdHJ1Y3Qg CiAJc3RydWN0IGh3X2ZpYiAqIGh3ZmliOwogCXN0cnVjdCBmaWIgKiBmaWI7CiAJaW50IGNvbnN1 bWVkID0gMDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIG1m bGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKHEtPmxvY2ssIGZsYWdzKTsJCisJc3Bpbl9sb2Nr X2lycXNhdmUocS0+bG9jaywgZmxhZ3MpOwogCS8qCiAJICoJS2VlcCBwdWxsaW5nIHJlc3BvbnNl IFFFcyBvZmYgdGhlIHJlc3BvbnNlIHF1ZXVlIGFuZCB3YWtpbmcKIAkgKgl1cCB0aGUgd2FpdGVy cyB1bnRpbCB0aGVyZSBhcmUgbm8gbW9yZSBRRXMuIFdlIHRoZW4gcmV0dXJuCkBAIC0xMjUsMTIg KzEyNSwyMSBAQCB1bnNpZ25lZCBpbnQgYWFjX3Jlc3BvbnNlX25vcm1hbChzdHJ1Y3QgCiAJCX0g ZWxzZSB7CiAJCQl1bnNpZ25lZCBsb25nIGZsYWd2OwogCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmZp Yi0+ZXZlbnRfbG9jaywgZmxhZ3YpOwotCQkJaWYgKCFmaWItPmRvbmUpCisJCQlpZiAoIWZpYi0+ ZG9uZSkgewogCQkJCWZpYi0+ZG9uZSA9IDE7Ci0JCQl1cCgmZmliLT5ldmVudF93YWl0KTsKKwkJ CQl1cCgmZmliLT5ldmVudF93YWl0KTsKKwkJCX0KIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmZpYi0+ZXZlbnRfbG9jaywgZmxhZ3YpOworCisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5t YW5hZ2VfbG9jaywgbWZsYWdzKTsKKwkJCWRldi0+bWFuYWdlbWVudF9maWJfY291bnQtLTsKKwkJ CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+bWFuYWdlX2xvY2ssIG1mbGFncyk7CisKIAkJ CUZJQl9DT1VOVEVSX0lOQ1JFTUVOVChhYWNfY29uZmlnLk5vcm1hbFJlY3ZlZCk7CiAJCQlpZiAo ZmliLT5kb25lID09IDIpIHsKKwkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmZmliLT5ldmVudF9sb2Nr LCBmbGFndik7CisJCQkJZmliLT5kb25lID0gMDsKKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZmaWItPmV2ZW50X2xvY2ssIGZsYWd2KTsKIAkJCQlhYWNfZmliX2NvbXBsZXRlKGZpYik7CiAJ CQkJYWFjX2ZpYl9mcmVlKGZpYik7CiAJCQl9CkBAIC0yMzIsNiArMjQxLDcgQEAgdW5zaWduZWQg aW50IGFhY19jb21tYW5kX25vcm1hbChzdHJ1Y3QgYQogCiB1bnNpZ25lZCBpbnQgYWFjX2ludHJf bm9ybWFsKHN0cnVjdCBhYWNfZGV2ICogZGV2LCB1MzIgaW5kZXgpCiB7CisJdW5zaWduZWQgbG9u ZyBtZmxhZ3M7CiAJZHByaW50aygoS0VSTl9JTkZPICJhYWNfaW50cl9ub3JtYWwoJXAsJXgpXG4i LCBkZXYsIGluZGV4KSk7CiAJaWYgKChpbmRleCAmIDB4MDAwMDAwMDJMKSkgewogCQlzdHJ1Y3Qg aHdfZmliICogaHdfZmliOwpAQCAtMzIwLDExICszMzAsMjUgQEAgdW5zaWduZWQgaW50IGFhY19p bnRyX25vcm1hbChzdHJ1Y3QgYWFjXwogCQkJdW5zaWduZWQgbG9uZyBmbGFndjsKIAkgIAkJZHBy aW50aygoS0VSTl9JTkZPICJldmVudF93YWl0IHVwXG4iKSk7CiAJCQlzcGluX2xvY2tfaXJxc2F2 ZSgmZmliLT5ldmVudF9sb2NrLCBmbGFndik7Ci0JCQlpZiAoIWZpYi0+ZG9uZSkKKwkJCWlmICgh ZmliLT5kb25lKSB7CiAJCQkJZmliLT5kb25lID0gMTsKLQkJCXVwKCZmaWItPmV2ZW50X3dhaXQp OworCQkJCXVwKCZmaWItPmV2ZW50X3dhaXQpOworCQkJfQogCQkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZmliLT5ldmVudF9sb2NrLCBmbGFndik7CisKKwkJCXNwaW5fbG9ja19pcnFzYXZlKCZk ZXYtPm1hbmFnZV9sb2NrLCBtZmxhZ3MpOworCQkJZGV2LT5tYW5hZ2VtZW50X2ZpYl9jb3VudC0t OworCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5tYW5hZ2VfbG9jaywgbWZsYWdzKTsK KwogCQkJRklCX0NPVU5URVJfSU5DUkVNRU5UKGFhY19jb25maWcuTm9ybWFsUmVjdmVkKTsKKwkJ CWlmIChmaWItPmRvbmUgPT0gMikgeworCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZmaWItPmV2ZW50 X2xvY2ssIGZsYWd2KTsKKwkJCQlmaWItPmRvbmUgPSAwOworCQkJCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmZpYi0+ZXZlbnRfbG9jaywgZmxhZ3YpOworCQkJCWFhY19maWJfY29tcGxldGUoZmli KTsKKwkJCQlhYWNfZmliX2ZyZWUoZmliKTsKKwkJCX0KKwogCQl9CiAJCXJldHVybiAwOwogCX0K --_003_4F2B1A2459C7AD4D96A23CE911C352CB1E91552CD2CHNHCLTEVS07H_--