Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 2 Jul 2002 17:44:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 2 Jul 2002 17:44:08 -0400 Received: from mion.elka.pw.edu.pl ([194.29.160.35]:9878 "EHLO mion.elka.pw.edu.pl") by vger.kernel.org with ESMTP id ; Tue, 2 Jul 2002 17:43:58 -0400 Date: Tue, 2 Jul 2002 23:46:03 +0200 (MET DST) From: Bartlomiej Zolnierkiewicz To: Martin Dalecki cc: Subject: [PATCH] 2.5.24 IDE 96 Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-851401618-1025646363=:18786" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 36039 Lines: 610 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-851401618-1025646363=:18786 Content-Type: TEXT/PLAIN; charset=US-ASCII Ok, this should fix some pending issues... Tue Jul 2 21:27:44 CEST 2002 ide-clean-96 - revert to previous (2.4.x + channel->lock) locking scheme - bring back ide__sti() calls - fix bug introduced in IDE 63 in ide_do_drive_cmd(), if action is ide_end request should be added to end of queue not next to current request, fortunately it is used only by ide-tape which is broken anyway - fix bug introduced in IDE 94 in idedisk_do_request(), removal of rq->special = ar; probably needed by PMAC and TCQ - fix bug introduced in IDE 94 in do_request(), always setting IDE_BUSY bit could lead to deadlock - in check_crc_errors() do strict checking for UDMA modes - clean double setting handler/timer hack - remove CAP_SYS_ADMIN check from HDIO_GET* ioctls ---559023410-851401618-1025646363=:18786 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ide-clean-96.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="ide-clean-96.diff" ZGlmZiAtdXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUv ZGV2aWNlLmMgbGludXgvZHJpdmVycy9pZGUvZGV2aWNlLmMNCi0tLSBsaW51 eC0yLjUuMjQvZHJpdmVycy9pZGUvZGV2aWNlLmMJVHVlIEp1biAxOCAwMDoy OTowMiAyMDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvZGV2aWNlLmMJVHVl IEp1bCAgMiAxNzozMDoyMCAyMDAyDQpAQCAtODYsMTQgKzg2LDIxIEBADQog ICovDQogaW50IGF0YV9idXN5X3BvbGwoc3RydWN0IGF0YV9kZXZpY2UgKmRy aXZlLCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpDQogew0KKwl1bnNpZ25lZCBs b25nIGZsYWdzOw0KKw0KIAkvKiBzcGVjIGFsbG93cyBkcml2ZSA0MDBucyB0 byBhc3NlcnQgIkJVU1kiICovDQogCXVkZWxheSgxKTsNCiAJaWYgKCFhdGFf c3RhdHVzKGRyaXZlLCAwLCBCVVNZX1NUQVQpKSB7DQorCQlfX3NhdmVfZmxh Z3MoZmxhZ3MpOw0KKwkJaWRlX19zdGkoKTsNCiAJCXRpbWVvdXQgKz0gamlm ZmllczsNCiAJCXdoaWxlICghYXRhX3N0YXR1cyhkcml2ZSwgMCwgQlVTWV9T VEFUKSkgew0KLQkJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQp KQ0KKwkJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKSB7DQor CQkJCV9fcmVzdG9yZV9mbGFncyhmbGFncyk7DQogCQkJCXJldHVybiAxOw0K KwkJCX0NCiAJCX0NCisJCV9fcmVzdG9yZV9mbGFncyhmbGFncyk7DQogCX0N CiANCiAJcmV0dXJuIDA7DQpAQCAtMTAxLDggKzEwOCw2IEBADQogDQogLyoN CiAgKiBDaGVjayB0aGUgc3RhdGUgb2YgdGhlIHN0YXR1cyByZWdpc3Rlci4N Ci0gKg0KLSAqIEZJWE1FOiBDaGFubmVsIGxvY2sgc2hvdWxkIGJlIGhlbGQu DQogICovDQogaW50IGF0YV9zdGF0dXMoc3RydWN0IGF0YV9kZXZpY2UgKmRy aXZlLCB1OCBnb29kLCB1OCBiYWQpDQogew0KQEAgLTEyNSw4ICsxMzAsNiBA QA0KICAqIFRoYXQgY291bGQgYmUgZG9uZSBieSBidXN5LXdhaXRpbmcgZm9y IHRoZSBmaXJzdCBqaWZmeSBvciB0d28sIGFuZCB0aGVuDQogICogc2V0dGlu ZyBhIHRpbWVyIHRvIHdha2UgdXAgYXQgaGFsZiBzZWNvbmQgaW50ZXJ2YWxz IHRoZXJlYWZ0ZXIsIHVudGlsDQogICogdGltZW91dCBpcyBhY2hpZXZlZCwg YmVmb3JlIHRpbWluZyBvdXQuDQotICoNCi0gKiBDaGFubmVsIGxvY2sgc2hv dWxkIGJlIGhlbGQuDQogICovDQogaW50IGF0YV9zdGF0dXNfcG9sbChzdHJ1 Y3QgYXRhX2RldmljZSAqZHJpdmUsIHU4IGdvb2QsIHU4IGJhZCwNCiAJCXVu c2lnbmVkIGxvbmcgdGltZW91dCwNCmRpZmYgLXVyIC1YZG9udGRpZmYgbGlu dXgtMi41LjI0L2RyaXZlcnMvaWRlL2lkZS1jZC5jIGxpbnV4L2RyaXZlcnMv aWRlL2lkZS1jZC5jDQotLS0gbGludXgtMi41LjI0L2RyaXZlcnMvaWRlL2lk ZS1jZC5jCVRodSBKdW4gMjcgMTM6MzQ6NDIgMjAwMg0KKysrIGxpbnV4L2Ry aXZlcnMvaWRlL2lkZS1jZC5jCVR1ZSBKdWwgIDIgMTY6NTM6NTUgMjAwMg0K QEAgLTEyMTMsNyArMTIxMyw3IEBADQogCWlmIChjZHJvbV9yZWFkX2Zyb21f YnVmZmVyKGRyaXZlLCBycSkpDQogCQlyZXR1cm4gaWRlX3N0b3BwZWQ7DQog DQotCV9fYmxrX2F0dGVtcHRfcmVtZXJnZSgmZHJpdmUtPnF1ZXVlLCBycSk7 DQorCWJsa19hdHRlbXB0X3JlbWVyZ2UoJmRyaXZlLT5xdWV1ZSwgcnEpOw0K IA0KIAkvKiBDbGVhciB0aGUgbG9jYWwgc2VjdG9yIGJ1ZmZlci4gKi8NCiAJ aW5mby0+bnNlY3RvcnNfYnVmZmVyZWQgPSAwOw0KQEAgLTE1OTEsNyArMTU5 MSw3IEBADQogCSAqIHJlbWVyZ2UgcmVxdWVzdHMsIG9mdGVuIHRoZSBwbHVn Z2luZyB3aWxsIG5vdCBoYXZlIGhhZCB0aW1lDQogCSAqIHRvIGRvIHRoaXMg cHJvcGVybHkNCiAJICovDQotCV9fYmxrX2F0dGVtcHRfcmVtZXJnZSgmZHJp dmUtPnF1ZXVlLCBycSk7DQorCWJsa19hdHRlbXB0X3JlbWVyZ2UoJmRyaXZl LT5xdWV1ZSwgcnEpOw0KIA0KIAlpbmZvLT5uc2VjdG9yc19idWZmZXJlZCA9 IDA7DQogDQpkaWZmIC11ciAtWGRvbnRkaWZmIGxpbnV4LTIuNS4yNC9kcml2 ZXJzL2lkZS9pZGUtZGlzay5jIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS1kaXNr LmMNCi0tLSBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUvaWRlLWRpc2suYwlU aHUgSnVuIDI3IDEzOjM0OjQyIDIwMDINCisrKyBsaW51eC9kcml2ZXJzL2lk ZS9pZGUtZGlzay5jCVR1ZSBKdWwgIDIgMTc6Mzc6MTEgMjAwMg0KQEAgLTEw NywxMSArMTA3LDYgQEANCiB9DQogDQogLyoNCi0gKiBUaGUgZm9sbG93aW5n IElSUSBoYW5kbGVycyAoKl9pbnRyKSBzaG91bGQgYmUgY2FsbGVkDQotICog d2l0aCB0aGUgY2hhbm5lbCBsb2NrIGhlbGQgYW5kIGludGVycnVwdHMgZGlz YWJsZWQuDQotICovDQotDQotLyoNCiAgKiBIYW5kbGVyIGZvciBjb21tYW5k IHdpdGggUElPIGRhdGEtaW4gcGhhc2UuDQogICovDQogc3RhdGljIGlkZV9z dGFydHN0b3BfdCB0YXNrX2luX2ludHIoc3RydWN0IGF0YV9kZXZpY2UgKmRy aXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpDQpAQCAtMjU3LDcgKzI1Miw2IEBA DQogDQogc3RhdGljIGlkZV9zdGFydHN0b3BfdCB0YXNrX211bG91dF9pbnRy KHN0cnVjdCBhdGFfZGV2aWNlICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJx KQ0KIHsNCi0Jc3RydWN0IGF0YV9jaGFubmVsICpjaCA9IGRyaXZlLT5jaGFu bmVsOw0KIAlpbnQgb2s7DQogCWludCByZXQ7DQogDQpAQCAtMjc5LDE0ICsy NzMsMTYgQEANCiAJCXJxLT5iaW8gPSBOVUxMOw0KIAkJcmV0ID0gaWRlX3N0 b3BwZWQ7DQogCX0gZWxzZSBpZiAoIW9rKSB7DQotCQkvKiBubyBkYXRhIHll dCwgc28gd2FpdCBmb3IgYW5vdGhlciBpbnRlcnJ1cHQgKi8NCi0JCS8qIEZJ WE1FOiAgLS1iem9sbmllciAqLw0KLQkJaWYgKCFjaC0+aGFuZGxlcikNCi0J CQlhdGFfc2V0X2hhbmRsZXIoZHJpdmUsIHRhc2tfbXVsb3V0X2ludHIsIFdB SVRfQ01ELCBOVUxMKTsNCisJCS8qIG5vdCByZWFkeSB5ZXQsIHNvIHdhaXQg Zm9yIG5leHQgSVJRICovDQorCQlhdGFfc2V0X2hhbmRsZXIoZHJpdmUsIHRh c2tfbXVsb3V0X2ludHIsIFdBSVRfQ01ELCBOVUxMKTsNCisNCiAJCXJldCA9 IGlkZV9zdGFydGVkOw0KIAl9IGVsc2Ugew0KIAkJaW50IG1jb3VudCA9IGRy aXZlLT5tdWx0X2NvdW50Ow0KIA0KKwkJLyogcHJlcGFyZSBmb3IgbmV4dCBJ UlEgKi8NCisJCWF0YV9zZXRfaGFuZGxlcihkcml2ZSwgdGFza19tdWxvdXRf aW50ciwgV0FJVF9DTUQsIE5VTEwpOw0KKw0KIAkJZG8gew0KIAkJCWNoYXIg KmJ1ZjsNCiAJCQlpbnQgbnNlY3QgPSBycS0+Y3VycmVudF9ucl9zZWN0b3Jz Ow0KQEAgLTMxNCw2ICszMTAsNyBAQA0KIAkJCQkJcnEtPmN1cnJlbnRfbnJf c2VjdG9ycyA9IGJpb19pb3ZlYyhiaW8pLT5idl9sZW4gPj4gOTsNCiAJCQkJ fQ0KIAkJCX0NCisJCQlycS0+ZXJyb3JzID0gMDsgLyogRklYTUU6IHdoeT8g IC0tYnpvbG5pZXIgKi8NCiANCiAJCQkvKg0KIAkJCSAqIE9rLCB3ZSdyZSBh bGwgc2V0dXAgZm9yIHRoZSBpbnRlcnJ1cHQgcmUtZW50ZXJpbmcgdXMgb24g dGhlDQpAQCAtMzIzLDEyICszMjAsNiBAQA0KIAkJCWJpb19rdW5tYXBfaXJx KGJ1ZiwgJmZsYWdzKTsNCiAJCX0gd2hpbGUgKG1jb3VudCk7DQogDQotCQly cS0+ZXJyb3JzID0gMDsNCi0NCi0JCS8qIEZJWE1FOiAgLS1iem9sbmllciAq Lw0KLQkJaWYgKCFjaC0+aGFuZGxlcikNCi0JCQlhdGFfc2V0X2hhbmRsZXIo ZHJpdmUsIHRhc2tfbXVsb3V0X2ludHIsIFdBSVRfQ01ELCBOVUxMKTsNCi0N CiAJCXJldCA9IGlkZV9zdGFydGVkOw0KIAl9DQogDQpAQCAtMzM5LDggKzMz MCw2IEBADQogICogSXNzdWUgYSBSRUFEIG9yIFdSSVRFIGNvbW1hbmQgdG8g YSBkaXNrLCB1c2luZyBMQkEgaWYgc3VwcG9ydGVkLCBvciBDSFMNCiAgKiBv dGhlcndpc2UsIHRvIGFkZHJlc3Mgc2VjdG9ycy4gIEl0IGFsc28gdGFrZXMg Y2FyZSBvZiBpc3N1aW5nIHNwZWNpYWwNCiAgKiBEUklWRV9DTURzLg0KLSAq DQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxkLg0KICAqLw0KIHN0 YXRpYyBpZGVfc3RhcnRzdG9wX3QgaWRlZGlza19kb19yZXF1ZXN0KHN0cnVj dCBhdGFfZGV2aWNlICpkcml2ZSwgc3RydWN0IHJlcXVlc3QgKnJxLCBzZWN0 b3JfdCBibG9jaykNCiB7DQpAQCAtNTI2LDEwICs1MTUsNyBAQA0KIAkJcHJp bnRrKCJidWZmZXI9JXBcbiIsIHJxLT5idWZmZXIpOw0KICNlbmRpZg0KIAl9 DQotDQotCS8qDQotCSAqIENoYW5uZWwgbG9jayBzaG91bGQgYmUgaGVsZCBv biBlbnRyeS4NCi0JICovDQorCXJxLT5zcGVjaWFsID0gYXI7DQogDQogCS8q IChrcy9ocyk6IE1vdmVkIHRvIHN0YXJ0LCBkbyBub3QgdXNlIGZvciBtdWx0 aXBsZSBvdXQgY29tbWFuZHMuDQogCSAqIEZJWE1FOiB3aHkgbm90PyEgKi8N CkBAIC01NTIsMjggKzUzOCwyNSBAQA0KIAkvKiBGSVhNRTogdGhpcyBpcyBh Y3R1YWxseSBkaXN0aW5ndXNoaW5nIGJldHdlZW4gUElPIGFuZCBETUEgcmVx dWVzdHMuDQogCSAqLw0KIAlpZiAoYXItPlhYWF9oYW5kbGVyKSB7DQorCQlp ZiAoYXItPmNvbW1hbmRfdHlwZSA9PSBJREVfRFJJVkVfVEFTS19JTiB8fA0K KwkJICAgIGFyLT5jb21tYW5kX3R5cGUgPT0gSURFX0RSSVZFX1RBU0tfTk9f REFUQSkgew0KKw0KKwkJCWF0YV9zZXRfaGFuZGxlcihkcml2ZSwgYXItPlhY WF9oYW5kbGVyLCBXQUlUX0NNRCwgTlVMTCk7DQorCQkJT1VUX0JZVEUoY21k LCBJREVfQ09NTUFORF9SRUcpOw0KIA0KLQkJYXRhX3NldF9oYW5kbGVyKGRy aXZlLCBhci0+WFhYX2hhbmRsZXIsIFdBSVRfQ01ELCBOVUxMKTsNCi0JCU9V VF9CWVRFKGNtZCwgSURFX0NPTU1BTkRfUkVHKTsNCisJCQlyZXR1cm4gaWRl X3N0YXJ0ZWQ7DQorCQl9DQogDQogCQkvKiBGSVhNRTogV2FybmluZyBjaGVj ayBmb3IgcmFjZSBiZXR3ZWVuIGhhbmRsZXIgYW5kIHByZWhhbmRsZXINCiAJ CSAqIGZvciB3cml0aW5nIGZpcnN0IGJsb2NrIG9mIGRhdGEuICBob3dldmVy IHNpbmNlIHdlIGFyZSB3ZWxsDQogCQkgKiBpbnNpZGUgdGhlIGJvdW5kYXJp ZXMgb2YgdGhlIHNlZWssIHdlIHNob3VsZCBiZSBva2F5Lg0KLQkJICoNCi0J CSAqIEZJWE1FOiBSZXBsYWNlIHRoZSBzd2l0Y2ggYnkgdXNpbmcgYSBwcm9w ZXIgY29tbWFuZF90eXBlLg0KKwkJICogRklYTUU6IHNob3VsZCBiZSBmaXhl ZCAgLS1iem9sbmllcg0KIAkJICovDQotDQotCQlpZiAoY21kID09IENGQV9X UklURV9TRUNUX1dPX0VSQVNFIHx8DQotCQkgICAgY21kID09IFdJTl9XUklU RSB8fA0KLQkJICAgIGNtZCA9PSBXSU5fV1JJVEVfRVhUIHx8DQotCQkgICAg Y21kID09IFdJTl9XUklURV9WRVJJRlkgfHwNCi0JCSAgICBjbWQgPT0gV0lO X1dSSVRFX0JVRkZFUiB8fA0KLQkJICAgIGNtZCA9PSBXSU5fRE9XTkxPQURf TUlDUk9DT0RFIHx8DQotCQkgICAgY21kID09IENGQV9XUklURV9NVUxUSV9X T19FUkFTRSB8fA0KLQkJICAgIGNtZCA9PSBXSU5fTVVMVFdSSVRFIHx8DQot CQkgICAgY21kID09IFdJTl9NVUxUV1JJVEVfRVhUKSB7DQorCQlpZiAoYXIt PmNvbW1hbmRfdHlwZSA9PSBJREVfRFJJVkVfVEFTS19SQVdfV1JJVEUpIHsN CiAJCQlpZGVfc3RhcnRzdG9wX3Qgc3RhcnRzdG9wOw0KIA0KKwkJCU9VVF9C WVRFKGNtZCwgSURFX0NPTU1BTkRfUkVHKTsNCisNCiAJCQlpZiAoYXRhX3N0 YXR1c19wb2xsKGRyaXZlLCBEQVRBX1JFQURZLCBkcml2ZS0+YmFkX3dzdGF0 LA0KIAkJCQkJCVdBSVRfRFJRLCBycSwgJnN0YXJ0c3RvcCkpIHsNCiAJCQkJ cHJpbnRrKEtFUk5fRVJSICIlczogbm8gRFJRIGFmdGVyIGlzc3VpbmcgJXNc biIsDQpAQCAtNTkxLDcgKzU3NCwxMCBAQA0KIAkJCQl1bnNpZ25lZCBsb25n IGZsYWdzOw0KIAkJCQljaGFyICpidWYgPSBpZGVfbWFwX3JxKHJxLCAmZmxh Z3MpOw0KIA0KKwkJCQlhdGFfc2V0X2hhbmRsZXIoZHJpdmUsIGFyLT5YWFhf aGFuZGxlciwgV0FJVF9DTUQsIE5VTEwpOw0KKw0KIAkJCQkvKiBGb3IgV3Jp dGVfc2VjdG9ycyB3ZSBuZWVkIHRvIHN0dWZmIHRoZSBmaXJzdCBzZWN0b3Ig Ki8NCisJCQkJLyogRklYTUU6IHdoYXQgaWYgIXJxLT5jdXJyZW50X25yX3Nl Y3RvcnMgIC0tYnpvbG5pZXIgKi8NCiAJCQkJYXRhX3dyaXRlKGRyaXZlLCBi dWYsIFNFQ1RPUl9XT1JEUyk7DQogDQogCQkJCXJxLT5jdXJyZW50X25yX3Nl Y3RvcnMtLTsNCkBAIC02MjEsNiArNjA3LDcgQEANCiAJCQkJCXByaW50ayhL RVJOX0VSUiAiRElTQVNURVIgV0FJVElORyBUTyBIQVBQRU4hXG4iKTsNCiAJ CQkJfQ0KIA0KKwkJCQkvKiB3aWxsIHNldCBoYW5kbGVyIGZvciB1cyAqLw0K IAkJCQlyZXR1cm4gYXItPlhYWF9oYW5kbGVyKGRyaXZlLCBycSk7DQogCQkJ fQ0KIAkJfQ0KQEAgLTYzMiw2ICs2MTksNyBAQA0KIAkJICogRklYTUU6IEhh bmRsZSB0aGUgYWx0ZXJuYXRlaXZlcyBieSBhIGNvbW1hbmQgdHlwZS4NCiAJ CSAqLw0KIA0KKwkJLyogRklYTUU6IGlkZV9zdGFydGVkPyAgLS1iem9sbmll ciAqLw0KIAkJaWYgKCFkcml2ZS0+dXNpbmdfZG1hKQ0KIAkJCXJldHVybiBp ZGVfc3RhcnRlZDsNCiANCkBAIC02NTYsNiArNjQ0LDcgQEANCiAJCX0NCiAJ fQ0KIA0KKwkvKiBub3QgcmVhY2hlZCAqLw0KIAlyZXR1cm4gaWRlX3N0YXJ0 ZWQ7DQogfQ0KIA0KZGlmZiAtdXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQv ZHJpdmVycy9pZGUvaWRlLWZsb3BweS5jIGxpbnV4L2RyaXZlcnMvaWRlL2lk ZS1mbG9wcHkuYw0KLS0tIGxpbnV4LTIuNS4yNC9kcml2ZXJzL2lkZS9pZGUt ZmxvcHB5LmMJVGh1IEp1biAyNyAxMzozNDo0MiAyMDAyDQorKysgbGludXgv ZHJpdmVycy9pZGUvaWRlLWZsb3BweS5jCVR1ZSBKdWwgIDIgMTc6NDE6MzEg MjAwMg0KQEAgLTM0Niw2ICszNDYsOCBAQA0KICAqLw0KIHN0YXRpYyBpbnQg aWRlZmxvcHB5X2VuZF9yZXF1ZXN0KHN0cnVjdCBhdGFfZGV2aWNlICpkcml2 ZSwgc3RydWN0IHJlcXVlc3QgKnJxLCBpbnQgdXB0b2RhdGUpDQogew0KKwl1 bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNo ID0gZHJpdmUtPmNoYW5uZWw7DQogCWlkZWZsb3BweV9mbG9wcHlfdCAqZmxv cHB5ID0gZHJpdmUtPmRyaXZlcl9kYXRhOw0KIAlpbnQgZXJyb3I7DQogDQpA QCAtMzY5LDExICszNzEsMTUgQEANCiAJCXJldHVybiAwOw0KIAl9DQogDQor CXNwaW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCXJx LT5lcnJvcnMgPSBlcnJvcjsNCiAJYmxrZGV2X2RlcXVldWVfcmVxdWVzdChy cSk7DQogCWRyaXZlLT5ycSA9IE5VTEw7DQogCWVuZF90aGF0X3JlcXVlc3Rf bGFzdChycSk7DQogDQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoY2gtPmxv Y2ssIGZsYWdzKTsNCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlmZiAtdXIg LVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUvaWRlLXRhcGUu YyBsaW51eC9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jDQotLS0gbGludXgtMi41 LjI0L2RyaXZlcnMvaWRlL2lkZS10YXBlLmMJVGh1IEp1biAyNyAxMzozNDo0 MiAyMDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvaWRlLXRhcGUuYwlUdWUg SnVsICAyIDE3OjM5OjU3IDIwMDINCkBAIC0xNjIyLDcgKzE2MjIsNyBAQA0K IHN0YXRpYyBpbnQgaWRldGFwZV9lbmRfcmVxdWVzdChzdHJ1Y3QgYXRhX2Rl dmljZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSwgaW50IHVwdG9kYXRl KQ0KIHsNCiAJaWRldGFwZV90YXBlX3QgKnRhcGUgPSBkcml2ZS0+ZHJpdmVy X2RhdGE7DQotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorCXVuc2lnbmVkIGxv bmcgZmxhZ3MsIGZsYWdzMjsNCiAJaW50IGVycm9yOw0KIAlpbnQgcmVtb3Zl X3N0YWdlID0gMDsNCiAjaWYgT05TVFJFQU1fREVCVUcNCkBAIC0xNzA5LDEw ICsxNzA5LDE1IEBADQogCQl9DQogCX0NCiANCisJLyogRklYTUU6IHJlcGxh Y2UgdGFwZS0+c3BpbmxvY2sgd2l0aCBjaGFubmVsLT5zcGlubG9jayAgLS1i em9sbmllciAqLw0KKwlzcGluX2xvY2tfaXJxc2F2ZShkcml2ZS0+Y2hhbm5l bC0+bG9jaywgZmxhZ3MyKTsNCisNCiAJYmxrZGV2X2RlcXVldWVfcmVxdWVz dChycSk7DQogCWRyaXZlLT5ycSA9IE5VTEw7DQogCWVuZF90aGF0X3JlcXVl c3RfbGFzdChycSk7DQogDQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZHJp dmUtPmNoYW5uZWwtPmxvY2ssIGZsYWdzMik7DQorDQogCWlmIChyZW1vdmVf c3RhZ2UpDQogCQlpZGV0YXBlX3JlbW92ZV9zdGFnZV9oZWFkKGRyaXZlKTsN CiAJaWYgKHRhcGUtPmFjdGl2ZV9kYXRhX3JlcXVlc3QgPT0gTlVMTCkNCmRp ZmYgLXVyIC1YZG9udGRpZmYgbGludXgtMi41LjI0L2RyaXZlcnMvaWRlL2lk ZS10YXNrZmlsZS5jIGxpbnV4L2RyaXZlcnMvaWRlL2lkZS10YXNrZmlsZS5j DQotLS0gbGludXgtMi41LjI0L2RyaXZlcnMvaWRlL2lkZS10YXNrZmlsZS5j CVRodSBKdW4gMjcgMTM6MzQ6NDIgMjAwMg0KKysrIGxpbnV4L2RyaXZlcnMv aWRlL2lkZS10YXNrZmlsZS5jCVR1ZSBKdWwgIDIgMTc6MzU6NDcgMjAwMg0K QEAgLTE5NywxMyArMTk3LDE0IEBADQogaW50IGlkZV9kb19kcml2ZV9jbWQo c3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEs IGlkZV9hY3Rpb25fdCBhY3Rpb24pDQogew0KIAl1bnNpZ25lZCBsb25nIGZs YWdzOw0KLQl1bnNpZ25lZCBpbnQgbWFqb3IgPSBkcml2ZS0+Y2hhbm5lbC0+ bWFqb3I7DQorCXN0cnVjdCBhdGFfY2hhbm5lbCAqY2ggPSBkcml2ZS0+Y2hh bm5lbDsNCisJdW5zaWduZWQgaW50IG1ham9yID0gY2gtPm1ham9yOw0KIAly ZXF1ZXN0X3F1ZXVlX3QgKnEgPSAmZHJpdmUtPnF1ZXVlOw0KIAlzdHJ1Y3Qg bGlzdF9oZWFkICpxdWV1ZV9oZWFkID0gJnEtPnF1ZXVlX2hlYWQ7DQogCURF Q0xBUkVfQ09NUExFVElPTih3YWl0KTsNCiANCiAjaWZkZWYgQ09ORklHX0JM S19ERVZfUERDNDAzMA0KLQlpZiAoZHJpdmUtPmNoYW5uZWwtPmNoaXBzZXQg PT0gaWRlX3BkYzQwMzAgJiYgcnEtPmJ1ZmZlciAhPSBOVUxMKQ0KKwlpZiAo Y2gtPmNoaXBzZXQgPT0gaWRlX3BkYzQwMzAgJiYgcnEtPmJ1ZmZlcikNCiAJ CXJldHVybiAtRU5PU1lTOyAgLyogc3BlY2lhbCBkcml2ZSBjbWRzIG5vdCBz dXBwb3J0ZWQgKi8NCiAjZW5kaWYNCiAJcnEtPmVycm9ycyA9IDA7DQpAQCAt MjEyLDIyICsyMTMsMTggQEANCiAJaWYgKGFjdGlvbiA9PSBpZGVfd2FpdCkN CiAJCXJxLT53YWl0aW5nID0gJndhaXQ7DQogDQotCXNwaW5fbG9ja19pcnFz YXZlKGRyaXZlLT5jaGFubmVsLT5sb2NrLCBmbGFncyk7DQorCXNwaW5fbG9j a19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQorCWlmIChhY3Rpb24g PT0gaWRlX3ByZWVtcHQpDQorCQlkcml2ZS0+cnEgPSBOVUxMOw0KKwllbHNl IGlmICghYmxrX3F1ZXVlX2VtcHR5KCZkcml2ZS0+cXVldWUpKQ0KKwkJcXVl dWVfaGVhZCA9IHF1ZXVlX2hlYWQtPnByZXY7CS8qIGlkZV9lbmQgYW5kIGlk ZV93YWl0ICovDQogDQotCWlmIChibGtfcXVldWVfZW1wdHkoJmRyaXZlLT5x dWV1ZSkgfHwgYWN0aW9uID09IGlkZV9wcmVlbXB0KSB7DQotCQlpZiAoYWN0 aW9uID09IGlkZV9wcmVlbXB0KQ0KLQkJCWRyaXZlLT5ycSA9IE5VTEw7DQot CX0gZWxzZSB7DQotCQlpZiAoYWN0aW9uID09IGlkZV93YWl0KQ0KLQkJCXF1 ZXVlX2hlYWQgPSBxdWV1ZV9oZWFkLT5wcmV2Ow0KLQkJZWxzZQ0KLQkJCXF1 ZXVlX2hlYWQgPSBxdWV1ZV9oZWFkLT5uZXh0Ow0KLQl9DQogCXEtPmVsZXZh dG9yLmVsZXZhdG9yX2FkZF9yZXFfZm4ocSwgcnEsIHF1ZXVlX2hlYWQpOw0K IA0KIAlkb19pZGVfcmVxdWVzdChxKTsNCiANCi0Jc3Bpbl91bmxvY2tfaXJx cmVzdG9yZShkcml2ZS0+Y2hhbm5lbC0+bG9jaywgZmxhZ3MpOw0KKwlzcGlu X3VubG9ja19pcnFyZXN0b3JlKGNoLT5sb2NrLCBmbGFncyk7DQogDQogCWlm IChhY3Rpb24gPT0gaWRlX3dhaXQpIHsNCiAJCXdhaXRfZm9yX2NvbXBsZXRp b24oJndhaXQpOwkvKiB3YWl0IGZvciBpdCB0byBiZSBzZXJ2aWNlZCAqLw0K QEAgLTIzNSwyNSArMjMyLDIwIEBADQogCX0NCiANCiAJcmV0dXJuIDA7DQot DQogfQ0KIA0KIA0KIC8qDQogICogSW52b2tlZCBvbiBjb21wbGV0aW9uIG9m IGEgc3BlY2lhbCBSRVFfU1BFQ0lBTCBjb21tYW5kLg0KICAqLw0KLS8qDQot ICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxkLg0KLSAqLw0KIHN0YXRp YyBpZGVfc3RhcnRzdG9wX3Qgc3BlY2lhbF9pbnRyKHN0cnVjdCBhdGFfZGV2 aWNlICpkcml2ZSwgc3RydWN0DQogCQlyZXF1ZXN0ICpycSkgew0KLQ0KKwl1 bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNo ID1kcml2ZS0+Y2hhbm5lbDsNCiAJc3RydWN0IGF0YV90YXNrZmlsZSAqYXIg PSBycS0+c3BlY2lhbDsNCiAJaWRlX3N0YXJ0c3RvcF90IHJldCA9IGlkZV9z dG9wcGVkOw0KIA0KLQkvKiBGSVhNRTogIC0tYnpvbG5pZXINCiAJaWRlX19z dGkoKTsNCi0JKi8NCiANCiAJaWYgKHJxLT5idWZmZXIgJiYgYXItPnRhc2tm aWxlLnNlY3Rvcl9udW1iZXIpIHsNCiAJCWlmICghYXRhX3N0YXR1cyhkcml2 ZSwgMCwgRFJRX1NUQVQpICYmIGFyLT50YXNrZmlsZS5zZWN0b3JfbnVtYmVy KSB7DQpAQCAtMjg1LDEwICsyNzcsMTQgQEANCiAJCWF0YV9pbl9yZWdmaWxl KGRyaXZlLCAmYXItPmhvYmZpbGUpOw0KIAl9DQogDQorCXNwaW5fbG9ja19p cnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCWJsa2Rldl9kZXF1ZXVl X3JlcXVlc3QocnEpOw0KIAlkcml2ZS0+cnEgPSBOVUxMOw0KIAllbmRfdGhh dF9yZXF1ZXN0X2xhc3QocnEpOw0KIA0KKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCXJldHVybiByZXQ7DQogfQ0K IA0KZGlmZiAtdXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9p ZGUvaWRlLmMgbGludXgvZHJpdmVycy9pZGUvaWRlLmMNCi0tLSBsaW51eC0y LjUuMjQvZHJpdmVycy9pZGUvaWRlLmMJVGh1IEp1biAyNyAxMzozNDo0MiAy MDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvaWRlLmMJVHVlIEp1bCAgMiAx NzozNjoyMyAyMDAyDQpAQCAtMTA2LDE1ICsxMDYsMTQgQEANCiAJcmV0dXJu IDA7DQogfQ0KIA0KLS8qDQotICogTm90IGxvY2tpbmcgdmFyaWFidCBvZiB0 aGUgZW5kX3JlcXVlc3QgbWV0aG9kLg0KLSAqDQotICogQ2hhbm5lbCBsb2Nr IHNob3VsZCBiZSBoZWxkLg0KLSAqLw0KIGludCBfX2F0YV9lbmRfcmVxdWVz dChzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpy cSwgaW50IHVwdG9kYXRlLCB1bnNpZ25lZCBpbnQgbnJfc2VjcykNCiB7DQor CXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQorCXN0cnVjdCBhdGFfY2hhbm5lbCAq Y2ggPSBkcml2ZS0+Y2hhbm5lbDsNCiAJaW50IHJldCA9IDE7DQogDQorCXNw aW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCUJVR19P TighKHJxLT5mbGFncyAmIFJFUV9TVEFSVEVEKSk7DQogDQogCS8qIEZJWE1F OiBNYWtlIHRoaXMgInNtYWxsIiBoYWNrIHRvIGVsaW1pbmF0ZSBsb2NraW5n IGZyb20NCkBAIC0xNDMsNiArMTQyLDcgQEANCiAJCXJldCA9IDA7DQogCX0N CiANCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3Mp Ow0KIA0KIAlyZXR1cm4gcmV0Ow0KIH0NCkBAIC0xNTMsMTQgKzE1MywxNiBA QA0KICAqIGF0IHRoZSBhcHByb3ByaWF0ZSBjb2RlIHRvIGhhbmRsZSB0aGUg bmV4dCBpbnRlcnJ1cHQsIGFuZCBhDQogICogdGltZXIgaXMgc3RhcnRlZCB0 byBwcmV2ZW50IHVzIGZyb20gd2FpdGluZyBmb3JldmVyIGluIGNhc2UNCiAg KiBzb21ldGhpbmcgZ29lcyB3cm9uZyAoc2VlIHRoZSBpZGVfdGltZXJfZXhw aXJ5KCkgaGFuZGxlciBsYXRlciBvbikuDQotICoNCi0gKiBDaGFubmVsIGxv Y2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogdm9pZCBhdGFfc2V0X2hhbmRs ZXIoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBhdGFfaGFuZGxlcl90IGhh bmRsZXIsDQogCQkgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQsIGF0YV9l eHBpcnlfdCBleHBpcnkpDQogew0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0K IAlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNoID0gZHJpdmUtPmNoYW5uZWw7DQog DQorCXNwaW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQor CS8qIEZJWE1FOiBjaGFuZ2UgaXQgbGF0ZXIgdG8gQlVHX09OKGNoLT5oYW5k bGVyKSAgLS1iem9sbmllciAqLw0KIAlpZiAoY2gtPmhhbmRsZXIpDQogCQlw cmludGsoIiVzOiAlczogaGFuZGxlciBub3QgbnVsbDsgb2xkPSVwLCBuZXc9 JXAsIGZyb20gJXBcbiIsDQogCQkJZHJpdmUtPm5hbWUsIF9fRlVOQ1RJT05f XywgY2gtPmhhbmRsZXIsIGhhbmRsZXIsIF9fYnVpbHRpbl9yZXR1cm5fYWRk cmVzcygwKSk7DQpAQCAtMTcyLDQ4ICsxNzQsMzUgQEANCiANCiAJYWRkX3Rp bWVyKCZjaC0+dGltZXIpOw0KIA0KKwlzcGluX3VubG9ja19pcnFyZXN0b3Jl KGNoLT5sb2NrLCBmbGFncyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGNoZWNr X2NyY19lcnJvcnMoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlKQ0KIHsNCiAJ aWYgKCFkcml2ZS0+dXNpbmdfZG1hKQ0KLQkgICAgcmV0dXJuOw0KKwkJcmV0 dXJuOw0KIA0KIAkvKiBjaGVjayB0aGUgRE1BIGNyYyBjb3VudCAqLw0KIAlp ZiAoZHJpdmUtPmNyY19jb3VudCkgew0KIAkJdWRtYV9lbmFibGUoZHJpdmUs IDAsIDApOw0KIAkJaWYgKGRyaXZlLT5jaGFubmVsLT5zcGVlZHByb2MpIHsN Ci0JCQl1OCBwaW8gPSBYRkVSX1BJT180Ow0KKwkJCXU4IG1vZGUgPSBkcml2 ZS0+Y3VycmVudF9zcGVlZDsNCiAJCQlkcml2ZS0+Y3JjX2NvdW50ID0gMDsN CiANCi0JCQlzd2l0Y2ggKGRyaXZlLT5jdXJyZW50X3NwZWVkKSB7DQotCQkJ Y2FzZSBYRkVSX1VETUFfNzogcGlvID0gWEZFUl9VRE1BXzY7DQotCQkJCWJy ZWFrOw0KLQkJCWNhc2UgWEZFUl9VRE1BXzY6IHBpbyA9IFhGRVJfVURNQV81 Ow0KLQkJCQlicmVhazsNCi0JCQljYXNlIFhGRVJfVURNQV81OiBwaW8gPSBY RkVSX1VETUFfNDsNCi0JCQkJYnJlYWs7DQotCQkJY2FzZSBYRkVSX1VETUFf NDogcGlvID0gWEZFUl9VRE1BXzM7DQotCQkJCWJyZWFrOw0KLQkJCWNhc2Ug WEZFUl9VRE1BXzM6IHBpbyA9IFhGRVJfVURNQV8yOw0KLQkJCQlicmVhazsN Ci0JCQljYXNlIFhGRVJfVURNQV8yOiBwaW8gPSBYRkVSX1VETUFfMTsNCi0J CQkJYnJlYWs7DQotCQkJY2FzZSBYRkVSX1VETUFfMTogcGlvID0gWEZFUl9V RE1BXzA7DQotCQkJCWJyZWFrOw0KKwkJCWlmIChtb2RlID4gWEZFUl9VRE1B XzApDQorCQkJCW1vZGUtLTsNCisJCQllbHNlDQogCQkJLyoNCiAJCQkgKiBP T1BTIHdlIGRvIG5vdCBnb3RvIG5vbiBVbHRyYSBETUEgbW9kZXMNCiAJCQkg KiB3aXRob3V0IGlDUkMncyBhdmFpbGFibGUgd2UgZm9yY2UNCiAJCQkgKiB0 aGUgc3lzdGVtIHRvIFBJTyBhbmQgbWFrZSB0aGUgdXNlcg0KIAkJCSAqIGlu dm9rZSB0aGUgQVRBLTEgQVRBLTIgRE1BIG1vZGVzLg0KIAkJCSAqLw0KLQkJ CWNhc2UgWEZFUl9VRE1BXzA6DQotCQkJZGVmYXVsdDoNCi0JCQkJcGlvID0g WEZFUl9QSU9fNDsNCi0JCQl9DQotCQkgICAgICAgIGRyaXZlLT5jaGFubmVs LT5zcGVlZHByb2MoZHJpdmUsIHBpbyk7DQorCQkJCW1vZGUgPSBYRkVSX1BJ T180Ow0KKw0KKwkJCWRyaXZlLT5jaGFubmVsLT5zcGVlZHByb2MoZHJpdmUs IG1vZGUpOw0KIAkJfQ0KLQkJaWYgKGRyaXZlLT5jdXJyZW50X3NwZWVkID49 IFhGRVJfU1dfRE1BXzApDQorCQlpZiAoZHJpdmUtPmN1cnJlbnRfc3BlZWQg Pj0gWEZFUl9VRE1BXzApDQogCQkJdWRtYV9lbmFibGUoZHJpdmUsIDEsIDEp Ow0KIAl9IGVsc2UNCiAJCXVkbWFfZW5hYmxlKGRyaXZlLCAwLCAxKTsNCkBA IC0yNDYsOCArMjM1LDYgQEANCiAgKiBQb2xsIHRoZSBpbnRlcmZhY2UgZm9y IGNvbXBsZXRpb24gZXZlcnkgNTBtcyBkdXJpbmcgYW4gQVRBUEkgZHJpdmUg cmVzZXQNCiAgKiBvcGVyYXRpb24uIElmIHRoZSBkcml2ZSBoYXMgbm90IHll dCByZXNwb25kZWQsIGFuZCB3ZSBoYXZlIG5vdCB5ZXQgaGl0IG91cg0KICAq IG1heGltdW0gd2FpdGluZyB0aW1lLCB0aGVuIHRoZSB0aW1lciBpcyByZXN0 YXJ0ZWQgZm9yIGFub3RoZXIgNTBtcy4NCi0gKg0KLSAqIENoYW5uZWwgbG9j ayBzaG91bGQgYmUgaGVsZC4NCiAgKi8NCiBzdGF0aWMgaWRlX3N0YXJ0c3Rv cF90IGF0YXBpX3Jlc2V0X3BvbGxmdW5jKHN0cnVjdCBhdGFfZGV2aWNlICpk cml2ZSwgc3RydWN0IHJlcXVlc3QgKl9fcnEpDQogew0KQEAgLTI3OSw4ICsy NjYsNiBAQA0KICAqIFBvbGwgdGhlIGludGVyZmFjZSBmb3IgY29tcGxldGlv biBldmVyeSA1MG1zIGR1cmluZyBhbiBhdGEgcmVzZXQgb3BlcmF0aW9uLg0K ICAqIElmIHRoZSBkcml2ZXMgaGF2ZSBub3QgeWV0IHJlc3BvbmRlZCwgYW5k IHdlIGhhdmUgbm90IHlldCBoaXQgb3VyIG1heGltdW0NCiAgKiB3YWl0aW5n IHRpbWUsIHRoZW4gdGhlIHRpbWVyIGlzIHJlc3RhcnRlZCBmb3IgYW5vdGhl ciA1MG1zLg0KLSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxk Lg0KICAqLw0KIHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgcmVzZXRfcG9sbGZ1 bmMoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAq X19ycSkNCiB7DQpAQCAtMzQ4LDEwICszMzMsNyBAQA0KICAqIEVxdWFsbHkg cG9vciwgdGhvdWdoLCBpcyB0aGUgZmFjdCB0aGF0IHRoaXMgbWF5IGEgdmVy eSBsb25nIHRpbWUgdG8NCiAgKiBjb21wbGV0ZSwgKHVwIHRvIDMwIHNlY29u ZHMgd29yc3QgY2FzZSkuICBTbywgaW5zdGVhZCBvZiBidXN5LXdhaXRpbmcg aGVyZQ0KICAqIGZvciBpdCwgd2Ugc2V0IGEgdGltZXIgdG8gcG9sbCBhdCA1 MG1zIGludGVydmFscy4NCi0gKg0KLSAqIENoYW5uZWwgbG9jayBzaG91bGQg YmUgaGVsZC4NCiAgKi8NCi0NCiBzdGF0aWMgaWRlX3N0YXJ0c3RvcF90IGRv X3Jlc2V0MShzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIGludCB0cnlfYXRh cGkpDQogew0KIAl1bnNpZ25lZCBpbnQgdW5pdDsNCkBAIC01NTgsOCArNTQw LDYgQEANCiANCiAvKg0KICAqIFRha2UgYWN0aW9uIGJhc2VkIG9uIHRoZSBl cnJvciByZXR1cm5lZCBieSB0aGUgZHJpdmUuDQotICoNCi0gKiBDaGFubmVs IGxvY2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogaWRlX3N0YXJ0c3RvcF90 IGF0YV9lcnJvcihzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCBy ZXF1ZXN0ICpycSwJY29uc3QgY2hhciAqbXNnKQ0KIHsNCkBAIC04MTIsNiAr NzkyLDcgQEANCiAJCXN0cnVjdCBhdGFfY2hhbm5lbCAqY2g7DQogCQlzdHJ1 Y3QgYXRhX2RldmljZSAqZHJpdmU7DQogCQlzdHJ1Y3QgcmVxdWVzdCAqcnEg PSBOVUxMOw0KKwkJaWRlX3N0YXJ0c3RvcF90IHN0YXJ0c3RvcDsNCiAJCWlu dCBpOw0KIA0KIAkJLyogdGhpcyB3aWxsIGNsZWFyIElERV9CVVNZLCBpZiBh cHByb3ByaWF0ZSAqLw0KQEAgLTkwMSwxMiArODgyLDE2IEBADQogDQogCQkJ ZHJpdmUtPnJxID0gcnE7DQogDQorCQkJc3Bpbl91bmxvY2soY2gtPmxvY2sp Ow0KIAkJCWlkZV9fc3RpKCk7CS8qIGFsbG93IG90aGVyIElSUXMgd2hpbGUg d2Ugc3RhcnQgdGhpcyByZXF1ZXN0ICovDQorCQkJc3RhcnRzdG9wID0gc3Rh cnRfcmVxdWVzdChkcml2ZSwgcnEpOw0KKwkJCXNwaW5fbG9ja19pcnEoY2gt PmxvY2spOw0KKw0KIAkJCS8qIGNvbW1hbmQgc3RhcnRlZCwgd2UgYXJlIGJ1 c3kgKi8NCi0JCX0gd2hpbGUgKGlkZV9zdGFydGVkICE9IHN0YXJ0X3JlcXVl c3QoZHJpdmUsIHJxKSk7DQorCQl9IHdoaWxlIChzdGFydHN0b3AgIT0gaWRl X3N0YXJ0ZWQpOw0KIAkJLyogbWFrZSBzdXJlIHRoZSBCVVNZIGJpdCBpcyBz ZXQgKi8NCiAJCS8qIEZJWE1FOiBwZXJoYXBzIHRoZXJlIGlzIHNvbWUgcGxh Y2Ugd2hlcmUgd2UgbWlzcyB0byBzZXQgaXQ/ICovDQotCQlzZXRfYml0KElE RV9CVVNZLCBjaC0+YWN0aXZlKTsNCisvLwkJc2V0X2JpdChJREVfQlVTWSwg Y2gtPmFjdGl2ZSk7DQogCX0NCiB9DQogDQpAQCAtMTE2NiwxNSArMTE1MSwx NiBAQA0KIAljaC0+aGFuZGxlciA9IE5VTEw7DQogCWRlbF90aW1lcigmY2gt PnRpbWVyKTsNCiANCi0JaWYgKGNoLT51bm1hc2spIHsNCi0JCS8qIEZJWE1F OiBwZXJoYXBzIGRpc2FibGVfaXJxKGlycSk7IF9fc3RpKCk7ID8gLVp3YW5l DQorCXNwaW5fdW5sb2NrKGNoLT5sb2NrKTsNCisNCisJaWYgKGNoLT51bm1h c2spDQogCQlpZGVfX3N0aSgpOw0KLQkJKi8NCi0JfQ0KIA0KIAkvKiBzZXJ2 aWNlIHRoaXMgaW50ZXJydXB0LCBtYXkgc2V0IGhhbmRsZXIgZm9yIG5leHQg aW50ZXJydXB0ICovDQogCXN0YXJ0c3RvcCA9IGhhbmRsZXIoZHJpdmUsIGRy aXZlLT5ycSk7DQogDQorCXNwaW5fbG9ja19pcnEoY2gtPmxvY2spOw0KKw0K IAkvKg0KIAkgKiBOb3RlIHRoYXQgaGFuZGxlcigpIG1heSBoYXZlIHNldCB0 aGluZ3MgdXAgZm9yIGFub3RoZXINCiAJICogaW50ZXJydXB0IHRvIG9jY3Vy IHNvb24sIGJ1dCBpdCBjYW5ub3QgaGFwcGVuIHVudGlsDQpkaWZmIC11ciAt WGRvbnRkaWZmIGxpbnV4LTIuNS4yNC9kcml2ZXJzL2lkZS9pb2N0bC5jIGxp bnV4L2RyaXZlcnMvaWRlL2lvY3RsLmMNCi0tLSBsaW51eC0yLjUuMjQvZHJp dmVycy9pZGUvaW9jdGwuYwlXZWQgSnVuIDI2IDAwOjAyOjUzIDIwMDINCisr KyBsaW51eC9kcml2ZXJzL2lkZS9pb2N0bC5jCVN1biBKdW4gMzAgMjI6MTY6 NTAgMjAwMg0KQEAgLTEyMiw5ICsxMjIsNiBAQA0KIAkJY2FzZSBIRElPX0dF VF8zMkJJVDogew0KIAkJCXVuc2lnbmVkIGxvbmcgdmFsID0gZHJpdmUtPmNo YW5uZWwtPmlvXzMyYml0Ow0KIA0KLQkJCWlmICghY2FwYWJsZShDQVBfU1lT X0FETUlOKSkNCi0JCQkJcmV0dXJuIC1FQUNDRVM7DQotDQogCQkJaWYgKHB1 dF91c2VyKHZhbCwgKHVuc2lnbmVkIGxvbmcgKikgYXJnKSkNCiAJCQkJcmV0 dXJuIC1FRkFVTFQ7DQogCQkJcmV0dXJuIDA7DQpAQCAtMTcyLDkgKzE2OSw2 IEBADQogCQljYXNlIEhESU9fR0VUX1VOTUFTS0lOVFI6IHsNCiAJCQl1bnNp Z25lZCBsb25nIHZhbCA9IGRyaXZlLT5jaGFubmVsLT51bm1hc2s7DQogDQot CQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQ0KLQkJCQlyZXR1cm4g LUVBQ0NFUzsNCi0NCiAJCQlpZiAocHV0X3VzZXIodmFsLCAodW5zaWduZWQg bG9uZyAqKSBhcmcpKQ0KIAkJCQlyZXR1cm4gLUVGQVVMVDsNCiANCkBAIC0y MDIsOSArMTk2LDYgQEANCiAJCWNhc2UgSERJT19HRVRfRE1BOiB7DQogCQkJ dW5zaWduZWQgbG9uZyB2YWwgPSBkcml2ZS0+dXNpbmdfZG1hOw0KIA0KLQkJ CWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkNCi0JCQkJcmV0dXJuIC1F QUNDRVM7DQotDQogCQkJaWYgKHB1dF91c2VyKHZhbCwgKHVuc2lnbmVkIGxv bmcgKikgYXJnKSkNCiAJCQkJcmV0dXJuIC1FRkFVTFQ7DQogDQpAQCAtMjM2 LDkgKzIyNyw2IEBADQogCQkJc3RydWN0IGhkX2dlb21ldHJ5ICpsb2MgPSAo c3RydWN0IGhkX2dlb21ldHJ5ICopIGFyZzsNCiAJCQl1bnNpZ25lZCBzaG9y dCBiaW9zX2N5bCA9IGRyaXZlLT5iaW9zX2N5bDsgLyogdHJ1bmNhdGUgKi8N CiANCi0JCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpDQotCQkJCXJl dHVybiAtRUFDQ0VTOw0KLQ0KIAkJCWlmICghbG9jIHx8IChkcml2ZS0+dHlw ZSAhPSBBVEFfRElTSyAmJiBkcml2ZS0+dHlwZSAhPSBBVEFfRkxPUFBZKSkN CiAJCQkJcmV0dXJuIC1FSU5WQUw7DQogDQpAQCAtMjYxLDkgKzI0OSw2IEBA DQogCQljYXNlIEhESU9fR0VUR0VPX0JJR19SQVc6IHsNCiAJCQlzdHJ1Y3Qg aGRfYmlnX2dlb21ldHJ5ICpsb2MgPSAoc3RydWN0IGhkX2JpZ19nZW9tZXRy eSAqKSBhcmc7DQogDQotCQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4p KQ0KLQkJCQlyZXR1cm4gLUVBQ0NFUzsNCi0NCiAJCQlpZiAoIWxvYyB8fCAo ZHJpdmUtPnR5cGUgIT0gQVRBX0RJU0sgJiYgZHJpdmUtPnR5cGUgIT0gQVRB X0ZMT1BQWSkpDQogCQkJCXJldHVybiAtRUlOVkFMOw0KIA0KQEAgLTI4NCw4 ICsyNjksNiBAQA0KIAkJfQ0KIA0KIAkJY2FzZSBIRElPX0dFVF9JREVOVElU WToNCi0JCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpDQotCQkJCXJl dHVybiAtRUFDQ0VTOw0KIA0KIAkJCWlmIChtaW5vcihpbm9kZS0+aV9yZGV2 KSAmIFBBUlROX01BU0spDQogCQkJCXJldHVybiAtRUlOVkFMOw0KQEAgLTI5 OSw4ICsyODIsNiBAQA0KIAkJCXJldHVybiAwOw0KIA0KIAkJY2FzZSBIRElP X0dFVF9OSUNFOg0KLQkJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkN Ci0JCQkJcmV0dXJuIC1FQUNDRVM7DQogDQogCQkJcmV0dXJuIHB1dF91c2Vy KGRyaXZlLT5kc2Nfb3ZlcmxhcCA8PCBJREVfTklDRV9EU0NfT1ZFUkxBUCB8 DQogCQkJCQlkcml2ZS0+YXRhcGlfb3ZlcmxhcCA8PCBJREVfTklDRV9BVEFQ SV9PVkVSTEFQLA0KQEAgLTMyMyw4ICszMDQsNiBAQA0KIAkJCXJldHVybiAw Ow0KIA0KIAkJY2FzZSBIRElPX0dFVF9CVVNTVEFURToNCi0JCQlpZiAoIWNh cGFibGUoQ0FQX1NZU19BRE1JTikpDQotCQkJCXJldHVybiAtRUFDQ0VTOw0K IA0KIAkJCWlmIChwdXRfdXNlcihkcml2ZS0+Y2hhbm5lbC0+YnVzX3N0YXRl LCAobG9uZyAqKWFyZykpDQogCQkJCXJldHVybiAtRUZBVUxUOw0KZGlmZiAt dXIgLVhkb250ZGlmZiBsaW51eC0yLjUuMjQvZHJpdmVycy9pZGUvcGNpZG1h LmMgbGludXgvZHJpdmVycy9pZGUvcGNpZG1hLmMNCi0tLSBsaW51eC0yLjUu MjQvZHJpdmVycy9pZGUvcGNpZG1hLmMJVGh1IEp1biAyNyAxMzozNDo0MiAy MDAyDQorKysgbGludXgvZHJpdmVycy9pZGUvcGNpZG1hLmMJVHVlIEp1bCAg MiAxNzoyODowMiAyMDAyDQpAQCAtMzYsOCArMzYsNiBAQA0KIA0KIC8qDQog ICogVGhpcyBpcyB0aGUgaGFuZGxlciBmb3IgZGlzayByZWFkL3dyaXRlIERN QSBpbnRlcnJ1cHRzLg0KLSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBi ZSBoZWxkLg0KICAqLw0KIGlkZV9zdGFydHN0b3BfdCBpZGVfZG1hX2ludHIo c3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEp DQogew0KQEAgLTM5NCw4ICszOTIsNiBAQA0KIA0KIC8qDQogICogVGVhcmRv d24gbWFwcGluZ3MgYWZ0ZXIgRE1BIGhhcyBjb21wbGV0ZWQuDQotICoNCi0g KiBDaGFubmVsIGxvY2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogdm9pZCB1 ZG1hX2Rlc3Ryb3lfdGFibGUoc3RydWN0IGF0YV9jaGFubmVsICpjaCkNCiB7 DQpAQCAtNDA2LDggKzQwMiw2IEBADQogICogUHJlcGFyZSB0aGUgY2hhbm5l bCBmb3IgYSBETUEgc3RhcnRmZXIuIFBsZWFzZSBub3RlIHRoYXQgb25seSB0 aGUgYnJva2VuDQogICogUGFjaWZpYyBEaWdpdGFsIGhvc3QgY2hpcCBuZWVk cyB0aGUgcmVxdWVzIHRvIGJlIHBhc3NlZCB0aGVyZSB0byBkZWNpZGUNCiAg KiBhYm91dCBhZGRyZXNzaW5nIG1vZGVzLg0KLSAqDQotICogQ2hhbm5lbCBs b2NrIHNob3VsZCBiZSBoZWxkLg0KICAqLw0KIHZvaWQgdWRtYV9wY2lfc3Rh cnQoc3RydWN0IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAq cnEpDQogew0KQEAgLTQyMSw5ICs0MTUsNiBAQA0KIAlvdXRiKGluYihkbWFf YmFzZSkgfCAxLCBkbWFfYmFzZSk7CS8qIHN0YXJ0IERNQSAqLw0KIH0NCiAN Ci0vKg0KLSAqIENoYW5uZWwgbG9jayBzaG91bGQgYmUgaGVsZC4NCi0gKi8N CiBpbnQgdWRtYV9wY2lfc3RvcChzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUp DQogew0KIAlzdHJ1Y3QgYXRhX2NoYW5uZWwgKmNoID0gZHJpdmUtPmNoYW5u ZWw7DQpAQCAtNDQwLDggKzQzMSw2IEBADQogDQogLyoNCiAgKiBGSVhNRTog VGhpcyBzaG91bGQgYmUgYXR0YWNoZWQgdG8gYSBjaGFubmVsIGFzIHdlIGNh biBzZWUgbm93IQ0KLSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBo ZWxkLg0KICAqLw0KIGludCB1ZG1hX3BjaV9pcnFfc3RhdHVzKHN0cnVjdCBh dGFfZGV2aWNlICpkcml2ZSkNCiB7DQpAQCAtNTI4LDggKzUxNyw2IEBADQog ICoNCiAgKiBJdCdzIGV4cG9ydGVkIG9ubHkgZm9yIGhvc3QgY2hpcHMgd2hp Y2ggdXNlIGl0IGZvciBmYWxsYmFjayBvciAodG9vKSBsYXRlDQogICogY2Fw YWJpbGl0eSBjaGVja2luZy4NCi0gKg0KLSAqIENoYW5uZWwgbG9jayBzaG91 bGQgYmUgaGVsZC4NCiAgKi8NCiBpbnQgdWRtYV9wY2lfaW5pdChzdHJ1Y3Qg YXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQpk aWZmIC11ciAtWGRvbnRkaWZmIGxpbnV4LTIuNS4yNC9kcml2ZXJzL2lkZS90 Y3EuYyBsaW51eC9kcml2ZXJzL2lkZS90Y3EuYw0KLS0tIGxpbnV4LTIuNS4y NC9kcml2ZXJzL2lkZS90Y3EuYwlUaHUgSnVuIDI3IDEzOjM0OjQyIDIwMDIN CisrKyBsaW51eC9kcml2ZXJzL2lkZS90Y3EuYwlUdWUgSnVsICAyIDE4OjEz OjUxIDIwMDINCkBAIC01NywxNiArNTcsMTkgQEANCiANCiBzdGF0aWMgaWRl X3N0YXJ0c3RvcF90IHRjcV9ub3BfaGFuZGxlcihzdHJ1Y3QgYXRhX2Rldmlj ZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQorCXVuc2lnbmVk IGxvbmcgZmxhZ3M7DQogCXN0cnVjdCBhdGFfdGFza2ZpbGUgKmFyZ3MgPSBy cS0+c3BlY2lhbDsNCiANCi0JLyogRklYTUU6ICAtLWJ6b2xuaWVyDQogCWlk ZV9fc3RpKCk7DQotCSovDQorDQorCXNwaW5fbG9ja19pcnFzYXZlKGNoLT5s b2NrLCBmbGFncyk7DQogDQogCWJsa2Rldl9kZXF1ZXVlX3JlcXVlc3QocnEp Ow0KIAlkcml2ZS0+cnEgPSBOVUxMOw0KIAllbmRfdGhhdF9yZXF1ZXN0X2xh c3QocnEpOw0KIA0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNoLT5sb2Nr LCBmbGFncyk7DQorDQogCWtmcmVlKGFyZ3MpOw0KIA0KIAlyZXR1cm4gaWRl X3N0b3BwZWQ7DQpAQCAtODMsOSArODYsMTIgQEANCiAJcmVxdWVzdF9xdWV1 ZV90ICpxID0gJmRyaXZlLT5xdWV1ZTsNCiAJc3RydWN0IGF0YV90YXNrZmls ZSAqYXI7DQogCXN0cnVjdCByZXF1ZXN0ICpycTsNCisJdW5zaWduZWQgbG9u ZyBmbGFnczsNCiANCiAJcHJpbnRrKEtFUk5fSU5GTyAiQVRBOiAlczogaW52 YWxpZGF0aW5nIHBlbmRpbmcgcXVldWUgKCVkKVxuIiwgZHJpdmUtPm5hbWUs IGF0YV9wZW5kaW5nX2NvbW1hbmRzKGRyaXZlKSk7DQogDQorCXNwaW5fbG9j a19pcnFzYXZlKGNoLT5sb2NrLCBmbGFncyk7DQorDQogCWRlbF90aW1lcigm Y2gtPnRpbWVyKTsNCiANCiAJaWYgKHRlc3RfYml0KElERV9ETUEsIGNoLT5h Y3RpdmUpKQ0KQEAgLTEzNyw3ICsxNDMsNyBAQA0KIAkgKiBzdGFydCBkb2lu ZyBzdHVmZiBhZ2Fpbg0KIAkgKi8NCiAJcS0+cmVxdWVzdF9mbihxKTsNCi0N CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3MpOw0K IAlwcmludGsoS0VSTl9ERUJVRyAiQVRBOiB0Y3FfaW52YWxpZGF0ZV9xdWV1 ZTogZG9uZVxuIik7DQogfQ0KIA0KQEAgLTE1NiwyMCArMTYyLDE3IEBADQog CWlmICghY2gtPmhhbmRsZXIpDQogCQlwcmludGsoS0VSTl9FUlIgIkFUQTog JXM6IG1pc3NpbmcgSVNSIVxuIiwgX19GVU5DVElPTl9fKTsNCiANCisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3MpOw0KKw0KIAkv Kg0KIAkgKiBpZiBwZW5kaW5nIGNvbW1hbmRzLCB0cnkgc2VydmljZSBiZWZv cmUgZ2l2aW5nIHVwDQogCSAqLw0KIAlpZiAoYXRhX3BlbmRpbmdfY29tbWFu ZHMoZHJpdmUpICYmICFhdGFfc3RhdHVzKGRyaXZlLCAwLCBTRVJWSUNFX1NU QVQpKQ0KLQkJaWYgKHNlcnZpY2UoZHJpdmUsIGRyaXZlLT5ycSkgPT0gaWRl X3N0YXJ0ZWQpIHsNCi0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNoLT5s b2NrLCBmbGFncyk7DQotDQorCQlpZiAoc2VydmljZShkcml2ZSwgZHJpdmUt PnJxKSA9PSBpZGVfc3RhcnRlZCkNCiAJCQlyZXR1cm47DQotCQl9DQogDQog CWlmIChkcml2ZSkNCiAJCXRjcV9pbnZhbGlkYXRlX3F1ZXVlKGRyaXZlKTsN Ci0NCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjaC0+bG9jaywgZmxhZ3Mp Ow0KIH0NCiANCiBzdGF0aWMgdm9pZCBfX3NldF9pcnEoc3RydWN0IGF0YV9j aGFubmVsICpjaCwgYXRhX2hhbmRsZXJfdCAqaGFuZGxlcikNCkBAIC0xODgs NiArMTkxLDE2IEBADQogCWNoLT5oYW5kbGVyID0gaGFuZGxlcjsNCiB9DQog DQorc3RhdGljIHZvaWQgc2V0X2lycShzdHJ1Y3QgYXRhX2RldmljZSAqZHJp dmUsIGF0YV9oYW5kbGVyX3QgKmhhbmRsZXIpDQorew0KKwlzdHJ1Y3QgYXRh X2NoYW5uZWwgKmNoID0gZHJpdmUtPmNoYW5uZWw7DQorCXVuc2lnbmVkIGxv bmcgZmxhZ3M7DQorDQorCXNwaW5fbG9ja19pcnFzYXZlKGNoLT5sb2NrLCBm bGFncyk7DQorCV9fc2V0X2lycShjaCwgaGFuZGxlcik7DQorCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoY2gtPmxvY2ssIGZsYWdzKTsNCit9DQorDQogLyoN CiAgKiB3YWl0IDQwMG5zLCB0aGVuIHBvbGwgZm9yIGJ1c3lfbWFzayB0byBj bGVhciBmcm9tIGFsdCBzdGF0dXMNCiAgKi8NCkBAIC0yMTUsMTEgKzIyOCwx MiBAQA0KICAqIGFuZCBpdCBtdXN0IGhhdmUgcmVwb3J0ZWQgYSBuZWVkIGZv ciBzZXJ2aWNlIChzdGF0dXMgaGFzIFNFUlZJQ0VfU1RBVCBzZXQpDQogICoN CiAgKiBBbHNvLCBuSUVOIG11c3QgYmUgc2V0IGFzIG5vdCB0byBuZWVkIHBy b3RlY3Rpb24gYWdhaW5zdCBpZGVfZG1hcV9pbnRyDQotICoNCi0gKiBDaGFu bmVsIGxvY2sgc2hvdWxkIGJlIGhlbGQuDQogICovDQogc3RhdGljIGlkZV9z dGFydHN0b3BfdCBzZXJ2aWNlKHN0cnVjdCBhdGFfZGV2aWNlICpkcml2ZSwg c3RydWN0IHJlcXVlc3QgKnJxKQ0KIHsNCisJc3RydWN0IGF0YV9jaGFubmVs ICpjaCA9IGRyaXZlLT5jaGFubmVsOw0KKwlpZGVfc3RhcnRzdG9wX3QgcmV0 Ow0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIAl1OCBmZWF0LCBzdGF0Ow0K IAlpbnQgdGFnOw0KIA0KQEAgLTI4MCwxNSArMjk0LDE4IEBADQogDQogCVRD UV9QUklOVEsoIiVzOiBzdGF0ICV4LCBmZWF0ICV4XG4iLCBfX0ZVTkNUSU9O X18sIHN0YXQsIGZlYXQpOw0KIA0KKwlzcGluX2xvY2tfaXJxc2F2ZShjaC0+ bG9jaywgZmxhZ3MpOw0KKw0KIAlycSA9IGJsa19xdWV1ZV9maW5kX3RhZygm ZHJpdmUtPnF1ZXVlLCB0YWcpOw0KIAlpZiAoIXJxKSB7DQogCQlwcmludGso S0VSTl9FUlIiJXM6IG1pc3NpbmcgcmVxdWVzdCBmb3IgdGFnICVkXG4iLCBf X0ZVTkNUSU9OX18sIHRhZyk7DQotDQorCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKGNoLT5sb2NrLCBmbGFncyk7DQogCQlyZXR1cm4gaWRlX3N0b3BwZWQ7 DQogCX0NCiANCiAJZHJpdmUtPnJxID0gcnE7DQogDQorCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoY2gtPmxvY2ssIGZsYWdzKTsNCiAJLyoNCiAJICogd2Un bGwgc3RhcnQgYSBkbWEgcmVhZCBvciB3cml0ZSwgZGV2aWNlIHdpbGwgdHJp Z2dlcg0KIAkgKiBpbnRlcnJ1cHQgdG8gaW5kaWNhdGUgZW5kIG9mIHRyYW5z ZmVyLCByZWxlYXNlIGlzIG5vdCBhbGxvd2VkDQpAQCAtMzExLDcgKzMyOCw3 IEBADQogCS8qDQogCSAqIHdlIGhhdmUgcGVuZGluZyBjb21tYW5kcywgd2Fp dCBmb3IgaW50ZXJydXB0DQogCSAqLw0KLQlfX3NldF9pcnEoZHJpdmUsIGlk ZV9kbWFxX2ludHIpOw0KKwlzZXRfaXJxKGRyaXZlLCBpZGVfZG1hcV9pbnRy KTsNCiANCiAJcmV0dXJuIGlkZV9zdGFydGVkOw0KIH0NCkBAIC01MDQsOCAr NTIxLDYgQEANCiAvKg0KICAqIEludm9rZWQgZnJvbSBhIFNFUlZJQ0UgaW50 ZXJydXB0LCBjb21tYW5kIGV0YyBhbHJlYWR5IGtub3duLiAgSnVzdCBuZWVk IHRvDQogICogc3RhcnQgdGhlIGRtYSBlbmdpbmUgZm9yIHRoaXMgdGFnLg0K LSAqDQotICogQ2hhbm5lbCBsb2NrIHNob3VsZCBiZSBoZWxkLg0KICAqLw0K IHN0YXRpYyBpZGVfc3RhcnRzdG9wX3QgdWRtYV90Y3Ffc3RhcnQoc3RydWN0 IGF0YV9kZXZpY2UgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpDQogew0K QEAgLTUyMSw3ICs1MzYsNyBAQA0KIAlpZiAoYXRhX3N0YXJ0X2RtYShkcml2 ZSwgcnEpKQ0KIAkJcmV0dXJuIGlkZV9zdG9wcGVkOw0KIA0KLQlfX3NldF9p cnEoY2gsIGlkZV9kbWFxX2ludHIpOw0KKwlzZXRfaXJxKGNoLCBpZGVfZG1h cV9pbnRyKTsNCiAJdWRtYV9zdGFydChkcml2ZSwgcnEpOw0KIA0KIAlyZXR1 cm4gaWRlX3N0YXJ0ZWQ7DQpAQCAtNTI5LDggKzU0NCw2IEBADQogDQogLyoN CiAgKiBTdGFydCBhIHF1ZXVlZCBjb21tYW5kIGZyb20gc2NyYXRjaC4NCi0g Kg0KLSAqIENoYW5uZWwgbG9jayBzaG91bGQgYmUgaGVsZC4NCiAgKi8NCiBp ZGVfc3RhcnRzdG9wX3QgdWRtYV90Y3FfaW5pdChzdHJ1Y3QgYXRhX2Rldmlj ZSAqZHJpdmUsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQpAQCAtNTczLDcg KzU4Niw3IEBADQogCWlmICgoZmVhdCA9IEdFVF9GRUFUKCkpICYgTlNFQ19S RUwpIHsNCiAJCWRyaXZlLT5pbW1lZF9yZWwrKzsNCiAJCWRyaXZlLT5ycSA9 IE5VTEw7DQotCQlfX3NldF9pcnEoZHJpdmUtPmNoYW5uZWwsIGlkZV9kbWFx X2ludHIpOw0KKwkJc2V0X2lycShkcml2ZS0+Y2hhbm5lbCwgaWRlX2RtYXFf aW50cik7DQogDQogCQlUQ1FfUFJJTlRLKCJSRUwgaW4gcXVldWVkX3N0YXJ0 XG4iKTsNCiANCmRpZmYgLXVyIC1YZG9udGRpZmYgbGludXgtMi41LjI0L2Ry aXZlcnMvc2NzaS9pZGUtc2NzaS5jIGxpbnV4L2RyaXZlcnMvc2NzaS9pZGUt c2NzaS5jDQotLS0gbGludXgtMi41LjI0L2RyaXZlcnMvc2NzaS9pZGUtc2Nz aS5jCUZyaSBKdW4gMjggMDA6MDM6MDYgMjAwMg0KKysrIGxpbnV4L2RyaXZl cnMvc2NzaS9pZGUtc2NzaS5jCVR1ZSBKdWwgIDIgMTc6MzI6NDcgMjAwMg0K QEAgLTIzNiw2ICsyMzYsNyBAQA0KIA0KIHN0YXRpYyBpbnQgaWRlc2NzaV9l bmRfcmVxdWVzdChzdHJ1Y3QgYXRhX2RldmljZSAqZHJpdmUsIHN0cnVjdCBy ZXF1ZXN0ICpycSwgaW50IHVwdG9kYXRlKQ0KIHsNCisJdW5zaWduZWQgbG9u ZyBmbGFnczsNCiAJc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IGRyaXZlLT5k cml2ZXJfZGF0YTsNCiAJaWRlc2NzaV9zY3NpX3QgKnNjc2kgPSBpZGVzY3Np X3ByaXZhdGUoaG9zdCk7DQogCXN0cnVjdCBhdGFwaV9wYWNrZXRfY29tbWFu ZCAqcGMgPSAoc3RydWN0IGF0YXBpX3BhY2tldF9jb21tYW5kICopIHJxLT5z cGVjaWFsOw0KQEAgLTI0NywxMCArMjQ4LDE0IEBADQogCQlyZXR1cm4gMDsN CiAJfQ0KIA0KKwlzcGluX2xvY2tfaXJxc2F2ZShkcml2ZS0+Y2hhbm5lbC0+ bG9jaywgZmxhZ3MpOw0KKw0KIAlibGtkZXZfZGVxdWV1ZV9yZXF1ZXN0KHJx KTsNCiAJZHJpdmUtPnJxID0gTlVMTDsNCiAJZW5kX3RoYXRfcmVxdWVzdF9s YXN0KHJxKTsNCiANCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShkcml2ZS0+ Y2hhbm5lbC0+bG9jaywgZmxhZ3MpOw0KKw0KIAlpZiAocnEtPmVycm9ycyA+ PSBFUlJPUl9NQVgpIHsNCiAJCXBjLT5zLnNjc2lfY21kLT5yZXN1bHQgPSBE SURfRVJST1IgPDwgMTY7DQogCQlpZiAobG9nKQ0K ---559023410-851401618-1025646363=:18786-- - 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/