From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S267982AbUHEVeo (ORCPT ); Thu, 5 Aug 2004 17:34:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S267972AbUHEVe3 (ORCPT ); Thu, 5 Aug 2004 17:34:29 -0400 Received: from hqemgate02.nvidia.com ([216.228.112.145]:48651 "EHLO hqemgate02.nvidia.com") by vger.kernel.org with ESMTP id S267983AbUHEVbJ (ORCPT ); Thu, 5 Aug 2004 17:31:09 -0400 X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C47B33.8367C8C7" Subject: [PATCH 2.6.8-rc2] sata_nv.c Date: Thu, 5 Aug 2004 14:31:05 -0700 Message-ID: X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [PATCH 2.6.8-rc2] sata_nv.c Thread-Index: AcR0C1TpQP7X89+/TRuAZWllJhA6jAHJ5scQ From: "Andrew Chew" To: "Jeff Garzik" Cc: , X-OriginalArrivalTime: 05 Aug 2004 21:30:29.0814 (UTC) FILETIME=[6E59BD60:01C47B33] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C47B33.8367C8C7 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Attached is a patch to the sata_nv driver that accounts for a few differences between the nForce3 and CK804/MCP04 SATA controllers. A minor change to libata-core.c needs to accompany this patch. This is in regards to the function ata_pci_remove_one(), where the host_set->ops->host_stop(host_set) needs to occur before the iounmap(host_set->mmio_base). This is because sata_nv's host_stop callback needs access to the iomapped region. ------_=_NextPart_001_01C47B33.8367C8C7 Content-Type: application/octet-stream; name="sata2-6.diff" Content-Transfer-Encoding: base64 Content-Description: sata2-6.diff Content-Disposition: attachment; filename="sata2-6.diff" LS0tIGxpbnV4LTIuNi44LXJjMi9kcml2ZXJzL3Njc2kvc2F0YV9udi5jCTIwMDQtMDgtMDUgMTQ6 MTc6MzEuNzExODk5NjcyIC0wNzAwCisrKyBsaW51eC9kcml2ZXJzL3Njc2kvc2F0YV9udi5jCTIw MDQtMDgtMDUgMTQ6MjA6MzIuNDQwNDI0NzYwIC0wNzAwCkBAIC0yMCw2ICsyMCwxMSBAQAogICog IElmIHlvdSBkbyBub3QgZGVsZXRlIHRoZSBwcm92aXNpb25zIGFib3ZlLCBhIHJlY2lwaWVudCBt YXkgdXNlIHlvdXIKICAqICB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlciBlaXRoZXIgdGhlIE9T TCBvciB0aGUgR1BMLgogICoKKyAqICAwLjAyCisgKiAgICAgLSBBZGRlZCBzdXBwb3J0IGZvciBD SzgwNCBTQVRBIGNvbnRyb2xsZXIuCisgKgorICogIDAuMDEKKyAqICAgICAtIEluaXRpYWwgcmV2 aXNpb24uCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgpAQCAtMzUsNyArNDAsNyBA QAogI2luY2x1ZGUgPGxpbnV4L2xpYmF0YS5oPgogCiAjZGVmaW5lIERSVl9OQU1FCQkJInNhdGFf bnYiCi0jZGVmaW5lIERSVl9WRVJTSU9OCQkJIjAuMDEiCisjZGVmaW5lIERSVl9WRVJTSU9OCQkJ IjAuMDIiCiAKICNkZWZpbmUgTlZfUE9SVFMJCQkyCiAjZGVmaW5lIE5WX1BJT19NQVNLCQkJMHgx ZgpAQCAtNDYsNiArNTEsNyBAQAogI2RlZmluZSBOVl9QT1JUMV9TQ1JfUkVHX09GRlNFVAkJMHg0 MAogCiAjZGVmaW5lIE5WX0lOVF9TVEFUVVMJCQkweDEwCisjZGVmaW5lIE5WX0lOVF9TVEFUVVNf Q0s4MDQJCTB4NDQwCiAjZGVmaW5lIE5WX0lOVF9TVEFUVVNfUERFVl9JTlQJCTB4MDEKICNkZWZp bmUgTlZfSU5UX1NUQVRVU19QREVWX1BNCQkweDAyCiAjZGVmaW5lIE5WX0lOVF9TVEFUVVNfUERF Vl9BRERFRAkweDA0CkBAIC02Miw2ICs2OCw3IEBACiAJCQkJCU5WX0lOVF9TVEFUVVNfU0RFVl9I T1RQTFVHKQogCiAjZGVmaW5lIE5WX0lOVF9FTkFCTEUJCQkweDExCisjZGVmaW5lIE5WX0lOVF9F TkFCTEVfQ0s4MDQJCTB4NDQxCiAjZGVmaW5lIE5WX0lOVF9FTkFCTEVfUERFVl9NQVNLCQkweDAx CiAjZGVmaW5lIE5WX0lOVF9FTkFCTEVfUERFVl9QTQkJMHgwMgogI2RlZmluZSBOVl9JTlRfRU5B QkxFX1BERVZfQURERUQJMHgwNApAQCAtODAsMzAgKzg3LDg2IEBACiAjZGVmaW5lIE5WX0lOVF9D T05GSUcJCQkweDEyCiAjZGVmaW5lIE5WX0lOVF9DT05GSUdfTUVUSEQJCTB4MDEgLy8gMCA9IElO VCwgMSA9IFNNSQogCisvLyBGb3IgUENJIGNvbmZpZyByZWdpc3RlciAyMAorI2RlZmluZSBOVl9N Q1BfU0FUQV9DRkdfMjAJCTB4NTAKKyNkZWZpbmUgTlZfTUNQX1NBVEFfQ0ZHXzIwX1NBVEFfU1BB Q0VfRU4JMHgwNAorCiBzdGF0aWMgaW50IG52X2luaXRfb25lIChzdHJ1Y3QgcGNpX2RldiAqcGRl diwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCk7CiBpcnFyZXR1cm5fdCBudl9pbnRl cnJ1cHQgKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSwgc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp Owogc3RhdGljIHUzMiBudl9zY3JfcmVhZCAoc3RydWN0IGF0YV9wb3J0ICphcCwgdW5zaWduZWQg aW50IHNjX3JlZyk7CiBzdGF0aWMgdm9pZCBudl9zY3Jfd3JpdGUgKHN0cnVjdCBhdGFfcG9ydCAq YXAsIHVuc2lnbmVkIGludCBzY19yZWcsIHUzMiB2YWwpOwogc3RhdGljIHZvaWQgbnZfaG9zdF9z dG9wIChzdHJ1Y3QgYXRhX2hvc3Rfc2V0ICpob3N0X3NldCk7CitzdGF0aWMgdm9pZCBudl9lbmFi bGVfaG90cGx1ZyhzdHJ1Y3QgYXRhX3Byb2JlX2VudCAqcHJvYmVfZW50KTsKK3N0YXRpYyB2b2lk IG52X2Rpc2FibGVfaG90cGx1ZyhzdHJ1Y3QgYXRhX2hvc3Rfc2V0ICpob3N0X3NldCk7CitzdGF0 aWMgdm9pZCBudl9jaGVja19ob3RwbHVnKHN0cnVjdCBhdGFfaG9zdF9zZXQgKmhvc3Rfc2V0KTsK K3N0YXRpYyB2b2lkIG52X2VuYWJsZV9ob3RwbHVnX2NrODA0KHN0cnVjdCBhdGFfcHJvYmVfZW50 ICpwcm9iZV9lbnQpOworc3RhdGljIHZvaWQgbnZfZGlzYWJsZV9ob3RwbHVnX2NrODA0KHN0cnVj dCBhdGFfaG9zdF9zZXQgKmhvc3Rfc2V0KTsKK3N0YXRpYyB2b2lkIG52X2NoZWNrX2hvdHBsdWdf Y2s4MDQoc3RydWN0IGF0YV9ob3N0X3NldCAqaG9zdF9zZXQpOworCitlbnVtIG52X2hvc3RfdHlw ZQoreworCU5GT1JDRTIsCisJTkZPUkNFMywKKwlDSzgwNAorfTsKIAogc3RhdGljIHN0cnVjdCBw Y2lfZGV2aWNlX2lkIG52X3BjaV90YmxbXSA9IHsKIAl7IFBDSV9WRU5ET1JfSURfTlZJRElBLCBQ Q0lfREVWSUNFX0lEX05WSURJQV9ORk9SQ0UyU19TQVRBLAotCQlQQ0lfQU5ZX0lELCBQQ0lfQU5Z X0lELCB9LAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBORk9SQ0UyIH0sCiAJeyBQ Q0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFM1NfU0FUQSwK LQkJUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgfSwKKwkJUENJX0FOWV9JRCwgUENJX0FOWV9JRCwg MCwgMCwgTkZPUkNFMyB9LAogCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0VfSURf TlZJRElBX05GT1JDRTNTX1NBVEEyLAotCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCB9LAorCQlQ Q0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBORk9SQ0UzIH0sCiAJeyBQQ0lfVkVORE9SX0lE X05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZPUkNFX0NLODA0X1NBVEEsCi0JCVBDSV9B TllfSUQsIFBDSV9BTllfSUQsIH0sCisJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENL ODA0IH0sCiAJeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgUENJX0RFVklDRV9JRF9OVklESUFfTkZP UkNFX0NLODA0X1NBVEEyLAotCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCB9LAorCQlQQ0lfQU5Z X0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSzgwNCB9LAogCXsgUENJX1ZFTkRPUl9JRF9OVklESUEs IFBDSV9ERVZJQ0VfSURfTlZJRElBX05GT1JDRV9NQ1AwNF9TQVRBLAotCQlQQ0lfQU5ZX0lELCBQ Q0lfQU5ZX0lELCB9LAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSzgwNCB9LAog CXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIFBDSV9ERVZJQ0VfSURfTlZJRElBX05GT1JDRV9NQ1Aw NF9TQVRBMiwKLQkJUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgfSwKKwkJUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgQ0s4MDQgfSwKIAl7IDAsIH0gLyogdGVybWluYXRlIGxpc3QgKi8KIH07 CiAKKyNkZWZpbmUgTlZfSE9TVF9GTEFHU19TQ1JfTU1JTwkweDAwMDAwMDAxCisKK3N0cnVjdCBu dl9ob3N0X2Rlc2MKK3sKKwllbnVtIG52X2hvc3RfdHlwZQlob3N0X3R5cGU7CisJdW5zaWduZWQg bG9uZwkJaG9zdF9mbGFnczsKKwl2b2lkCQkJKCplbmFibGVfaG90cGx1Zykoc3RydWN0IGF0YV9w cm9iZV9lbnQgKnByb2JlX2VudCk7CisJdm9pZAkJCSgqZGlzYWJsZV9ob3RwbHVnKShzdHJ1Y3Qg YXRhX2hvc3Rfc2V0ICpob3N0X3NldCk7CisJdm9pZAkJCSgqY2hlY2tfaG90cGx1Zykoc3RydWN0 IGF0YV9ob3N0X3NldCAqaG9zdF9zZXQpOworCit9Oworc3RhdGljIHN0cnVjdCBudl9ob3N0X2Rl c2MgbnZfZGV2aWNlX3RibFtdID0geworCXsKKwkJLmhvc3RfdHlwZQk9IE5GT1JDRTIsCisJCS5o b3N0X2ZsYWdzCT0gMHgwMDAwMDAwMCwKKwkJLmVuYWJsZV9ob3RwbHVnCT0gbnZfZW5hYmxlX2hv dHBsdWcsCisJCS5kaXNhYmxlX2hvdHBsdWc9IG52X2Rpc2FibGVfaG90cGx1ZywKKwkJLmNoZWNr X2hvdHBsdWcJPSBudl9jaGVja19ob3RwbHVnLAorCX0sCisJeworCQkuaG9zdF90eXBlCT0gTkZP UkNFMywKKwkJLmhvc3RfZmxhZ3MJPSAweDAwMDAwMDAwLAorCQkuZW5hYmxlX2hvdHBsdWcJPSBu dl9lbmFibGVfaG90cGx1ZywKKwkJLmRpc2FibGVfaG90cGx1Zz0gbnZfZGlzYWJsZV9ob3RwbHVn LAorCQkuY2hlY2tfaG90cGx1Zwk9IG52X2NoZWNrX2hvdHBsdWcsCisJfSwKKwl7CS5ob3N0X3R5 cGUJPSBDSzgwNCwKKwkJLmhvc3RfZmxhZ3MJPSBOVl9IT1NUX0ZMQUdTX1NDUl9NTUlPLAorCQku ZW5hYmxlX2hvdHBsdWcJPSBudl9lbmFibGVfaG90cGx1Z19jazgwNCwKKwkJLmRpc2FibGVfaG90 cGx1Zz0gbnZfZGlzYWJsZV9ob3RwbHVnX2NrODA0LAorCQkuY2hlY2tfaG90cGx1Zwk9IG52X2No ZWNrX2hvdHBsdWdfY2s4MDQsCisJfSwKK307CisKK3N0cnVjdCBudl9ob3N0Cit7CisJc3RydWN0 IG52X2hvc3RfZGVzYwkqaG9zdF9kZXNjOworfTsKKwogc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVy IG52X3BjaV9kcml2ZXIgPSB7CiAJLm5hbWUJCQk9IERSVl9OQU1FLAogCS5pZF90YWJsZQkJPSBu dl9wY2lfdGJsLApAQCAtMTU4LDExICsyMjEsMTAgQEAKIGlycXJldHVybl90IG52X2ludGVycnVw dCAoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsK IAlzdHJ1Y3QgYXRhX2hvc3Rfc2V0ICpob3N0X3NldCA9IGRldl9pbnN0YW5jZTsKKwlzdHJ1Y3Qg bnZfaG9zdCAqaG9zdCA9IGhvc3Rfc2V0LT5wcml2YXRlX2RhdGE7CiAJdW5zaWduZWQgaW50IGk7 CiAJdW5zaWduZWQgaW50IGhhbmRsZWQgPSAwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdTgg aW50cl9zdGF0dXM7Ci0JdTggaW50cl9lbmFibGU7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmaG9z dF9zZXQtPmxvY2ssIGZsYWdzKTsKIApAQCAtMTc4LDM1ICsyNDAsMTEgQEAKIAkJCQloYW5kbGVk ICs9IGF0YV9ob3N0X2ludHIoYXAsIHFjKTsKIAkJfQogCi0JCWludHJfc3RhdHVzID0gaW5iKGFw LT5pb2FkZHIuc2NyX2FkZHIgKyBOVl9JTlRfU1RBVFVTKTsKLQkJaW50cl9lbmFibGUgPSBpbmIo YXAtPmlvYWRkci5zY3JfYWRkciArIE5WX0lOVF9FTkFCTEUpOwotCi0JCS8vIENsZWFyIGludGVy cnVwdCBzdGF0dXMuCi0JCW91dGIoMHhmZiwgYXAtPmlvYWRkci5zY3JfYWRkciArIE5WX0lOVF9T VEFUVVMpOwotCi0JCWlmIChpbnRyX3N0YXR1cyAmIE5WX0lOVF9TVEFUVVNfSE9UUExVRykgewot CQkJaWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRVU19QREVWX0FEREVEKSB7Ci0JCQkJcHJp bnRrKEtFUk5fV0FSTklORyAiYXRhJXU6ICIKLQkJCQkJIlByaW1hcnkgZGV2aWNlIGFkZGVkXG4i LCBhcC0+aWQpOwotCQkJfQotCi0JCQlpZiAoaW50cl9zdGF0dXMgJiBOVl9JTlRfU1RBVFVTX1BE RVZfUkVNT1ZFRCkgewotCQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImF0YSV1OiAiCi0JCQkJCSJQ cmltYXJ5IGRldmljZSByZW1vdmVkXG4iLCBhcC0+aWQpOwotCQkJfQotCi0JCQlpZiAoaW50cl9z dGF0dXMgJiBOVl9JTlRfU1RBVFVTX1NERVZfQURERUQpIHsKLQkJCQlwcmludGsoS0VSTl9XQVJO SU5HICJhdGEldTogIgotCQkJCQkiU2Vjb25kYXJ5IGRldmljZSBhZGRlZFxuIiwgYXAtPmlkKTsK LQkJCX0KLQotCQkJaWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRVU19TREVWX1JFTU9WRUQp IHsKLQkJCQlwcmludGsoS0VSTl9XQVJOSU5HICJhdGEldTogIgotCQkJCQkiU2Vjb25kYXJ5IGRl dmljZSByZW1vdmVkXG4iLCBhcC0+aWQpOwotCQkJfQotCQl9CiAJfQogCisJaWYgKGhvc3QtPmhv c3RfZGVzYy0+Y2hlY2tfaG90cGx1ZykKKwkJaG9zdC0+aG9zdF9kZXNjLT5jaGVja19ob3RwbHVn KGhvc3Rfc2V0KTsKKwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmhvc3Rfc2V0LT5sb2NrLCBm bGFncyk7CiAKIAlyZXR1cm4gSVJRX1JFVFZBTChoYW5kbGVkKTsKQEAgLTIxNCw0MSArMjUyLDQ4 IEBACiAKIHN0YXRpYyB1MzIgbnZfc2NyX3JlYWQgKHN0cnVjdCBhdGFfcG9ydCAqYXAsIHVuc2ln bmVkIGludCBzY19yZWcpCiB7CisJc3RydWN0IGF0YV9ob3N0X3NldCAqaG9zdF9zZXQgPSBhcC0+ aG9zdF9zZXQ7CisJc3RydWN0IG52X2hvc3QgKmhvc3QgPSBob3N0X3NldC0+cHJpdmF0ZV9kYXRh OworCiAJaWYgKHNjX3JlZyA+IFNDUl9DT05UUk9MKQogCQlyZXR1cm4gMHhmZmZmZmZmZlU7CiAK LQlyZXR1cm4gaW5sKGFwLT5pb2FkZHIuc2NyX2FkZHIgKyAoc2NfcmVnICogNCkpOworCWlmICho b3N0LT5ob3N0X2Rlc2MtPmhvc3RfZmxhZ3MgJiBOVl9IT1NUX0ZMQUdTX1NDUl9NTUlPKQorCQly ZXR1cm4gcmVhZGwoYXAtPmlvYWRkci5zY3JfYWRkciArIChzY19yZWcgKiA0KSk7CisJZWxzZQor CQlyZXR1cm4gaW5sKGFwLT5pb2FkZHIuc2NyX2FkZHIgKyAoc2NfcmVnICogNCkpOwogfQogCiBz dGF0aWMgdm9pZCBudl9zY3Jfd3JpdGUgKHN0cnVjdCBhdGFfcG9ydCAqYXAsIHVuc2lnbmVkIGlu dCBzY19yZWcsIHUzMiB2YWwpCiB7CisJc3RydWN0IGF0YV9ob3N0X3NldCAqaG9zdF9zZXQgPSBh cC0+aG9zdF9zZXQ7CisJc3RydWN0IG52X2hvc3QgKmhvc3QgPSBob3N0X3NldC0+cHJpdmF0ZV9k YXRhOworCiAJaWYgKHNjX3JlZyA+IFNDUl9DT05UUk9MKQogCQlyZXR1cm47CiAKLQlvdXRsKHZh bCwgYXAtPmlvYWRkci5zY3JfYWRkciArIChzY19yZWcgKiA0KSk7CisJaWYgKGhvc3QtPmhvc3Rf ZGVzYy0+aG9zdF9mbGFncyAmIE5WX0hPU1RfRkxBR1NfU0NSX01NSU8pCisJCXdyaXRlbCh2YWws IGFwLT5pb2FkZHIuc2NyX2FkZHIgKyAoc2NfcmVnICogNCkpOworCWVsc2UKKwkJb3V0bCh2YWws IGFwLT5pb2FkZHIuc2NyX2FkZHIgKyAoc2NfcmVnICogNCkpOwogfQogCiBzdGF0aWMgdm9pZCBu dl9ob3N0X3N0b3AgKHN0cnVjdCBhdGFfaG9zdF9zZXQgKmhvc3Rfc2V0KQogewotCWludCBpOwor CXN0cnVjdCBudl9ob3N0ICpob3N0ID0gaG9zdF9zZXQtPnByaXZhdGVfZGF0YTsKIAotCWZvciAo aT0wOyBpPGhvc3Rfc2V0LT5uX3BvcnRzOyBpKyspIHsKLQkJdTggaW50cl9tYXNrOworCS8vIERp c2FibGUgaG90cGx1ZyBldmVudCBpbnRlcnJ1cHRzLgorCWlmIChob3N0LT5ob3N0X2Rlc2MtPmRp c2FibGVfaG90cGx1ZykKKwkJaG9zdC0+aG9zdF9kZXNjLT5kaXNhYmxlX2hvdHBsdWcoaG9zdF9z ZXQpOwogCi0JCS8vIERpc2FibGUgaG90cGx1ZyBldmVudCBpbnRlcnJ1cHRzLgotCQlpbnRyX21h c2sgPSBpbmIoaG9zdF9zZXQtPnBvcnRzW2ldLT5pb2FkZHIuc2NyX2FkZHIgKwotCQkJCU5WX0lO VF9FTkFCTEUpOwotCQlpbnRyX21hc2sgJj0gfihOVl9JTlRfRU5BQkxFX0hPVFBMVUcpOwotCQlv dXRiKGludHJfbWFzaywgaG9zdF9zZXQtPnBvcnRzW2ldLT5pb2FkZHIuc2NyX2FkZHIgKwotCQkJ CU5WX0lOVF9FTkFCTEUpOwotCX0KKwlrZnJlZShob3N0KTsKIH0KIAogc3RhdGljIGludCBudl9p bml0X29uZSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lk ICplbnQpCiB7CiAJc3RhdGljIGludCBwcmludGVkX3ZlcnNpb24gPSAwOworCXN0cnVjdCBudl9o b3N0ICpob3N0OwogCXN0cnVjdCBhdGFfcHJvYmVfZW50ICpwcm9iZV9lbnQgPSBOVUxMOwotCWlu dCBpOwogCWludCByYzsKIAogCWlmICghcHJpbnRlZF92ZXJzaW9uKyspCkBAIC0yNzUsNiArMzIw LDE0IEBACiAJCWdvdG8gZXJyX291dF9yZWdpb25zOwogCX0KIAorCWhvc3QgPSBrbWFsbG9jKHNp emVvZihzdHJ1Y3QgbnZfaG9zdCksIEdGUF9LRVJORUwpOworCWlmICghaG9zdCkgeworCQlyYyA9 IC1FTk9NRU07CisJCWdvdG8gZXJyX291dF9mcmVlX2VudDsKKwl9CisKKwlob3N0LT5ob3N0X2Rl c2MgPSAmbnZfZGV2aWNlX3RibFtlbnQtPmRyaXZlcl9kYXRhXTsKKwogCW1lbXNldChwcm9iZV9l bnQsIDAsIHNpemVvZigqcHJvYmVfZW50KSk7CiAJSU5JVF9MSVNUX0hFQUQoJnByb2JlX2VudC0+ bm9kZSk7CiAKQEAgLTI4NCw2ICszMzcsNyBAQAogCQkJCUFUQV9GTEFHX1NBVEFfUkVTRVQgfAog CQkJCUFUQV9GTEFHX1NSU1QgfAogCQkJCUFUQV9GTEFHX05PX0xFR0FDWTsKKwogCXByb2JlX2Vu dC0+cG9ydF9vcHMgPSAmbnZfb3BzOwogCXByb2JlX2VudC0+bl9wb3J0cyA9IE5WX1BPUlRTOwog CXByb2JlX2VudC0+aXJxID0gcGRldi0+aXJxOwpAQCAtMjk4LDggKzM1Miw2IEBACiAJCXBjaV9y ZXNvdXJjZV9zdGFydChwZGV2LCAxKSB8IEFUQV9QQ0lfQ1RMX09GUzsKIAlwcm9iZV9lbnQtPnBv cnRbMF0uYm1kbWFfYWRkciA9CiAJCXBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCA0KSB8IE5WX1BP UlQwX0JNRE1BX1JFR19PRkZTRVQ7Ci0JcHJvYmVfZW50LT5wb3J0WzBdLnNjcl9hZGRyID0KLQkJ cGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDUpIHwgTlZfUE9SVDBfU0NSX1JFR19PRkZTRVQ7CiAK IAlwcm9iZV9lbnQtPnBvcnRbMV0uY21kX2FkZHIgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwg Mik7CiAJYXRhX3N0ZF9wb3J0cygmcHJvYmVfZW50LT5wb3J0WzFdKTsKQEAgLTMwOCwzMSArMzYw LDQ4IEBACiAJCXBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAzKSB8IEFUQV9QQ0lfQ1RMX09GUzsK IAlwcm9iZV9lbnQtPnBvcnRbMV0uYm1kbWFfYWRkciA9CiAJCXBjaV9yZXNvdXJjZV9zdGFydChw ZGV2LCA0KSB8IE5WX1BPUlQxX0JNRE1BX1JFR19PRkZTRVQ7Ci0JcHJvYmVfZW50LT5wb3J0WzFd LnNjcl9hZGRyID0KLQkJcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDUpIHwgTlZfUE9SVDFfU0NS X1JFR19PRkZTRVQ7CiAKLQlwY2lfc2V0X21hc3RlcihwZGV2KTsKKwlwcm9iZV9lbnQtPnByaXZh dGVfZGF0YSA9IGhvc3Q7CiAKLQlyYyA9IGF0YV9kZXZpY2VfYWRkKHByb2JlX2VudCk7Ci0JaWYg KHJjICE9IE5WX1BPUlRTKQotCQlnb3RvIGVycl9vdXRfcmVnaW9uczsKKwlpZiAoaG9zdC0+aG9z dF9kZXNjLT5ob3N0X2ZsYWdzICYgTlZfSE9TVF9GTEFHU19TQ1JfTU1JTykgeworCQl1bnNpZ25l ZCBsb25nIGJhc2U7CiAKLQkvLyBFbmFibGUgaG90cGx1ZyBldmVudCBpbnRlcnJ1cHRzLgotCWZv ciAoaT0wOyBpPHByb2JlX2VudC0+bl9wb3J0czsgaSsrKSB7Ci0JCXU4IGludHJfbWFzazsKKwkJ cHJvYmVfZW50LT5tbWlvX2Jhc2UgPSBpb3JlbWFwKHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCA1 KSwKKwkJCQlwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDUpKTsKKwkJaWYgKHByb2JlX2VudC0+bW1p b19iYXNlID09IE5VTEwpCisJCQlnb3RvIGVycl9vdXRfZnJlZV9lbnQ7CisKKwkJYmFzZSA9ICh1 bnNpZ25lZCBsb25nKXByb2JlX2VudC0+bW1pb19iYXNlOworCisJCXByb2JlX2VudC0+cG9ydFsw XS5zY3JfYWRkciA9CisJCQliYXNlICsgTlZfUE9SVDBfU0NSX1JFR19PRkZTRVQ7CisJCXByb2Jl X2VudC0+cG9ydFsxXS5zY3JfYWRkciA9CisJCQliYXNlICsgTlZfUE9SVDFfU0NSX1JFR19PRkZT RVQ7CisJfSBlbHNlIHsKKworCQlwcm9iZV9lbnQtPnBvcnRbMF0uc2NyX2FkZHIgPQorCQkJcGNp X3Jlc291cmNlX3N0YXJ0KHBkZXYsIDUpIHwgTlZfUE9SVDBfU0NSX1JFR19PRkZTRVQ7CisJCXBy b2JlX2VudC0+cG9ydFsxXS5zY3JfYWRkciA9CisJCQlwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwg NSkgfCBOVl9QT1JUMV9TQ1JfUkVHX09GRlNFVDsKKwl9CiAKLQkJb3V0YihOVl9JTlRfU1RBVFVT X0hPVFBMVUcsIHByb2JlX2VudC0+cG9ydFtpXS5zY3JfYWRkciArCi0JCQkJCQlOVl9JTlRfU1RB VFVTKTsKKwlwY2lfc2V0X21hc3RlcihwZGV2KTsKIAotCQlpbnRyX21hc2sgPSBpbmIocHJvYmVf ZW50LT5wb3J0W2ldLnNjcl9hZGRyICsgTlZfSU5UX0VOQUJMRSk7Ci0JCWludHJfbWFzayB8PSBO Vl9JTlRfRU5BQkxFX0hPVFBMVUc7Ci0JCW91dGIoaW50cl9tYXNrLCBwcm9iZV9lbnQtPnBvcnRb aV0uc2NyX2FkZHIgKyBOVl9JTlRfRU5BQkxFKTsKLQl9CisJLy8gRW5hYmxlIGhvdHBsdWcgZXZl bnQgaW50ZXJydXB0cy4KKwlpZiAoaG9zdC0+aG9zdF9kZXNjLT5lbmFibGVfaG90cGx1ZykKKwkJ aG9zdC0+aG9zdF9kZXNjLT5lbmFibGVfaG90cGx1Zyhwcm9iZV9lbnQpOworCisJcmMgPSBhdGFf ZGV2aWNlX2FkZChwcm9iZV9lbnQpOworCWlmIChyYyAhPSBOVl9QT1JUUykKKwkJZ290byBlcnJf b3V0X2ZyZWVfZW50OwogCiAJa2ZyZWUocHJvYmVfZW50KTsKIAogCXJldHVybiAwOwogCitlcnJf b3V0X2ZyZWVfZW50OgorCWtmcmVlKHByb2JlX2VudCk7CisKIGVycl9vdXRfcmVnaW9uczoKIAlw Y2lfcmVsZWFzZV9yZWdpb25zKHBkZXYpOwogCkBAIC0zNDEsNiArNDEwLDExOSBAQAogCXJldHVy biByYzsKIH0KIAorc3RhdGljIHZvaWQgbnZfZW5hYmxlX2hvdHBsdWcoc3RydWN0IGF0YV9wcm9i ZV9lbnQgKnByb2JlX2VudCkKK3sKKwl1OCBpbnRyX21hc2s7CisKKwlvdXRiKE5WX0lOVF9TVEFU VVNfSE9UUExVRywKKwkJKHVuc2lnbmVkIGxvbmcpcHJvYmVfZW50LT5tbWlvX2Jhc2UgKyBOVl9J TlRfU1RBVFVTKTsKKworCWludHJfbWFzayA9IGluYigodW5zaWduZWQgbG9uZylwcm9iZV9lbnQt Pm1taW9fYmFzZSArIE5WX0lOVF9FTkFCTEUpOworCWludHJfbWFzayB8PSBOVl9JTlRfRU5BQkxF X0hPVFBMVUc7CisKKwlvdXRiKGludHJfbWFzaywgKHVuc2lnbmVkIGxvbmcpcHJvYmVfZW50LT5t bWlvX2Jhc2UgKyBOVl9JTlRfRU5BQkxFKTsKK30KKworc3RhdGljIHZvaWQgbnZfZGlzYWJsZV9o b3RwbHVnKHN0cnVjdCBhdGFfaG9zdF9zZXQgKmhvc3Rfc2V0KQoreworCXU4IGludHJfbWFzazsK KworCWludHJfbWFzayA9IGluYigodW5zaWduZWQgbG9uZylob3N0X3NldC0+bW1pb19iYXNlICsg TlZfSU5UX0VOQUJMRSk7CisKKwlpbnRyX21hc2sgJj0gfihOVl9JTlRfRU5BQkxFX0hPVFBMVUcp OworCisJb3V0YihpbnRyX21hc2ssICh1bnNpZ25lZCBsb25nKWhvc3Rfc2V0LT5tbWlvX2Jhc2Ug KyBOVl9JTlRfRU5BQkxFKTsKK30KKworc3RhdGljIHZvaWQgbnZfY2hlY2tfaG90cGx1ZyhzdHJ1 Y3QgYXRhX2hvc3Rfc2V0ICpob3N0X3NldCkKK3sKKwl1OCBpbnRyX3N0YXR1czsKKworCWludHJf c3RhdHVzID0gaW5iKCh1bnNpZ25lZCBsb25nKWhvc3Rfc2V0LT5tbWlvX2Jhc2UgKyBOVl9JTlRf U1RBVFVTKTsKKworCS8vIENsZWFyIGludGVycnVwdCBzdGF0dXMuCisJb3V0YigweGZmLCAodW5z aWduZWQgbG9uZylob3N0X3NldC0+bW1pb19iYXNlICsgTlZfSU5UX1NUQVRVUyk7CisKKwlpZiAo aW50cl9zdGF0dXMgJiBOVl9JTlRfU1RBVFVTX0hPVFBMVUcpIHsKKwkJaWYgKGludHJfc3RhdHVz ICYgTlZfSU5UX1NUQVRVU19QREVWX0FEREVEKQorCQkJcHJpbnRrKEtFUk5fV0FSTklORyAibnZf c2F0YTogIgorCQkJCSJQcmltYXJ5IGRldmljZSBhZGRlZFxuIik7CisKKwkJaWYgKGludHJfc3Rh dHVzICYgTlZfSU5UX1NUQVRVU19QREVWX1JFTU9WRUQpCisJCQlwcmludGsoS0VSTl9XQVJOSU5H ICJudl9zYXRhOiAiCisJCQkJIlByaW1hcnkgZGV2aWNlIHJlbW92ZWRcbiIpOworCisJCWlmIChp bnRyX3N0YXR1cyAmIE5WX0lOVF9TVEFUVVNfU0RFVl9BRERFRCkKKwkJCXByaW50ayhLRVJOX1dB Uk5JTkcgIm52X3NhdGE6ICIKKwkJCQkiU2Vjb25kYXJ5IGRldmljZSBhZGRlZFxuIik7CisKKwkJ aWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRVU19TREVWX1JFTU9WRUQpCisJCQlwcmludGso S0VSTl9XQVJOSU5HICJudl9zYXRhOiAiCisJCQkJIlNlY29uZGFyeSBkZXZpY2UgcmVtb3ZlZFxu Iik7CisJfQorfQorCitzdGF0aWMgdm9pZCBudl9lbmFibGVfaG90cGx1Z19jazgwNChzdHJ1Y3Qg YXRhX3Byb2JlX2VudCAqcHJvYmVfZW50KQoreworCXU4IGludHJfbWFzazsKKwl1OCByZWd2YWw7 CisKKwlwY2lfcmVhZF9jb25maWdfYnl0ZShwcm9iZV9lbnQtPnBkZXYsIE5WX01DUF9TQVRBX0NG R18yMCwgJnJlZ3ZhbCk7CisJcmVndmFsIHw9IE5WX01DUF9TQVRBX0NGR18yMF9TQVRBX1NQQUNF X0VOOworCXBjaV93cml0ZV9jb25maWdfYnl0ZShwcm9iZV9lbnQtPnBkZXYsIE5WX01DUF9TQVRB X0NGR18yMCwgcmVndmFsKTsKKworCXdyaXRlYihOVl9JTlRfU1RBVFVTX0hPVFBMVUcsIHByb2Jl X2VudC0+bW1pb19iYXNlICsgTlZfSU5UX1NUQVRVU19DSzgwNCk7CisKKwlpbnRyX21hc2sgPSBy ZWFkYihwcm9iZV9lbnQtPm1taW9fYmFzZSArIE5WX0lOVF9FTkFCTEVfQ0s4MDQpOworCWludHJf bWFzayB8PSBOVl9JTlRfRU5BQkxFX0hPVFBMVUc7CisKKwl3cml0ZWIoaW50cl9tYXNrLCBwcm9i ZV9lbnQtPm1taW9fYmFzZSArIE5WX0lOVF9FTkFCTEVfQ0s4MDQpOworfQorCitzdGF0aWMgdm9p ZCBudl9kaXNhYmxlX2hvdHBsdWdfY2s4MDQoc3RydWN0IGF0YV9ob3N0X3NldCAqaG9zdF9zZXQp Cit7CisJdTggaW50cl9tYXNrOworCXU4IHJlZ3ZhbDsKKworCWludHJfbWFzayA9IHJlYWRiKGhv c3Rfc2V0LT5tbWlvX2Jhc2UgKyBOVl9JTlRfRU5BQkxFX0NLODA0KTsKKworCWludHJfbWFzayAm PSB+KE5WX0lOVF9FTkFCTEVfSE9UUExVRyk7CisKKwl3cml0ZWIoaW50cl9tYXNrLCBob3N0X3Nl dC0+bW1pb19iYXNlICsgTlZfSU5UX0VOQUJMRV9DSzgwNCk7CisKKwlwY2lfcmVhZF9jb25maWdf Ynl0ZShob3N0X3NldC0+cGRldiwgTlZfTUNQX1NBVEFfQ0ZHXzIwLCAmcmVndmFsKTsKKwlyZWd2 YWwgJj0gfk5WX01DUF9TQVRBX0NGR18yMF9TQVRBX1NQQUNFX0VOOworCXBjaV93cml0ZV9jb25m aWdfYnl0ZShob3N0X3NldC0+cGRldiwgTlZfTUNQX1NBVEFfQ0ZHXzIwLCByZWd2YWwpOworfQor CitzdGF0aWMgdm9pZCBudl9jaGVja19ob3RwbHVnX2NrODA0KHN0cnVjdCBhdGFfaG9zdF9zZXQg Kmhvc3Rfc2V0KQoreworCXU4IGludHJfc3RhdHVzOworCisJaW50cl9zdGF0dXMgPSByZWFkYiho b3N0X3NldC0+bW1pb19iYXNlICsgTlZfSU5UX1NUQVRVU19DSzgwNCk7CisKKwkvLyBDbGVhciBp bnRlcnJ1cHQgc3RhdHVzLgorCXdyaXRlYigweGZmLCBob3N0X3NldC0+bW1pb19iYXNlICsgTlZf SU5UX1NUQVRVU19DSzgwNCk7CisKKwlpZiAoaW50cl9zdGF0dXMgJiBOVl9JTlRfU1RBVFVTX0hP VFBMVUcpIHsKKwkJaWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRVU19QREVWX0FEREVEKQor CQkJcHJpbnRrKEtFUk5fV0FSTklORyAibnZfc2F0YTogIgorCQkJCSJQcmltYXJ5IGRldmljZSBh ZGRlZFxuIik7CisKKwkJaWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRVU19QREVWX1JFTU9W RUQpCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJudl9zYXRhOiAiCisJCQkJIlByaW1hcnkgZGV2 aWNlIHJlbW92ZWRcbiIpOworCisJCWlmIChpbnRyX3N0YXR1cyAmIE5WX0lOVF9TVEFUVVNfU0RF Vl9BRERFRCkKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIm52X3NhdGE6ICIKKwkJCQkiU2Vjb25k YXJ5IGRldmljZSBhZGRlZFxuIik7CisKKwkJaWYgKGludHJfc3RhdHVzICYgTlZfSU5UX1NUQVRV U19TREVWX1JFTU9WRUQpCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJudl9zYXRhOiAiCisJCQkJ IlNlY29uZGFyeSBkZXZpY2UgcmVtb3ZlZFxuIik7CisJfQorfQorCiBzdGF0aWMgaW50IF9faW5p dCBudl9pbml0KHZvaWQpCiB7CiAJcmV0dXJuIHBjaV9tb2R1bGVfaW5pdCgmbnZfcGNpX2RyaXZl cik7Cg== ------_=_NextPart_001_01C47B33.8367C8C7--