From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Lemoine Subject: [SUNGEM] add tx_lock Date: Wed, 15 Sep 2004 08:43:39 +0200 Sender: netdev-bounce@oss.sgi.com Message-ID: <5cac192f040914234361e1b929@mail.gmail.com> Reply-To: Eric Lemoine Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_82_3987604.1095230619574" Cc: netdev@oss.sgi.com Return-path: To: "David S. Miller" Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org ------=_Part_82_3987604.1095230619574 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline The attached patch makes SunGEM NAPI driver in conformance to tg3 and e1000 in terms of locking logic. Applies to current BK:net-2.6. [LLTX patch to follow] -- Eric ------=_Part_82_3987604.1095230619574 Content-Type: application/octet-stream; name="patch-rset-sungem_txlock-2-6-9-rc1" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-rset-sungem_txlock-2-6-9-rc1" IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMTUgMDg6MjY6NTUrMDI6MDAgZXJpYy5sZW1vaW5lQGdt YWlsLmNvbSAKIyAgIFtTVU5HRU1dOiBhZGQgdHhfbG9jayB0byBjb25mb3JtIHRvIHRnMyBhbmQg ZTEwMDAKIyAgIAojICAgVXNpbmcgdHhfbG9jayBpbiBTdW5HRU0gbWFrZXMgdGhlIGRyaXZlciBs b2dpYyBpbiBjb25mb3JtYW5jZSAKIyAgIHdpdGggdGczIGFuZCBlMTAwMCwgZWFzaW5nIG1haW50 YWluYW5jZS4KIyAgIAojICAgU2lnbmVkLW9mZi1ieTogRXJpYyBMZW1vaW5lIDxlcmljLmxlbW9p bmVAZ21haWwuY29tPgojICAgCiMgCiMgZHJpdmVycy9uZXQvc3VuZ2VtLmgKIyAgIDIwMDQvMDkv MTUgMDg6MjY6NDcrMDI6MDAgZXJpYy5sZW1vaW5lQGdtYWlsLmNvbSArMSAtMAojICAgW1NVTkdF TV06IGFkZCB0eF9sb2NrIHRvIGNvbmZvcm0gdG8gdGczIGFuZCBlMTAwMAojICAgCiMgICBTaWdu ZWQtb2ZmLWJ5OiBFcmljIExlbW9pbmUgPGVyaWMubGVtb2luZUBnbWFpbC5jb20+CiMgICAKIyAK IyBkcml2ZXJzL25ldC9zdW5nZW0uYwojICAgMjAwNC8wOS8xNSAwODoyNjo0NyswMjowMCBlcmlj LmxlbW9pbmVAZ21haWwuY29tICs1OCAtMTcKIyAgIFtTdW5HRU1dOiBhZGQgdHhfbG9jayB0byBj b25mb3JtIHRvIHRnMyBhbmQgZTEwMDAKIyAgIAojICAgU2lnbmVkLW9mZi1ieTogRXJpYyBMZW1v aW5lIDxlcmljLmxlbW9pbmVAZ21haWwuY29tPgojICAgCiMgCmRpZmYgLU5ydSBhL2RyaXZlcnMv bmV0L3N1bmdlbS5jIGIvZHJpdmVycy9uZXQvc3VuZ2VtLmMKLS0tIGEvZHJpdmVycy9uZXQvc3Vu Z2VtLmMJMjAwNC0wOS0xNSAwODozNzo1MiArMDI6MDAKKysrIGIvZHJpdmVycy9uZXQvc3VuZ2Vt LmMJMjAwNC0wOS0xNSAwODozNzo1MiArMDI6MDAKQEAgLTgzMiw3ICs4MzIsOSBAQAogCQl9CiAK IAkJLyogUnVuIFRYIGNvbXBsZXRpb24gdGhyZWFkICovCisJCXNwaW5fbG9jaygmZ3AtPnR4X2xv Y2spOwogCQlnZW1fdHgoZGV2LCBncCwgZ3AtPnN0YXR1cyk7CisJCXNwaW5fdW5sb2NrKCZncC0+ dHhfbG9jayk7CiAKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3AtPmxvY2ssIGZsYWdzKTsK IApAQCAtOTE3LDEwICs5MTksMTIgQEAKIAkgICAgICAgcmVhZGwoZ3AtPnJlZ3MgKyBNQUNfUlhD RkcpKTsKIAogCXNwaW5fbG9ja19pcnEoJmdwLT5sb2NrKTsKKwlzcGluX2xvY2soJmdwLT50eF9s b2NrKTsKIAogCWdwLT5yZXNldF90YXNrX3BlbmRpbmcgPSAyOwogCXNjaGVkdWxlX3dvcmsoJmdw LT5yZXNldF90YXNrKTsKIAorCXNwaW5fdW5sb2NrKCZncC0+dHhfbG9jayk7CiAJc3Bpbl91bmxv Y2tfaXJxKCZncC0+bG9jayk7CiB9CiAKQEAgLTk1MSwxMiArOTU1LDEyIEBACiAJCQkoY3N1bV9z dHVmZl9vZmYgPDwgMjEpKTsKIAl9CiAKLQlzcGluX2xvY2tfaXJxKCZncC0+bG9jayk7CisJc3Bp bl9sb2NrX2lycSgmZ3AtPnR4X2xvY2spOwogCiAJLyogVGhpcyBpcyBhIGhhcmQgZXJyb3IsIGxv ZyBpdC4gKi8KIAlpZiAoVFhfQlVGRlNfQVZBSUwoZ3ApIDw9IChza2Jfc2hpbmZvKHNrYiktPm5y X2ZyYWdzICsgMSkpIHsKIAkJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOwotCQlzcGluX3VubG9ja19p cnEoJmdwLT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZncC0+dHhfbG9jayk7CiAJCXByaW50 ayhLRVJOX0VSUiBQRlggIiVzOiBCVUchIFR4IFJpbmcgZnVsbCB3aGVuIHF1ZXVlIGF3YWtlIVxu IiwKIAkJICAgICAgIGRldi0+bmFtZSk7CiAJCXJldHVybiAxOwpAQCAtMTA0Myw3ICsxMDQ3LDcg QEAKIAkJICAgICAgIGRldi0+bmFtZSwgZW50cnksIHNrYi0+bGVuKTsKIAltYigpOwogCXdyaXRl bChncC0+dHhfbmV3LCBncC0+cmVncyArIFRYRE1BX0tJQ0spOwotCXNwaW5fdW5sb2NrX2lycSgm Z3AtPmxvY2spOworCXNwaW5fdW5sb2NrX2lycSgmZ3AtPnR4X2xvY2spOwogCiAJZGV2LT50cmFu c19zdGFydCA9IGppZmZpZXM7CiAKQEAgLTEwNzQsOSArMTA3OCwxMSBAQAogCX0KIAogCXNwaW5f bG9ja19pcnEoJmdwLT5sb2NrKTsKKwlzcGluX2xvY2soJmdwLT50eF9sb2NrKTsKIAlkZXYtPm10 dSA9IG5ld19tdHU7CiAJZ3AtPnJlc2V0X3Rhc2tfcGVuZGluZyA9IDE7CiAJc2NoZWR1bGVfd29y aygmZ3AtPnJlc2V0X3Rhc2spOworCXNwaW5fdW5sb2NrKCZncC0+dHhfbG9jayk7CiAJc3Bpbl91 bmxvY2tfaXJxKCZncC0+bG9jayk7CiAKIAlmbHVzaF9zY2hlZHVsZWRfd29yaygpOwpAQCAtMTA4 Niw3ICsxMDkyLDcgQEAKIAogI2RlZmluZSBTVE9QX1RSSUVTIDMyCiAKLS8qIE11c3QgYmUgaW52 b2tlZCB1bmRlciBncC0+bG9jay4gKi8KKy8qIE11c3QgYmUgaW52b2tlZCB1bmRlciBncC0+bG9j ayBhbmQgZ3AtPnR4X2xvY2suICovCiBzdGF0aWMgdm9pZCBnZW1fc3RvcChzdHJ1Y3QgZ2VtICpn cCkKIHsKIAlpbnQgbGltaXQ7CkBAIC0xMTEyLDcgKzExMTgsNyBAQAogCQlwcmludGsoS0VSTl9F UlIgIiVzOiBTVyByZXNldCBpcyBnaGV0dG8uXG4iLCBncC0+ZGV2LT5uYW1lKTsKIH0KIAotLyog TXVzdCBiZSBpbnZva2VkIHVuZGVyIGdwLT5sb2NrLiAqLworLyogTXVzdCBiZSBpbnZva2VkIHVu ZGVyIGdwLT5sb2NrIGFuZCBncC0+dHhfbG9jay4gKi8KIHN0YXRpYyB2b2lkIGdlbV9zdGFydF9k bWEoc3RydWN0IGdlbSAqZ3ApCiB7CiAJdW5zaWduZWQgbG9uZyB2YWw7CkBAIC0xMTM3LDcgKzEx NDMsNyBAQAogfQogCiAKLS8qIE11c3QgYmUgaW52b2tlZCB1bmRlciBncC0+bG9jay4gKi8KKy8q IE11c3QgYmUgaW52b2tlZCB1bmRlciBncC0+bG9jayBhbmQgZ3AtPnR4X2xvY2suICovCiAvLyBY WFggZGJsIGNoZWNrIHdoYXQgdGhhdCBmdW5jdGlvbiBzaG91bGQgZG8gd2hlbiBjYWxsZWQgb24g UENTIFBIWQogc3RhdGljIHZvaWQgZ2VtX2JlZ2luX2F1dG9fbmVnb3RpYXRpb24oc3RydWN0IGdl bSAqZ3AsIHN0cnVjdCBldGh0b29sX2NtZCAqZXApCiB7CkBAIC0xMjI0LDcgKzEyMzAsNyBAQAog LyogQSBsaW5rLXVwIGNvbmRpdGlvbiBoYXMgb2NjdXJyZWQsIGluaXRpYWxpemUgYW5kIGVuYWJs ZSB0aGUKICAqIHJlc3Qgb2YgdGhlIGNoaXAuCiAgKgotICogTXVzdCBiZSBpbnZva2VkIHVuZGVy IGdwLT5sb2NrLgorICogTXVzdCBiZSBpbnZva2VkIHVuZGVyIGdwLT5sb2NrIGFuZCBncC0+dHhf bG9jay4KICAqLwogc3RhdGljIGludCBnZW1fc2V0X2xpbmtfbW9kZXMoc3RydWN0IGdlbSAqZ3Ap CiB7CkBAIC0xMzMxLDcgKzEzMzcsNyBAQAogCXJldHVybiAwOwogfQogCi0vKiBNdXN0IGJlIGlu dm9rZWQgdW5kZXIgZ3AtPmxvY2suICovCisvKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxv Y2sgYW5kIGdwLT50eF9sb2NrLiAqLwogc3RhdGljIGludCBnZW1fbWRpb19saW5rX25vdF91cChz dHJ1Y3QgZ2VtICpncCkKIHsKIAlzd2l0Y2ggKGdwLT5sc3RhdGUpIHsKQEAgLTEzODksNiArMTM5 NSw3IEBACiAKIAluZXRpZl9wb2xsX2Rpc2FibGUoZ3AtPmRldik7CiAJc3Bpbl9sb2NrX2lycSgm Z3AtPmxvY2spOworCXNwaW5fbG9jaygmZ3AtPnR4X2xvY2spOwogCiAJaWYgKGdwLT5od19ydW5u aW5nICYmIGdwLT5vcGVuZWQpIHsKIAkJbmV0aWZfc3RvcF9xdWV1ZShncC0+ZGV2KTsKQEAgLTE0 MDQsNiArMTQxMSw3IEBACiAJfQogCWdwLT5yZXNldF90YXNrX3BlbmRpbmcgPSAwOwogCisJc3Bp bl91bmxvY2soJmdwLT50eF9sb2NrKTsKIAlzcGluX3VubG9ja19pcnEoJmdwLT5sb2NrKTsKIAlu ZXRpZl9wb2xsX2VuYWJsZShncC0+ZGV2KTsKIH0KQEAgLTE0MTcsNiArMTQyNSw3IEBACiAJCXJl dHVybjsKIAogCXNwaW5fbG9ja19pcnEoJmdwLT5sb2NrKTsKKwlzcGluX2xvY2soJmdwLT50eF9s b2NrKTsKIAogCS8qIElmIHRoZSBsaW5rIG9mIHRhc2sgaXMgc3RpbGwgcGVuZGluZywgd2UganVz dAogCSAqIHJlc2NoZWR1bGUgdGhlIGxpbmsgdGltZXIKQEAgLTE0ODYsMTAgKzE0OTUsMTEgQEAK IHJlc3RhcnQ6CiAJbW9kX3RpbWVyKCZncC0+bGlua190aW1lciwgamlmZmllcyArICgoMTIgKiBI WikgLyAxMCkpOwogb3V0X3VubG9jazoKKwlzcGluX3VubG9jaygmZ3AtPnR4X2xvY2spOwogCXNw aW5fdW5sb2NrX2lycSgmZ3AtPmxvY2spOwogfQogCi0vKiBNdXN0IGJlIGludm9rZWQgdW5kZXIg Z3AtPmxvY2suICovCisvKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxvY2sgYW5kIGdwLT50 eF9sb2NrLiAqLwogc3RhdGljIHZvaWQgZ2VtX2NsZWFuX3JpbmdzKHN0cnVjdCBnZW0gKmdwKQog ewogCXN0cnVjdCBnZW1faW5pdF9ibG9jayAqZ2IgPSBncC0+aW5pdF9ibG9jazsKQEAgLTE1NDAs NyArMTU1MCw3IEBACiAJfQogfQogCi0vKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxvY2su ICovCisvKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxvY2sgYW5kIGdwLT50eF9sb2NrLiAq Lwogc3RhdGljIHZvaWQgZ2VtX2luaXRfcmluZ3Moc3RydWN0IGdlbSAqZ3ApCiB7CiAJc3RydWN0 IGdlbV9pbml0X2Jsb2NrICpnYiA9IGdwLT5pbml0X2Jsb2NrOwpAQCAtMTU5MCw3ICsxNjAwLDcg QEAKIAl3bWIoKTsKIH0KIAotLyogTXVzdCBiZSBpbnZva2VkIHVuZGVyIGdwLT5sb2NrLiAqLwor LyogTXVzdCBiZSBpbnZva2VkIHVuZGVyIGdwLT5sb2NrIGFuZCBncC0+dHhfbG9jay4gKi8KIHN0 YXRpYyB2b2lkIGdlbV9pbml0X3BoeShzdHJ1Y3QgZ2VtICpncCkKIHsKIAl1MzIgbWlmY2ZnOwpA QCAtMTcyOCw3ICsxNzM4LDcgQEAKIAl9CiB9CiAKLS8qIE11c3QgYmUgaW52b2tlZCB1bmRlciBn cC0+bG9jay4gKi8KKy8qIE11c3QgYmUgaW52b2tlZCB1bmRlciBncC0+bG9jayBhbmQgZ3AtPnR4 X2xvY2suICovCiBzdGF0aWMgdm9pZCBnZW1faW5pdF9kbWEoc3RydWN0IGdlbSAqZ3ApCiB7CiAJ dTY0IGRlc2NfZG1hID0gKHU2NCkgZ3AtPmdibG9ja19kdm1hOwpAQCAtMTc2Niw3ICsxNzc2LDcg QEAKIAkJICAgICAgIGdwLT5yZWdzICsgUlhETUFfQkxBTkspOwogfQogCi0vKiBNdXN0IGJlIGlu dm9rZWQgdW5kZXIgZ3AtPmxvY2suICovCisvKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxv Y2sgYW5kIGdwLT50eF9sb2NrLiAqLwogc3RhdGljIHUzMgogZ2VtX3NldHVwX211bHRpY2FzdChz dHJ1Y3QgZ2VtICpncCkKIHsKQEAgLTE4MDksNyArMTgxOSw3IEBACiAJcmV0dXJuIHJ4Y2ZnOwog fQogCi0vKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxvY2suICovCisvKiBNdXN0IGJlIGlu dm9rZWQgdW5kZXIgZ3AtPmxvY2sgYW5kIGdwLT50eF9sb2NrLiAqLwogc3RhdGljIHZvaWQgZ2Vt X2luaXRfbWFjKHN0cnVjdCBnZW0gKmdwKQogewogCXVuc2lnbmVkIGNoYXIgKmUgPSAmZ3AtPmRl di0+ZGV2X2FkZHJbMF07CkBAIC0xODg3LDcgKzE4OTcsNyBAQAogCXdyaXRlbCgweGZmZmZmZmZm LCBncC0+cmVncyArIE1BQ19NQ01BU0spOwogfQogCi0vKiBNdXN0IGJlIGludm9rZWQgdW5kZXIg Z3AtPmxvY2suICovCisvKiBNdXN0IGJlIGludm9rZWQgdW5kZXIgZ3AtPmxvY2sgYW5kIGdwLT50 eF9sb2NrLiAqLwogc3RhdGljIHZvaWQgZ2VtX2luaXRfcGF1c2VfdGhyZXNob2xkcyhzdHJ1Y3Qg Z2VtICpncCkKIHsKICAgICAgICAJdTMyIGNmZzsKQEAgLTIwMjMsNyArMjAzMyw3IEBACiAJcmV0 dXJuIDA7CiB9CiAKLS8qIE11c3QgYmUgaW52b2tlZCB1bmRlciBncC0+bG9jay4gKi8KKy8qIE11 c3QgYmUgaW52b2tlZCB1bmRlciBncC0+bG9jayBhbmQgZ3AtPnR4X2xvY2suICovCiBzdGF0aWMg dm9pZCBnZW1faW5pdF9odyhzdHJ1Y3QgZ2VtICpncCwgaW50IHJlc3RhcnRfbGluaykKIHsKIAkv KiBPbiBBcHBsZSdzIGdtYWMsIEkgaW5pdGlhbGl6ZSB0aGUgUEhZIG9ubHkgYWZ0ZXIKQEAgLTIx MjEsOSArMjEzMSwxMSBAQAogCiAJaWYgKCFncC0+d2FrZV9vbl9sYW4pIHsKIAkJc3Bpbl9sb2Nr X2lycXNhdmUoJmdwLT5sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9jaygmZ3AtPnR4X2xvY2spOwog CQlnZW1fc3RvcChncCk7CiAJCXdyaXRlbChNQUNfVFhSU1RfQ01ELCBncC0+cmVncyArIE1BQ19U WFJTVCk7CiAJCXdyaXRlbChNQUNfUlhSU1RfQ01ELCBncC0+cmVncyArIE1BQ19SWFJTVCk7CisJ CXNwaW5fdW5sb2NrKCZncC0+dHhfbG9jayk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdw LT5sb2NrLCBmbGFncyk7CiAJfQogCkBAIC0yMTcxLDggKzIxODMsMTAgQEAKIAkJdW5zaWduZWQg bG9uZyBmbGFnczsKIAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmZ3AtPmxvY2ssIGZsYWdzKTsKKwkJ c3Bpbl9sb2NrKCZncC0+dHhfbG9jayk7CiAJCWdlbV9zdG9wKGdwKTsKLQkJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZ3AtPmxvY2ssIGZsYWdzKTsJCisJCXNwaW5fdW5sb2NrKCZncC0+dHhfbG9j ayk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdwLT5sb2NrLCBmbGFncyk7CiAJfQogfQog CkBAIC0yMjMyLDcgKzIyNDYsOSBAQAogCiAJCS8qIFJlc2V0IHRoZSBjaGlwICovCiAJCXNwaW5f bG9ja19pcnEoJmdwLT5sb2NrKTsKKwkJc3Bpbl9sb2NrKCZncC0+dHhfbG9jayk7CiAJCWdlbV9z dG9wKGdwKTsKKwkJc3Bpbl91bmxvY2soJmdwLT50eF9sb2NrKTsKIAkJc3Bpbl91bmxvY2tfaXJx KCZncC0+bG9jayk7CiAKIAkJZ3AtPmh3X3J1bm5pbmcgPSAxOwpAQCAtMjI0Niw2ICsyMjYyLDcg QEAKIAkJcHJpbnRrKEtFUk5fRVJSICIlczogZmFpbGVkIHRvIHJlcXVlc3QgaXJxICFcbiIsIGdw LT5kZXYtPm5hbWUpOwogCiAJCXNwaW5fbG9ja19pcnEoJmdwLT5sb2NrKTsKKwkJc3Bpbl9sb2Nr KCZncC0+dHhfbG9jayk7CiAjaWZkZWYgQ09ORklHX1BQQ19QTUFDCiAJCWlmICghaHdfd2FzX3Vw ICYmIGdwLT5wZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9BUFBMRSkKIAkJCWdlbV9hcHBs ZV9wb3dlcmRvd24oZ3ApOwpAQCAtMjI1NCwxMiArMjI3MSwxNCBAQAogCQlncC0+cG1fdGltZXIu ZXhwaXJlcyA9IGppZmZpZXMgKyAxMCpIWjsKIAkJYWRkX3RpbWVyKCZncC0+cG1fdGltZXIpOwog CQl1cCgmZ3AtPnBtX3NlbSk7CisJCXNwaW5fdW5sb2NrKCZncC0+dHhfbG9jayk7CiAJCXNwaW5f dW5sb2NrX2lycSgmZ3AtPmxvY2spOwogCiAJCXJldHVybiAtRUFHQUlOOwogCX0KIAogICAgICAg IAlzcGluX2xvY2tfaXJxKCZncC0+bG9jayk7CisJc3Bpbl9sb2NrKCZncC0+dHhfbG9jayk7CiAK IAkvKiBBbGxvY2F0ZSAmIHNldHVwIHJpbmcgYnVmZmVycyAqLwogCWdlbV9pbml0X3JpbmdzKGdw KTsKQEAgLTIyNjksNiArMjI4OCw3IEBACiAKIAlncC0+b3BlbmVkID0gMTsKIAorCXNwaW5fdW5s b2NrKCZncC0+dHhfbG9jayk7CiAJc3Bpbl91bmxvY2tfaXJxKCZncC0+bG9jayk7CiAKIAl1cCgm Z3AtPnBtX3NlbSk7CkBAIC0yMjg5LDYgKzIzMDksNyBAQAogCiAJLyogU3RvcCB0cmFmZmljLCBt YXJrIHVzIGNsb3NlZCAqLwogCXNwaW5fbG9ja19pcnEoJmdwLT5sb2NrKTsKKwlzcGluX2xvY2so JmdwLT50eF9sb2NrKTsKIAogCWdwLT5vcGVuZWQgPSAwOwkKIApAQCAtMjMwMyw2ICsyMzI0LDcg QEAKIAkvKiBCeWUsIHRoZSBwbSB0aW1lciB3aWxsIGZpbmlzaCB0aGUgam9iICovCiAJZnJlZV9p cnEoZ3AtPnBkZXYtPmlycSwgKHZvaWQgKikgZGV2KTsKIAorCXNwaW5fdW5sb2NrKCZncC0+dHhf bG9jayk7CiAJc3Bpbl91bmxvY2tfaXJxKCZncC0+bG9jayk7CiAKIAkvKiBGaXJlIHRoZSBQTSB0 aW1lciB0aGF0IHdpbGwgc2h1dCB1cyBkb3duIGluIGFib3V0IDEwIHNlY29uZHMgKi8KQEAgLTIz MzMsNiArMjM1NSw3IEBACiAJLyogSWYgdGhlIGRyaXZlciBpcyBvcGVuZWQsIHdlIHN0b3AgdGhl IERNQSAqLwogCWlmIChncC0+b3BlbmVkKSB7CiAJCXNwaW5fbG9ja19pcnEoJmdwLT5sb2NrKTsK KwkJc3Bpbl9sb2NrKCZncC0+dHhfbG9jayk7CiAKIAkJLyogU3RvcCB0cmFmZmljLCBtYXJrIHVz IGNsb3NlZCAqLwogCQluZXRpZl9kZXZpY2VfZGV0YWNoKGRldik7CkBAIC0yMzQzLDYgKzIzNjYs NyBAQAogCQkvKiBHZXQgcmlkIG9mIHJpbmcgYnVmZmVycyAqLwogCQlnZW1fY2xlYW5fcmluZ3Mo Z3ApOwogCisJCXNwaW5fdW5sb2NrKCZncC0+dHhfbG9jayk7CiAJCXNwaW5fdW5sb2NrX2lycSgm Z3AtPmxvY2spOwogCiAJCWlmIChncC0+cGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfQVBQ TEUpCkBAIC0yMzc2LDEyICsyNDAwLDE0IEBACiAJCX0KICNlbmRpZiAvKiBDT05GSUdfUFBDX1BN QUMgKi8KIAkJc3Bpbl9sb2NrX2lycSgmZ3AtPmxvY2spOworCQlzcGluX2xvY2soJmdwLT50eF9s b2NrKTsKIAogCQlnZW1fc3RvcChncCk7CiAJCWdwLT5od19ydW5uaW5nID0gMTsKIAkJZ2VtX2lu aXRfcmluZ3MoZ3ApOwogCQlnZW1faW5pdF9odyhncCwgMSk7CiAKKwkJc3Bpbl91bmxvY2soJmdw LT50eF9sb2NrKTsKIAkJc3Bpbl91bmxvY2tfaXJxKCZncC0+bG9jayk7CiAKIAkJbmV0aWZfZGV2 aWNlX2F0dGFjaChkZXYpOwpAQCAtMjQwMiw2ICsyNDI4LDcgQEAKIAlzdHJ1Y3QgbmV0X2Rldmlj ZV9zdGF0cyAqc3RhdHMgPSAmZ3AtPm5ldF9zdGF0czsKIAogCXNwaW5fbG9ja19pcnEoJmdwLT5s b2NrKTsKKwlzcGluX2xvY2soJmdwLT50eF9sb2NrKTsKIAogCWlmIChncC0+aHdfcnVubmluZykg ewogCQlzdGF0cy0+cnhfY3JjX2Vycm9ycyArPSByZWFkbChncC0+cmVncyArIE1BQ19GQ1NFUlIp OwpAQCAtMjQyMSw2ICsyNDQ4LDcgQEAKIAkJd3JpdGVsKDAsIGdwLT5yZWdzICsgTUFDX0xDT0xM KTsKIAl9CiAKKwlzcGluX3VubG9jaygmZ3AtPnR4X2xvY2spOwogCXNwaW5fdW5sb2NrX2lycSgm Z3AtPmxvY2spOwogCiAJcmV0dXJuICZncC0+bmV0X3N0YXRzOwpAQCAtMjQzNiw2ICsyNDY0LDcg QEAKIAkJcmV0dXJuOwogCQkKIAlzcGluX2xvY2tfaXJxKCZncC0+bG9jayk7CisJc3Bpbl9sb2Nr KCZncC0+dHhfbG9jayk7CiAKIAluZXRpZl9zdG9wX3F1ZXVlKGRldik7CiAKQEAgLTI0NjAsNiAr MjQ4OSw3IEBACiAKIAluZXRpZl93YWtlX3F1ZXVlKGRldik7CiAKKwlzcGluX3VubG9jaygmZ3At PnR4X2xvY2spOwogCXNwaW5fdW5sb2NrX2lycSgmZ3AtPmxvY2spOwogfQogCkBAIC0yNDkxLDYg KzI1MjEsNyBAQAogCiAJCS8qIFJldHVybiBjdXJyZW50IFBIWSBzZXR0aW5ncyAqLwogCQlzcGlu X2xvY2tfaXJxKCZncC0+bG9jayk7CisJCXNwaW5fbG9jaygmZ3AtPnR4X2xvY2spOwogCQljbWQt PmF1dG9uZWcgPSBncC0+d2FudF9hdXRvbmVnOwogCQljbWQtPnNwZWVkID0gZ3AtPnBoeV9taWku c3BlZWQ7CiAJCWNtZC0+ZHVwbGV4ID0gZ3AtPnBoeV9taWkuZHVwbGV4OwkJCQpAQCAtMjUwMiw2 ICsyNTMzLDcgQEAKIAkJICovCiAJCWlmIChjbWQtPmFkdmVydGlzaW5nID09IDApCiAJCQljbWQt PmFkdmVydGlzaW5nID0gY21kLT5zdXBwb3J0ZWQ7CisJCXNwaW5fdW5sb2NrKCZncC0+dHhfbG9j ayk7CiAJCXNwaW5fdW5sb2NrX2lycSgmZ3AtPmxvY2spOwogCX0gZWxzZSB7IC8vIFhYWCBQQ1Mg PwogCQljbWQtPnN1cHBvcnRlZCA9CkBAIC0yNTQxLDcgKzI1NzMsOSBAQAogCSAgICAgIAogCS8q IEFwcGx5IHNldHRpbmdzIGFuZCByZXN0YXJ0IGxpbmsgcHJvY2Vzcy4gKi8KIAlzcGluX2xvY2tf aXJxKCZncC0+bG9jayk7CisJc3Bpbl9sb2NrKCZncC0+dHhfbG9jayk7CiAJZ2VtX2JlZ2luX2F1 dG9fbmVnb3RpYXRpb24oZ3AsIGNtZCk7CisJc3Bpbl91bmxvY2soJmdwLT50eF9sb2NrKTsKIAlz cGluX3VubG9ja19pcnEoJmdwLT5sb2NrKTsKIAogCXJldHVybiAwOwpAQCAtMjU1Niw3ICsyNTkw LDkgQEAKIAogCS8qIFJlc3RhcnQgbGluayBwcm9jZXNzLiAqLwogCXNwaW5fbG9ja19pcnEoJmdw LT5sb2NrKTsKKwlzcGluX2xvY2soJmdwLT50eF9sb2NrKTsKIAlnZW1fYmVnaW5fYXV0b19uZWdv dGlhdGlvbihncCwgTlVMTCk7CisJc3Bpbl91bmxvY2soJmdwLT50eF9sb2NrKTsKIAlzcGluX3Vu bG9ja19pcnEoJmdwLT5sb2NrKTsKIAogCXJldHVybiAwOwpAQCAtMjgwOCw2ICsyODQ0LDcgQEAK IAlncC0+bXNnX2VuYWJsZSA9IERFRkFVTFRfTVNHOwogCiAJc3Bpbl9sb2NrX2luaXQoJmdwLT5s b2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmZ3AtPnR4X2xvY2spOwogCWluaXRfTVVURVgoJmdwLT5w bV9zZW0pOwogCiAJaW5pdF90aW1lcigmZ3AtPmxpbmtfdGltZXIpOwpAQCAtMjg0Myw3ICsyODgw LDkgQEAKIAkJZ2VtX2FwcGxlX3Bvd2VydXAoZ3ApOwogI2VuZGlmCiAJc3Bpbl9sb2NrX2lycSgm Z3AtPmxvY2spOworCXNwaW5fbG9jaygmZ3AtPnR4X2xvY2spOwogCWdlbV9zdG9wKGdwKTsKKwlz cGluX3VubG9jaygmZ3AtPnR4X2xvY2spOwogCXNwaW5fdW5sb2NrX2lycSgmZ3AtPmxvY2spOwog CiAJLyogRmlsbCB1cCB0aGUgbWlpX3BoeSBzdHJ1Y3R1cmUgKGV2ZW4gaWYgd2Ugd29uJ3QgdXNl IGl0KSAqLwpAQCAtMjkwNiw5ICsyOTQ1LDExIEBACiAKIAkvKiBEZXRlY3QgJiBpbml0IFBIWSwg c3RhcnQgYXV0b25lZyAqLwogCXNwaW5fbG9ja19pcnEoJmdwLT5sb2NrKTsKKwlzcGluX2xvY2so JmdwLT50eF9sb2NrKTsKIAlncC0+aHdfcnVubmluZyA9IDE7CiAJZ2VtX2luaXRfcGh5KGdwKTsK IAlnZW1fYmVnaW5fYXV0b19uZWdvdGlhdGlvbihncCwgTlVMTCk7CisJc3Bpbl91bmxvY2soJmdw LT50eF9sb2NrKTsKIAlzcGluX3VubG9ja19pcnEoJmdwLT5sb2NrKTsKIAogCWlmIChncC0+cGh5 X3R5cGUgPT0gcGh5X21paV9tZGlvMCB8fApkaWZmIC1OcnUgYS9kcml2ZXJzL25ldC9zdW5nZW0u aCBiL2RyaXZlcnMvbmV0L3N1bmdlbS5oCi0tLSBhL2RyaXZlcnMvbmV0L3N1bmdlbS5oCTIwMDQt MDktMTUgMDg6Mzc6NTIgKzAyOjAwCisrKyBiL2RyaXZlcnMvbmV0L3N1bmdlbS5oCTIwMDQtMDkt MTUgMDg6Mzc6NTIgKzAyOjAwCkBAIC05NTMsNiArOTUzLDcgQEAKIAogc3RydWN0IGdlbSB7CiAJ c3BpbmxvY2tfdCBsb2NrOworCXNwaW5sb2NrX3QgdHhfbG9jazsKIAl1bnNpZ25lZCBsb25nIHJl Z3M7CiAJaW50IHJ4X25ldywgcnhfb2xkOwogCWludCB0eF9uZXcsIHR4X29sZDsK ------=_Part_82_3987604.1095230619574--