Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937387AbWLDU7F (ORCPT ); Mon, 4 Dec 2006 15:59:05 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S937389AbWLDU7F (ORCPT ); Mon, 4 Dec 2006 15:59:05 -0500 Received: from outbound-cpk.frontbridge.com ([207.46.163.16]:45025 "EHLO outbound2-cpk-R.bigfish.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937386AbWLDU7B (ORCPT ); Mon, 4 Dec 2006 15:59:01 -0500 X-BigFish: VP X-Server-Uuid: 89466532-923C-4A88-82C1-66ACAA0041DF X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Subject: RE: [RFC][PATCH 2/2] x86_64: earlyprintk usb debug device support. Date: Mon, 4 Dec 2006 12:52:30 -0800 Message-ID: <5986589C150B2F49A46483AC44C7BCA4907281@ssvlexmb2.amd.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [RFC][PATCH 2/2] x86_64: earlyprintk usb debug device support. Thread-Index: AccX48fl9YSttVs7R2ycoFGPyd55WwAAYJgw From: "Lu, Yinghai" To: ebiederm@xmission.com, "Greg KH" cc: "USB development list" , "Stefan Reinauer" , "Peter Stuge" , linuxbios@linuxbios.org, linux-kernel@vger.kernel.org, "Andi Kleen" X-OriginalArrivalTime: 04 Dec 2006 20:52:32.0085 (UTC) FILETIME=[1E412050:01C717E6] X-WSS-ID: 696A55051WC2057859-01-01 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C717E6.1D538422" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 21732 Lines: 319 This is a multi-part message in MIME format. ------_=_NextPart_001_01C717E6.1D538422 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Eric, Please check the version I modified for LinuxBIOS from your usbdebug_direct. Put the related info in struct ehci_debug_info { void *ehci_base; void *ehci_op_base; void *ehci_debug_base; unsigned devnum; unsigned endpoint_out; unsigned endpoint_in; int inited; }; So for CAR stage code, I could put it the range after stack and easy to retrieve. YH ------_=_NextPart_001_01C717E6.1D538422 Content-Type: application/octet-stream; name=usbdebug_direct.h Content-Transfer-Encoding: base64 Content-Description: usbdebug_direct.h Content-Disposition: attachment; filename=usbdebug_direct.h I2lmbmRlZiBVU0JERUJVR19ESVJFQ1RfSAojZGVmaW5lIFVTQkRFQlVHX0RJUkVDVF9ICgpzdHJ1 Y3QgZWhjaV9kZWJ1Z19pbmZvIHsKICAgICAgICB2b2lkICplaGNpX2Jhc2U7CiAgICAgICAgdm9p ZCAqZWhjaV9vcF9iYXNlOwogICAgICAgIHZvaWQgKmVoY2lfZGVidWdfYmFzZTsKICAgICAgICB1 bnNpZ25lZCBkZXZudW07CiAgICAgICAgdW5zaWduZWQgZW5kcG9pbnRfb3V0OwogICAgICAgIHVu c2lnbmVkIGVuZHBvaW50X2luOwoJaW50IGluaXRlZDsKfTsKZXh0ZXJuIGludCB1c2JfYnVsa193 cml0ZV94KHN0cnVjdCBlaGNpX2RlYnVnX2luZm8gKmRiZ19pbmZvLCBjb25zdCBjaGFyICpieXRl cywgaW50IHNpemUpOwpleHRlcm4gaW50IHVzYl9idWxrX3JlYWRfeChzdHJ1Y3QgZWhjaV9kZWJ1 Z19pbmZvICpkYmdfaW5mbywgdm9pZCAqZGF0YSwgaW50IHNpemUpOwpleHRlcm4gaW50IHVzYmRl YnVnX2RpcmVjdF9pbml0KHVuc2lnbmVkIGVoY2lfYmFyLCB1bnNpZ25lZCBlaGNpX2RlYnVnX29m ZnNldCwgc3RydWN0IGVoY2lfZGVidWdfaW5mbyAqZGJnX2luZm8pOwpleHRlcm4gdm9pZCBzZXRf ZWhjaV9iYXNlKHVuc2lnbmVkIGVoY2lfYmFzZSk7CiNlbmRpZgo= ------_=_NextPart_001_01C717E6.1D538422 Content-Type: application/octet-stream; name=usbdebug_direct.c Content-Transfer-Encoding: base64 Content-Description: usbdebug_direct.c Content-Disposition: attachment; filename=usbdebug_direct.c LyoKICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMgQmllZGVybWFuIChlYmllZGVybUB4bWlzc2lv bi5jb20pCiAqCiAqCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKICoJbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgogKgkyIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKi8KI2lmbmRlZiBfX1JPTUNDX18KI2luY2x1 ZGUgPGNvbnNvbGUvY29uc29sZS5oPgojZWxzZQojaWYgQ09ORklHX1VTRV9QUklOVEtfSU5fQ0FS PT0wCiNkZWZpbmUgcHJpbnRrX2RlYnVnKGZtdCwgYXJnLi4uKSAgIGRvIHt9IHdoaWxlKDApCiNl bmRpZgojZW5kaWYKCgojaW5jbHVkZSA8YXJjaC9pby5oPgoKI2luY2x1ZGUgPHVzYmRlYnVnX2Rp cmVjdC5oPgoKLy8jZGVmaW5lIEVIQ0lfQkFSIDB4YmZjZTAwMDAKI2RlZmluZSBFSENJX0JBUl9C WVRFUyA0MDk2Ci8vI2RlZmluZSBFSENJX0RFQlVHX09GRlNFVCAweDk4CgovKiBPZmYgb2YgZWhj aV9iYXNlICovCiNkZWZpbmUgRUhDSV9DQVBMRU5HVEgJCTB4MDAKI2RlZmluZSBFSENJX0hDSVZF UlNJT04JCTB4MDIKI2RlZmluZSBFSENJX0hDU1BBUkFNUwkJMHgwNAojZGVmaW5lIEVIQ0lfSEND UEFSQU1TCQkweDA4CiNkZWZpbmUgRUhDSV9IQ1NQX1BPUlRST1VURQkweDBjCi8qIE9mZiBvZiBl aGNpX29wX2Jhc2UgKi8KI2RlZmluZSBFSENJX1VTQkNNRAkJMHgwMAojZGVmaW5lICBFSENJX1VT QkNNRF9SVU4JCSgxIDw8IDApCiNkZWZpbmUgRUhDSV9VU0JTVFMJCTB4MDQKI2RlZmluZSAgRUhD SV9VU0JTVFNfSENIQUxURUQJCSgxIDw8IDEyKQojZGVmaW5lIEVIQ0lfVVNCSU5UUgkJMHgwOAoj ZGVmaW5lIEVIQ0lfRlJJTkRFWAkJMHgwYwojZGVmaW5lIEVIQ0lfQ1RSTERTU0VHTUVOVAkweDEw CiNkZWZpbmUgRUhDSV9QRVJJT0RJQ0xJU1RCQVNFCTB4MTQKI2RlZmluZSBFSENJX0FTWU5DTElT VEFERFIJMHgxOAojZGVmaW5lIEVIQ0lfQ09ORklHRkxBRwkJMHg0MAojZGVmaW5lICBFSENJX0NP TkZJR0ZMQUdfRkxBRwkJKDEgPDwgMCkKI2RlZmluZSBFSENJX1BPUlRTQwkJMHg0NAojZGVmaW5l ICBFSENJX1BPUlRTQ19QT1JUX09XTkVSCQkJKDEgPDwgMTMpCiNkZWZpbmUgIEVIQ0lfUE9SVFND X1BPUlRfUkVTRVQJCQkoMSA8PCAxMikKI2RlZmluZSAgRUhDSV9QT1JUU0NfUE9SVF9FTkFCTEVE CQkoMSA8PCAyKQojZGVmaW5lICBFSENJX1BPUlRTQ19DT05ORUNUX1NUQVRVU19DSEFOR0VECSgx IDw8IDEpCiNkZWZpbmUgIEVIQ0lfUE9SVFNDX0NPTk5FQ1RFRAkJCSgxIDw8IDApCi8qIE9mZiBv ZiBlaGNpX2RlYnVnX2Jhc2UgKi8KI2RlZmluZSBFSENJX0NUUkwJMHgwMAojZGVmaW5lICBFSENJ X0NUUkxfT1dORVIJCQkoMSA8PCAzMCkKI2RlZmluZSAgRUhDSV9DVFJMX0VOQUJMRUQJCQkoMSA8 PCAyOCkKI2RlZmluZSAgRUhDSV9DVFJMX0RPTkUJCQkJKDEgPDwgMTYpCiNkZWZpbmUgIEVIQ0lf Q1RSTF9JTlVTRQkJCSgxIDw8IDEwKQojZGVmaW5lICBFSENJX0NUUkxfRVhDRVBUSU9OX01BU0sJ CTcKI2RlZmluZSAgRUhDSV9DVFJMX0VYQ0VQVElPTl9TSElGVAkJNwojZGVmaW5lICBFSENJX0NU UkxfRVhDRVBUSU9OX05PTkUJCTAKI2RlZmluZSAgRUhDSV9DVFJMX0VYQ0VQVElPTl9UUkFOU0FD VElPTgkxCiNkZWZpbmUgIEVIQ0lfQ1RSTF9FWENFUFRJT05fSEFSRFdBUkUJCTIKI2RlZmluZSAg RUhDSV9DVFJMX0VSUk9SCQkJKDEgPDwgNikKI2RlZmluZSAgRUhDSV9DVFJMX0dPCQkJCSgxIDw8 IDUpCiNkZWZpbmUgIEVIQ0lfQ1RSTF9XUklURQkJCSgxIDw8IDQpCiNkZWZpbmUgIEVIQ0lfQ1RS TF9MRU5HVEhfTUFTSwkJCSgweGYgPDwgMCkKI2RlZmluZSBFSENJX1BJRAkJMHgwNAojZGVmaW5l ICBFSENJX1BJRF9SRUNFSVZFRF9TSElGVAkxNgojZGVmaW5lICBFSENJX1BJRF9TRU5EX1NISUZU CQk4CiNkZWZpbmUgIEVIQ0lfUElEX1RPS0VOX1NISUZUCQkwCiNkZWZpbmUgRUhDSV9EQVRBMAkw eDA4CiNkZWZpbmUgRUhDSV9EQVRBMQkweDBjCiNkZWZpbmUgRUhDSV9BRERSCTB4MTAKI2RlZmlu ZSAgRUhDSV9BRERSX0RFVk5VTV9TSElGVCAgIDgKI2RlZmluZSAgRUhDSV9BRERSX0VORFBPSU5U X1NISUZUIDAKI2RlZmluZSBNS1BJRCh4KSAoKCh4KSAmIDB4ZikgfCAoKH4oeCkgJiAweGYpIDw8 IDQpKQovKiB0b2tlbiAqLwojZGVmaW5lIFBJRF9PVVQJTUtQSUQoMHgxKQojZGVmaW5lIFBJRF9J TglNS1BJRCgweDkpCiNkZWZpbmUgUElEX1NPRglNS1BJRCgweDUpCiNkZWZpbmUgUElEX1NFVFVQ CU1LUElEKDB4ZCkKLyogZGF0YSAqLwojZGVmaW5lIFBJRF9EQVRBMAlNS1BJRCgweDMpCiNkZWZp bmUgUElEX0RBVEExCU1LUElEKDB4YikKI2RlZmluZSBQSURfREFUQTIJTUtQSUQoMHg3KQojZGVm aW5lIFBJRF9NREFUQQlNS1BJRCgweGYpCiNkZWZpbmUgUElEX0RBVEFfVE9HR0xFCSgweDg4KQov KiBoYW5kc2hha2UgKi8KI2RlZmluZSBQSURfQUNLCU1LUElEKDB4MikKI2RlZmluZSBQSURfTkFL CU1LUElEKDB4YSkKI2RlZmluZSBQSURfU1RBTEwJTUtQSUQoMHhlKQojZGVmaW5lIFBJRF9OWUVU CU1LUElEKDB4NikKLyogU3BlY2lhbCAqLwojZGVmaW5lIFBJRF9QUkUJTUtQSUQoMHhjKQojZGVm aW5lIFBJRF9FUlIJTUtQSUQoMHhjKQojZGVmaW5lIFBJRF9TUExJVAlNS1BJRCgweDgpCiNkZWZp bmUgUElEX1BJTkcJTUtQSUQoMHg0KQojZGVmaW5lIFBJRF9SRVNFUlZFRAlNS1BJRCgweDApCi8q CiAqIFN0YW5kYXJkIHJlcXVlc3RzCiAqLwojZGVmaW5lIFVTQl9SRVFfR0VUX1NUQVRVUyAgICAg ICAgICAgICAgMHgwMAojZGVmaW5lIFVTQl9SRVFfQ0xFQVJfRkVBVFVSRSAgICAgICAgICAgMHgw MQovKiAweDAyIGlzIHJlc2VydmVkICovCiNkZWZpbmUgVVNCX1JFUV9TRVRfRkVBVFVSRSAgICAg ICAgICAgICAweDAzCi8qIDB4MDQgaXMgcmVzZXJ2ZWQgKi8KI2RlZmluZSBVU0JfUkVRX1NFVF9B RERSRVNTICAgICAgICAgICAgIDB4MDUKI2RlZmluZSBVU0JfUkVRX0dFVF9ERVNDUklQVE9SICAg ICAgICAgIDB4MDYKI2RlZmluZSBVU0JfUkVRX1NFVF9ERVNDUklQVE9SICAgICAgICAgIDB4MDcK I2RlZmluZSBVU0JfUkVRX0dFVF9DT05GSUdVUkFUSU9OICAgICAgIDB4MDgKI2RlZmluZSBVU0Jf UkVRX1NFVF9DT05GSUdVUkFUSU9OICAgICAgIDB4MDkKI2RlZmluZSBVU0JfUkVRX0dFVF9JTlRF UkZBQ0UgICAgICAgICAgIDB4MEEKI2RlZmluZSBVU0JfUkVRX1NFVF9JTlRFUkZBQ0UgICAgICAg ICAgIDB4MEIKI2RlZmluZSBVU0JfUkVRX1NZTkNIX0ZSQU1FICAgICAgICAgICAgIDB4MEMKI2Rl ZmluZSBVU0JfVFlQRV9TVEFOREFSRAkoMHgwMCA8PCA1KQojZGVmaW5lIFVTQl9UWVBFX0NMQVNT CQkoMHgwMSA8PCA1KQojZGVmaW5lIFVTQl9UWVBFX1ZFTkRPUgkJKDB4MDIgPDwgNSkKI2RlZmlu ZSBVU0JfVFlQRV9SRVNFUlZFRAkoMHgwMyA8PCA1KQoKI2RlZmluZSBVU0JfUkVDSVBfREVWSUNF ICAgICAgICAgICAgICAgIDB4MDAKI2RlZmluZSBVU0JfUkVDSVBfSU5URVJGQUNFICAgICAgICAg ICAgIDB4MDEKI2RlZmluZSBVU0JfUkVDSVBfRU5EUE9JTlQgICAgICAgICAgICAgIDB4MDIKI2Rl ZmluZSBVU0JfUkVDSVBfT1RIRVIgICAgICAgICAgICAgICAgIDB4MDMKCi8qCiAqIFZhcmlvdXMg bGlidXNiIEFQSSByZWxhdGVkIHN0dWZmCiAqLwojZGVmaW5lIFVTQl9FTkRQT0lOVF9JTiAgICAg ICAgICAgICAgICAgMHg4MAojZGVmaW5lIFVTQl9FTkRQT0lOVF9PVVQgICAgICAgICAgICAgICAg MHgwMAoKI2lmbmRlZiBVU0JfRFRfREVCVUcKI2RlZmluZSBVU0JfRFRfREVCVUcJMTAKI2VuZGlm CiNpZm5kZWYgVVNCX0ZUX0RFQlVHX01PREUKI2RlZmluZSBVU0JfRlRfREVCVUdfTU9ERQk2CiNl bmRpZiAKCnN0cnVjdCB1c2JfZGVidWdfZGVzY3JpcHRvciB7Cgl1aW50OF90CWJMZW5ndGg7Cgl1 aW50OF90IGJEZXNjcmlwdG9yVHlwZTsKCXVpbnQ4X3QgYkRlYnVnSW5FbmRwb2ludDsKCXVpbnQ4 X3QgYkRlYnVnT3V0RW5kcG9pbnQ7Cn0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwpzdHJ1Y3Qg dXNiX3N0YXR1cyB7Cgl1aW50MTZfdCBzdGF0dXM7Cn0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkp OwoKc3RydWN0IHVzYl9yZXF1ZXN0IHsKCXVpbnQ4X3QgIGJtUmVxdWVzdFR5cGU7Cgl1aW50OF90 ICBiUmVxdWVzdDsKCXVpbnQxNl90IHdWYWx1ZTsKCXVpbnQxNl90IHdJbmRleDsKCXVpbnQxNl90 IHdMZW5ndGg7Cn0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwpzdGF0aWMgaW50IHVzYl93YWl0 X3VudGlsX2NvbXBsZXRlKHZvaWQgKmVoY2lfZGVidWdfYmFzZSkKewoJdW5zaWduZWQgY3RybDsK CWZvciAoOzspIHsKCQljdHJsID0gcmVhZGwoZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9DVFJMKTsK CQkvKiBTdG9wIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGZpbmlzaGVkICovCgkJaWYgKGN0cmwg JiBFSENJX0NUUkxfRE9ORSkKCQkJYnJlYWs7Cgl9CgkvKiBOb3cgdGhhdCB3ZSBoYXZlIG9ic2Vy dmVkIHRoZSBjb21wbGV0ZWQgdHJhbnNhY3Rpb24sCgkgKiBjbGVhciB0aGUgZG9uZSBiaXQuCgkg Ki8KCXdyaXRlbChjdHJsIHwgRUhDSV9DVFJMX0RPTkUsIGVoY2lfZGVidWdfYmFzZSArIEVIQ0lf Q1RSTCk7CglyZXR1cm4gKGN0cmwgJiBFSENJX0NUUkxfRVJST1IpID8gCgkJLSgoY3RybCA+PiBF SENJX0NUUkxfRVhDRVBUSU9OX1NISUZUKSAmIEVIQ0lfQ1RSTF9FWENFUFRJT05fTUFTSyk6CgkJ Y3RybCAmIDB4ZjsKfQpzdGF0aWMgdm9pZCB1c2JfYnJlYXRoKHZvaWQpCnsKLy8gd2l0aCBvdXRf cG9ydCA4MD8gaW4gQ0FSIHN0YWdlCi8vIG9yIHRzYz8KCW1kZWxheSgxMCk7Cn0Kc3RhdGljIGlu dCB1c2Jfd2FpdF91bnRpbF9kb25lKHZvaWQgKmVoY2lfZGVidWdfYmFzZSwgdW5zaWduZWQgY3Ry bCkKewoJdW5zaWduZWQgcGlkcywgbHBpZDsKCWludCByZXQ7CnJldHJ5OgoJd3JpdGVsKGN0cmwg fCBFSENJX0NUUkxfR08sIGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfQ1RSTCk7CglyZXQgPSB1c2Jf d2FpdF91bnRpbF9jb21wbGV0ZShlaGNpX2RlYnVnX2Jhc2UpOwoJcGlkcyA9IHJlYWRsKGVoY2lf ZGVidWdfYmFzZSArIEVIQ0lfUElEKTsKCWxwaWQgPSAocGlkcyA+PiBFSENJX1BJRF9SRUNFSVZF RF9TSElGVCkgJiAweGZmOwojaWYgMQoJaWYgKChyZXQgPj0gMCkgJiYgbHBpZCAhPSBQSURfQUNL KQoJCXByaW50a19kZWJ1ZygibHBpZDogJTAyeCByZXQ6ICVkXG4iLCBscGlkLCByZXQpOwojZW5k aWYKCWlmIChyZXQgPCAwKQoJCXJldHVybiByZXQ7CgkvKiBJZiB0aGUgcG9ydCBpcyBnZXR0aW5n IGZ1bGwgb3IgaXQgaGFzIGRyb3BwZWQgZGF0YQoJICogc3RhcnQgcGFjaW5nIG91cnNlbHZlcywg bm90IG5lY2Vzc2FyeSBidXQgaXQncyBmcmllbmRseS4KCSAqLwoJaWYgKChscGlkID09IFBJRF9O QUspIHx8IChscGlkID09IFBJRF9OWUVUKSkKCQl1c2JfYnJlYXRoKCk7CgkvKiBJZiBJIGdldCBh IE5BQ0sgcmVpc3N1ZSB0aGUgdHJhbnNtaXNzaW9uICovCglpZiAobHBpZCA9PSBQSURfTkFLKQoJ CWdvdG8gcmV0cnk7CglyZXR1cm4gcmV0Owp9CnN0YXRpYyB2b2lkIHVzYl9zZXRfZGF0YSh2b2lk ICplaGNpX2RlYnVnX2Jhc2UsIGNvbnN0IHZvaWQgKmJ1ZiwgaW50IHNpemUpCnsKCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmJ5dGVzID0gYnVmOwoJdWludDMyX3QgbG8sIGhpOwoJaW50IGk7CglsbyA9 IGhpID0gMDsKCWZvciAoaSA9IDA7IGkgPCA0ICYmIGkgPCBzaXplOyBpKyspCgkJbG8gfD0gYnl0 ZXNbaV0gPDwgKDgqaSk7Cglmb3IgKDsgaSA8IDggJiYgaSA8IHNpemU7IGkrKykKCQloaSB8PSBi eXRlc1tpXSA8PCAoOCooaSAtIDQpKTsKCXdyaXRlbChsbywgZWhjaV9kZWJ1Z19iYXNlICsgRUhD SV9EQVRBMCk7Cgl3cml0ZWwoaGksIGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfREFUQTEpOwp9CnN0 YXRpYyB2b2lkIHVzYl9nZXRfZGF0YSh2b2lkICplaGNpX2RlYnVnX2Jhc2UsIHZvaWQgKmJ1Ziwg aW50IHNpemUpCnsKCXVuc2lnbmVkIGNoYXIgKmJ5dGVzID0gYnVmOwoJdWludDMyX3QgbG8sIGhp OwoJaW50IGk7CglsbyA9IHJlYWRsKGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfREFUQTApOwoJaGkg PSByZWFkbChlaGNpX2RlYnVnX2Jhc2UgKyBFSENJX0RBVEExKTsKI2lmIDAKCXByaW50ZigiZGF0 YTogJTA4eCUwOHhcbiIsIGhpLCBsbyk7CiNlbmRpZgoJZm9yIChpID0gMDsgaSA8IDQgJiYgaSA8 IHNpemU7IGkrKykKCQlieXRlc1tpXSA9IChsbyA+PiAoOCppKSkgJiAweGZmOwoJZm9yICg7IGkg PCA4ICYmIGkgPCBzaXplOyBpKyspCgkJYnl0ZXNbaV0gPSAoaGkgPj4gKDgqKGkgLSA0KSkpICYg MHhmZjsKfQpzdGF0aWMgaW50IHVzYl9idWxrX3dyaXRlKHZvaWQgKmVoY2lfZGVidWdfYmFzZSwg aW50IGFkZHJlc3MsIGludCBlbmRwb2ludCwgY29uc3QgY2hhciAqYnl0ZXMsIGludCBzaXplKQp7 Cgl1bnNpZ25lZCBwaWRzLCBhZGRyLCBjdHJsOwoJaW50IHJldDsKCWlmIChzaXplID4gOCkKCQly ZXR1cm4gLTE7CglhZGRyID0gKChhZGRyZXNzICYgMHg3ZikgPDwgRUhDSV9BRERSX0RFVk5VTV9T SElGVCkgfCAoZW5kcG9pbnQgJiAweGYpOwoJcGlkcyA9IHJlYWRsKGVoY2lfZGVidWdfYmFzZSAr IEVIQ0lfUElEKTsKCXBpZHMgJj0gfigweGZmIDw8IEVIQ0lfUElEX1RPS0VOX1NISUZUKTsKCXBp ZHMgfD0gUElEX09VVCA8PCBFSENJX1BJRF9UT0tFTl9TSElGVDsKCXBpZHMgXj0gKFBJRF9EQVRB X1RPR0dMRSA8PCBFSENJX1BJRF9TRU5EX1NISUZUKTsKCWN0cmwgPSByZWFkbChlaGNpX2RlYnVn X2Jhc2UgKyBFSENJX0NUUkwpOwoJY3RybCAmPSB+RUhDSV9DVFJMX0xFTkdUSF9NQVNLOwoJY3Ry bCB8PSBFSENJX0NUUkxfV1JJVEU7CgljdHJsIHw9IHNpemUgJiBFSENJX0NUUkxfTEVOR1RIX01B U0s7CgljdHJsIHw9IEVIQ0lfQ1RSTF9HTzsKCXVzYl9zZXRfZGF0YShlaGNpX2RlYnVnX2Jhc2Us IGJ5dGVzLCBzaXplKTsKCXdyaXRlbChhZGRyLCBlaGNpX2RlYnVnX2Jhc2UgKyBFSENJX0FERFIp OwoJd3JpdGVsKHBpZHMsIGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfUElEKTsKCglyZXQgPSB1c2Jf d2FpdF91bnRpbF9kb25lKGVoY2lfZGVidWdfYmFzZSwgY3RybCk7CglpZiAocmV0IDwgMCkgewoJ CXByaW50a19kZWJ1Zygib3V0IGZhaWxlZCE6ICVkXG4iLCByZXQpOwoJCXJldHVybiByZXQ7Cgl9 CglyZXR1cm4gcmV0Owp9CmludCB1c2JfYnVsa193cml0ZV94KHN0cnVjdCBlaGNpX2RlYnVnX2lu Zm8gKmRiZ19pbmZvLCBjb25zdCBjaGFyICpieXRlcywgaW50IHNpemUpCnsKCXJldHVybiB1c2Jf YnVsa193cml0ZShkYmdfaW5mby0+ZWhjaV9kZWJ1Z19iYXNlLCBkYmdfaW5mby0+ZGV2bnVtLCBk YmdfaW5mby0+ZW5kcG9pbnRfb3V0LCBieXRlcywgc2l6ZSk7Cn0Kc3RhdGljIGludCB1c2JfYnVs a19yZWFkKHZvaWQgKmVoY2lfZGVidWdfYmFzZSwgaW50IGFkZHJlc3MsIGludCBlbmRwb2ludCwg dm9pZCAqZGF0YSwgaW50IHNpemUpCnsKCXVuc2lnbmVkIHBpZHMsIGFkZHIsIGN0cmw7CglpbnQg cmV0OwoJaWYgKHNpemUgPiA4KQoJCXJldHVybiAtMTsKCWFkZHIgPSAoKGFkZHJlc3MgJiAweDdm KSA8PCBFSENJX0FERFJfREVWTlVNX1NISUZUKSB8IChlbmRwb2ludCAmIDB4Zik7CglwaWRzID0g cmVhZGwoZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9QSUQpOwoJcGlkcyAmPSB+KDB4ZmYgPDwgRUhD SV9QSURfVE9LRU5fU0hJRlQpOwoJcGlkcyB8PSBQSURfSU4gPDwgRUhDSV9QSURfVE9LRU5fU0hJ RlQ7CglwaWRzIF49IChQSURfREFUQV9UT0dHTEUgPDwgRUhDSV9QSURfU0VORF9TSElGVCk7Cglj dHJsID0gcmVhZGwoZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9DVFJMKTsKCWN0cmwgJj0gfkVIQ0lf Q1RSTF9MRU5HVEhfTUFTSzsKCWN0cmwgJj0gfkVIQ0lfQ1RSTF9XUklURTsKCWN0cmwgfD0gc2l6 ZSAmIEVIQ0lfQ1RSTF9MRU5HVEhfTUFTSzsKCWN0cmwgfD0gRUhDSV9DVFJMX0dPOwoJd3JpdGVs KGFkZHIsIGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfQUREUik7Cgl3cml0ZWwocGlkcywgZWhjaV9k ZWJ1Z19iYXNlICsgRUhDSV9QSUQpOwoJcmV0ID0gdXNiX3dhaXRfdW50aWxfZG9uZShlaGNpX2Rl YnVnX2Jhc2UsIGN0cmwpOwoJaWYgKHJldCA8IDApIHsKCQlwcmludGtfZGVidWcoImluIGZhaWxl ZCE6ICVkXG4iLCByZXQpOwoJCXJldHVybiByZXQ7Cgl9CglpZiAoc2l6ZSA+IHJldCkKCQlzaXpl ID0gcmV0OwoJdXNiX2dldF9kYXRhKGVoY2lfZGVidWdfYmFzZSwgZGF0YSwgc2l6ZSk7CglyZXR1 cm4gcmV0Owp9CgppbnQgdXNiX2J1bGtfcmVhZF94KHN0cnVjdCBlaGNpX2RlYnVnX2luZm8gKmRi Z19pbmZvLCB2b2lkICpkYXRhLCBpbnQgc2l6ZSkKewoJcmV0dXJuIHVzYl9idWxrX3JlYWQoZGJn X2luZm8tPmVoY2lfZGVidWdfYmFzZSwgZGJnX2luZm8tPmRldm51bSwgZGJnX2luZm8tPmVuZHBv aW50X2luLCBkYXRhLCBzaXplKTsKfQoKc3RhdGljIGludCB1c2JfY29udHJvbF9tc2codm9pZCAq ZWhjaV9kZWJ1Z19iYXNlLCBpbnQgYWRkcmVzcywgaW50IHJlcXVlc3R0eXBlLCBpbnQgcmVxdWVz dCwgCglpbnQgdmFsdWUsIGludCBpbmRleCwgdm9pZCAqZGF0YSwgaW50IHNpemUpCnsKCXVuc2ln bmVkIHBpZHMsIGFkZHIsIGN0cmw7CglzdHJ1Y3QgdXNiX3JlcXVlc3QgcmVxOwoJaW50IHJlYWQ7 CglpbnQgcmV0OwoJcmVhZCA9IChyZXF1ZXN0dHlwZSAmIFVTQl9FTkRQT0lOVF9JTikgIT0gMDsK CWlmIChzaXplID4gKHJlYWQ/ODowKSkKCQlyZXR1cm4gLTE7CgkvKiBDb21wdXRlIHRoZSBjb250 cm9sIG1lc3NhZ2UgKi8KCXJlcS5ibVJlcXVlc3RUeXBlID0gcmVxdWVzdHR5cGU7CglyZXEuYlJl cXVlc3QgPSByZXF1ZXN0OwoJcmVxLndWYWx1ZSA9IHZhbHVlOwoJcmVxLndJbmRleCA9IGluZGV4 OwoJcmVxLndMZW5ndGggPSBzaXplOwoJcGlkcyA9IFBJRF9TRVRVUCA8PCBFSENJX1BJRF9UT0tF Tl9TSElGVDsKCXBpZHMgfD0gUElEX0RBVEEwIDw8IEVIQ0lfUElEX1NFTkRfU0hJRlQ7CglhZGRy ID0gKChhZGRyZXNzICYgMHg3ZikgPDwgRUhDSV9BRERSX0RFVk5VTV9TSElGVCkgfCAwOwoJY3Ry bCA9IHJlYWRsKGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfQ1RSTCk7CgljdHJsICY9IH5FSENJX0NU UkxfTEVOR1RIX01BU0s7CgljdHJsIHw9IEVIQ0lfQ1RSTF9XUklURTsKCWN0cmwgfD0gc2l6ZW9m KHJlcSkgJiBFSENJX0NUUkxfTEVOR1RIX01BU0s7CgljdHJsIHw9IEVIQ0lfQ1RSTF9HTzsKCS8q IFNlbmQgdGhlIHNldHVwIG1lc3NhZ2UgKi8KCXVzYl9zZXRfZGF0YShlaGNpX2RlYnVnX2Jhc2Us ICZyZXEsIHNpemVvZihyZXEpKTsKCXdyaXRlbChhZGRyLCBlaGNpX2RlYnVnX2Jhc2UgKyBFSENJ X0FERFIpOwoJd3JpdGVsKHBpZHMsIGVoY2lfZGVidWdfYmFzZSArIEVIQ0lfUElEKTsKCXJldCA9 IHVzYl93YWl0X3VudGlsX2RvbmUoZWhjaV9kZWJ1Z19iYXNlLCBjdHJsKTsKCWlmIChyZXQgPCAw KSB7CgkJLy9wcmludGtfZGVidWcoInNldHVwIGZhaWxlZCE6ICVkXG4iLCByZXQpOwoJCXJldHVy biByZXQ7Cgl9CgoJLyogUmVhZCB0aGUgcmVzdWx0ICovCglyZXQgPSB1c2JfYnVsa19yZWFkKGVo Y2lfZGVidWdfYmFzZSwgYWRkcmVzcywgMCwgZGF0YSwgc2l6ZSk7CiNpZiAwCglwaWRzID0gcmVh ZGwoZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9QSUQpOwoJcHJpbnRmKCJmaW5hbCBwaWRzOiAlMDh4 IHJldDogJWQsIHNpemU6ICVkXG4iLCBwaWRzLCByZXQsIHNpemUpOwojZW5kaWYKCXJldHVybiBy ZXQ7Cn0Kc3RhdGljIGludCB1c2JfY29udHJvbF9tc2cwKHZvaWQgKmVoY2lfZGVidWdfYmFzZSwg aW50IGFkZHJlc3MsIGludCByZXF1ZXN0dHlwZSwgaW50IHJlcXVlc3QsIAoJaW50IHZhbHVlLCBp bnQgaW5kZXgpCnsKCXJldHVybiB1c2JfY29udHJvbF9tc2coZWhjaV9kZWJ1Z19iYXNlLCBhZGRy ZXNzLCByZXF1ZXN0dHlwZSwgcmVxdWVzdCwgdmFsdWUsIGluZGV4LCAodm9pZCAqKTAsIDApOwp9 CmludCB1c2JkZWJ1Z19kaXJlY3RfaW5pdCh1bnNpZ25lZCBlaGNpX2JhciwgdW5zaWduZWQgZWhj aV9kZWJ1Z19vZmZzZXQsIHN0cnVjdCBlaGNpX2RlYnVnX2luZm8gKmRiZ19pbmZvKQp7Cgl2b2lk ICplaGNpX2Jhc2UsICplaGNpX29wX2Jhc2UsICplaGNpX2RlYnVnX2Jhc2U7CgoJc3RydWN0IHVz Yl9kZWJ1Z19kZXNjcmlwdG9yIGRlYnVnOwoJdW5zaWduZWQgZW5kcG9pbnRfb3V0LCBlbmRwb2lu dF9pbjsKCXVuc2lnbmVkIGRldm51bTsKCXVuc2lnbmVkIGhjc3BhcmFtczsKCXVuc2lnbmVkIGRl YnVnX3BvcnQsIG5fcG9ydHM7Cgl1bnNpZ25lZCB2YWw7CglpbnQgcmVzdWx0ID0gLTE7CglpbnQg cmV0LCBpOwoKCWVoY2lfYmFzZSA9IGVoY2lfYmFyOwoJdmFsID0gcmVhZGIoZWhjaV9iYXNlICsg RUhDSV9DQVBMRU5HVEgpOwoJZWhjaV9vcF9iYXNlID0gZWhjaV9iYXNlICsgdmFsOwoJZWhjaV9k ZWJ1Z19iYXNlID0gZWhjaV9iYXNlICsgZWhjaV9kZWJ1Z19vZmZzZXQ7CgoJaGNzcGFyYW1zID0g cmVhZGwoZWhjaV9iYXNlICsgRUhDSV9IQ1NQQVJBTVMpOwoJZGVidWdfcG9ydCA9IChoY3NwYXJh bXMgPj4gMjApICYgMHhmOwoJbl9wb3J0cyA9IGhjc3BhcmFtcyAmIDB4ZjsKCglwcmludGtfZGVi dWcoImRlYnVnX3BvcnQ6ICVkXG4iLCBkZWJ1Z19wb3J0KTsKCXByaW50a19kZWJ1Zygibl9wb3J0 czogICAgJWRcbiIsIG5fcG9ydHMpOwoKCWZvciAoaSA9IDE7IGkgPD0gbl9wb3J0czsgaSsrKSB7 CgkJdmFsID0gcmVhZGwoZWhjaV9vcF9iYXNlICsgRUhDSV9QT1JUU0MgKyAoNCooaSAtIDEpKSk7 CgkJcHJpbnRrX2RlYnVnKCJwb3J0c2MlZDogJTA4eFxuIiwgaSwgdmFsKTsKCX0KCiNkZWZpbmUg RUhDSV9DVFJMX0NMQUlNIChFSENJX0NUUkxfT1dORVIgfCBFSENJX0NUUkxfRU5BQkxFRCB8IEVI Q0lfQ1RSTF9JTlVTRSkKCXZhbCAgPSByZWFkbChlaGNpX2RlYnVnX2Jhc2UgKyBFSENJX0NUUkwp OwoJcHJpbnRrX2RlYnVnKCJjdHJsOiAlMDR4XG4iLCB2YWwpOwoJd3JpdGVsKHZhbCB8IEVIQ0lf Q1RSTF9DTEFJTSwgZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9DVFJMKTsKCXZhbCAgPSByZWFkbChl aGNpX2RlYnVnX2Jhc2UgKyBFSENJX0NUUkwpOwoJcHJpbnRrX2RlYnVnKCJjdHJsOiAlMDR4XG4i LCB2YWwpOwoJaWYgKCh2YWwgJiBFSENJX0NUUkxfQ0xBSU0pICE9IEVIQ0lfQ1RSTF9DTEFJTSkg ewoJCXByaW50a19kZWJ1ZygiTm8gZGV2aWNlIGluIGRlYnVnIHBvcnRcbiIpOwoJCXdyaXRlbCh2 YWwgJiB+RUhDSV9DVFJMX0NMQUlNLCBlaGNpX2RlYnVnX2Jhc2UgKyBFSENJX0NUUkwpOwoJCXJl dHVybiAtMTsKCX0KCglwcmludGtfZGVidWcoIkZpbmQgdGhlIGRlYnVnIGRldmljZSFcbiIpOwoK CS8qIEZpbmQgdGhlIGRlYnVnIGRldmljZSBhbmQgbWFrZSBpdCBkZXZpY2UgbnVtYmVyIDEyNyAq LwoJZm9yIChkZXZudW0gPSAwOyBkZXZudW0gPD0gMTI3OyBkZXZudW0rKykgewoJCS8vcHJpbnRm KCJkZXZudW06ICVkXG4iLCBkZXZudW0pOwoJCXJldCA9IHVzYl9jb250cm9sX21zZyhlaGNpX2Rl YnVnX2Jhc2UsIGRldm51bSwgCgkJCVVTQl9FTkRQT0lOVF9JTiB8IFVTQl9UWVBFX1NUQU5EQVJE IHwgVVNCX1JFQ0lQX0RFVklDRSwKCQkJVVNCX1JFUV9HRVRfREVTQ1JJUFRPUiwgKFVTQl9EVF9E RUJVRyA8PCA4KSwgMCwKCQkJJmRlYnVnLCBzaXplb2YoZGVidWcpKTsKCQlpZiAocmV0ID4gMCkK CQkJYnJlYWs7Cgl9CglpZiAoZGV2bnVtID4gMTI3KSB7CgkJcHJpbnRrX2RlYnVnKCJDb3VsZCBu b3QgZmluZCBhdHRhY2hlZCBkZWJ1ZyBkZXZpY2VcbiIpOwoJCWdvdG8gZXJyOwoJfQoJaWYgKHJl dCA8IDApIHsKCQlwcmludGtfZGVidWcoIkF0dGFjaCBkZXZpY2UgaXMgbm90IGEgZGVidWcgZGV2 aWNlXG4iKTsKCQlnb3RvIGVycjsKCX0KCXByaW50a19kZWJ1ZygiZGV2bnVtOiAlZFxuIiwgZGV2 bnVtKTsKCWVuZHBvaW50X291dCA9IGRlYnVnLmJEZWJ1Z091dEVuZHBvaW50OwoJZW5kcG9pbnRf aW4gPSBkZWJ1Zy5iRGVidWdJbkVuZHBvaW50OwoJCgkKCgkvKiBNb3ZlIHRoZSBkZXZpY2UgdG8g MTI3IGlmIGl0IGlzbid0IGFscmVhZHkgdGhlcmUgKi8KCWlmIChkZXZudW0gIT0gMTI3KSB7CgkJ cmV0ID0gdXNiX2NvbnRyb2xfbXNnMChlaGNpX2RlYnVnX2Jhc2UsIGRldm51bSwKCQkJVVNCX1RZ UEVfU1RBTkRBUkQgfCBVU0JfUkVDSVBfREVWSUNFLAoJCQlVU0JfUkVRX1NFVF9BRERSRVNTLCAx MjcsIDApOwoJCXByaW50a19kZWJ1Zygic2V0X2FkZHJlc3M6ICVkXG4iLCByZXQpOwoJCWlmIChy ZXQgPCAwKSB7CgkJCXByaW50a19kZWJ1ZygiQ291bGQgbm90IG1vdmUgYXR0YWNoZWQgZGV2aWNl IHRvIDEyN1xuIik7CgkJCWdvdG8gZXJyOwoJCX0KCQlkZXZudW0gPSAxMjc7Cgl9CgkvKiBFbmFi bGUgdGhlIGRlYnVnIGludGVyZmFjZSAqLwoJcmV0ID0gdXNiX2NvbnRyb2xfbXNnMChlaGNpX2Rl YnVnX2Jhc2UsIGRldm51bSwgVVNCX1RZUEVfU1RBTkRBUkQgfCBVU0JfUkVDSVBfREVWSUNFLAoJ CVVTQl9SRVFfU0VUX0ZFQVRVUkUsIFVTQl9GVF9ERUJVR19NT0RFLCAwKTsKCXByaW50a19kZWJ1 Zygic2V0X2ZlYXR1cmVfZGVidWdfbW9kZTogJWRcbiIsIHJldCk7CglpZiAocmV0IDwgMCkgewoJ CXByaW50a19kZWJ1ZygiIENvdWxkIG5vdCBlbmFibGUgdGhlIGRlYnVnIGRldmljZVxuIik7CgkJ Z290byBlcnI7Cgl9CgoJZGJnX2luZm8tPmVoY2lfYmFzZSA9IGVoY2lfYmFzZTsKCWRiZ19pbmZv LT5laGNpX29wX2Jhc2UgPSBlaGNpX29wX2Jhc2U7CglkYmdfaW5mby0+ZWhjaV9kZWJ1Z19iYXNl ID0gZWhjaV9kZWJ1Z19iYXNlOwoJZGJnX2luZm8tPmRldm51bSA9IGRldm51bTsKCWRiZ19pbmZv LT5lbmRwb2ludF9vdXQgPSBlbmRwb2ludF9vdXQ7CglkYmdfaW5mby0+ZW5kcG9pbnRfaW4gPSBl bmRwb2ludF9pbjsKI2lmIDAKCXsKCQkvL3Vuc2lnbmVkIGRldm51bSA9IDI7CgkJLy91bnNpZ25l ZCBlbmRwb2ludF9vdXQgPSAxOwoJCS8vdW5zaWduZWQgZW5kcG9pbnRfaW4gPSAweDgyOwoJCWNo YXIgKnRlc3Rfc3RyaW5nc1tdID0gewoJCQkiemVybzAwMFxuIiwKCQkJIm9uZTExMTFcbiIsCgkJ CSJ0d28yMjIyXG4iLAoJCQkidGhyZWUzM1xuIiwKCQkJImZvdXI0NDRcbiIsCgkJCSJmaXZlNTU1 XG4iLAoJCQkic2l4NjY2NlxuIiwKCQkJInNldmVuNzdcbiIsCgkJCSJlaWdodDg4XG4iLAoJCQki bmluZTk5OVxuIiwKCQkJInRlbmFhYWFcbiIsCgkJCSJlbGV2ZW5iXG4iLAoJCQkodm9pZCAqKTAs CgkJfTsKCQljaGFyICoqcHRyOwoJCS8qIFBlcmZvcm0gYSBzbWFsbCB3cml0ZSB0byBnZXQgdGhl IGV2ZW4vb2RkIGRhdGEgc3RhdGUgaW4gc3luYwoJCSAqLwoJCXJldCA9IHVzYl9idWxrX3dyaXRl KGVoY2lfZGVidWdfYmFzZSwgZGV2bnVtLCBlbmRwb2ludF9vdXQsICIgIiwxKTsKCQlwcmludGtf ZGVidWcoInVzYl9idWxrX3dyaXRlOiAlZFxuIiwgcmV0KTsKCQkvKiBXcml0ZSB0aGUgdGVzdCBt ZXNzYWdlcyAqLwoJCWZvciAocHRyID0gdGVzdF9zdHJpbmdzOyAqcHRyOyBwdHIrKykgewoJCQkv KiBXcml0ZSBhIHRlc3QgbWVzc2FnZSAqLwoJCQlyZXQgPSB1c2JfYnVsa193cml0ZShlaGNpX2Rl YnVnX2Jhc2UsIGRldm51bSwgZW5kcG9pbnRfb3V0LAoJCQkJKnB0ciwgOCk7CgkJCXByaW50a19k ZWJ1ZygidXNiX2J1bGtfd3JpdGU6ICVkXG4iLCByZXQpOwoJCX0KCX0KI2VuZGlmCiNpZiAwCgkv KiBSZWFkIHNvbWUgdGVzdCBtZXNzYWdlcyAqLwoJZm9yICg7OykgewoJCWNoYXIgYnVmWzhdOwoJ CXJldCA9IHVzYl9idWxrX3JlYWQoZWhjaV9kZWJ1Z19iYXNlLCBkZXZudW0sIGVuZHBvaW50X2lu LCAKCQkJYnVmLCBzaXplb2YoYnVmKSk7CgkJaWYgKHJldCA+IDApCgkJCXByaW50a19kZWJ1Zygi JWQ6JSouKnMiLCByZXQsIHJldCwgcmV0LCBidWYpOwoJfQojZW5kaWYKI2lmIDAKCWZvciAoaSA9 IDA7IGkgPCAyNTY7IGkrPTEpIHsKCQl2YWwgPSByZWFkYihlaGNpX2Jhc2UgKyBpKTsKCQlwcmlu dGtfZGVidWcoIiUwMnggIiwgdmFsKTsKCQlpZiAoKGkgJiAweGYpID09IDB4ZikKCQkJcHJpbnRr X2RlYnVnKCJcbiIpOwoJfQoJcHJpbnRrX2RlYnVnKCJcbiIpOwojZW5kaWYKCXJlc3VsdCA9IDA7 CglkYmdfaW5mby0+aW5pdGVkID0gMTsKCXJldHVybiByZXN1bHQ7CmVycjoKI2lmZGVmIEVIQ0lf Q1RSTF9DTEFJTQoJdmFsID0gcmVhZGwoZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9DVFJMKTsKCXBy aW50a19kZWJ1ZygiY3RybDogJTA4eFxuIiwgdmFsKTsKCXZhbCAmPSB+KEVIQ0lfQ1RSTF9DTEFJ TSB8IEVIQ0lfQ1RSTF9XUklURSk7Cgl3cml0ZWwodmFsLCBlaGNpX2RlYnVnX2Jhc2UgKyBFSENJ X0NUUkwpOwoJdmFsID0gcmVhZGwoZWhjaV9kZWJ1Z19iYXNlICsgRUhDSV9DVFJMKTsKCXByaW50 a19kZWJ1ZygiY3RybDogJTA4eFxuIiwgdmFsKTsKI2VuZGlmCglyZXR1cm4gcmVzdWx0Owp9Cg== ------_=_NextPart_001_01C717E6.1D538422-- - 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/