From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ani Joshi Subject: radeonfb 0.1.5 testing Date: Mon, 3 Jun 2002 19:41:36 -0700 (PDT) Sender: linux-fbdev-devel-admin@lists.sourceforge.net Message-ID: Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1770179772-1023158496=:11992" Return-path: Received: from shell.unixbox.com ([207.211.45.65]) by usw-sf-list1.sourceforge.net with esmtp (Cipher TLSv1:DES-CBC3-SHA:168) (Exim 3.31-VA-mm2 #1 (Debian)) id 17F47L-0007Kk-00 for ; Mon, 03 Jun 2002 19:32:16 -0700 Received: from shell.unixbox.com (ajoshi@localhost [127.0.0.1]) by shell.unixbox.com (8.12.3/8.11.0) with ESMTP id g542fbw3012436 for ; Mon, 3 Jun 2002 19:41:37 -0700 (PDT) Received: from localhost (ajoshi@localhost) by shell.unixbox.com (8.12.3/8.12.3/Submit) with ESMTP id g542fa4H012433 for ; Mon, 3 Jun 2002 19:41:36 -0700 (PDT) Errors-To: linux-fbdev-devel-admin@lists.sourceforge.net List-Help: List-Post: List-Subscribe: , List-Id: List-Unsubscribe: , List-Archive: To: linux-fbdev-devel@lists.sourceforge.net 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. --0-1770179772-1023158496=:11992 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi all, Attatched is a patch against 2.4.19-pre9 which fixes a host of problems with radeonfb, for those experiencing problems please test and give feedback, thanks! ani --0-1770179772-1023158496=:11992 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="radeonfb.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="radeonfb.diff" ZGlmZiAtdU5yIGxpbnV4Lm9yaWcvZHJpdmVycy92aWRlby9yYWRlb24uaCBs aW51eC9kcml2ZXJzL3ZpZGVvL3JhZGVvbi5oDQotLS0gbGludXgub3JpZy9k cml2ZXJzL3ZpZGVvL3JhZGVvbi5oCU1vbiBGZWIgMjUgMTQ6Mzg6MDcgMjAw Mg0KKysrIGxpbnV4L2RyaXZlcnMvdmlkZW8vcmFkZW9uLmgJTW9uIEp1biAg MyAyMDowMDowMyAyMDAyDQpAQCAtMzc5LDYgKzM3OSw3IEBADQogI2RlZmlu ZSBTQ19UT1BfTEVGVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2 RUMgIA0KICNkZWZpbmUgU0NfQk9UVE9NX1JJR0hUICAgICAgICAgICAgICAg ICAgICAgICAgMHgxNkYwICANCiAjZGVmaW5lIFNSQ19TQ19CT1RUT01fUklH SFQgICAgICAgICAgICAgICAgICAgIDB4MTZGNCAgDQorI2RlZmluZSBSQjJE X0RTVENBQ0hFX01PREUJCSAgICAgICAweDM0MjgNCiAjZGVmaW5lIFJCMkRf RFNUQ0FDSEVfQ1RMU1RBVAkJICAgICAgIDB4MzQyQw0KICNkZWZpbmUgTFZE U19HRU5fQ05UTAkJCSAgICAgICAweDAyZDANCiAjZGVmaW5lIExWRFNfUExM X0NOVEwJCQkgICAgICAgMHgwMmQ0DQpkaWZmIC11TnIgbGludXgub3JpZy9k cml2ZXJzL3ZpZGVvL3JhZGVvbmZiLmMgbGludXgvZHJpdmVycy92aWRlby9y YWRlb25mYi5jDQotLS0gbGludXgub3JpZy9kcml2ZXJzL3ZpZGVvL3JhZGVv bmZiLmMJTW9uIEp1biAgMyAyMTozMDo1MyAyMDAyDQorKysgbGludXgvZHJp dmVycy92aWRlby9yYWRlb25mYi5jCU1vbiBKdW4gIDMgMjI6MDc6MDggMjAw Mg0KQEAgLTE5LDEzICsxOSwxNSBAQA0KICAqCTIwMDEtMTEtMTgJREZQIGZp eGVzLCBLZXZpbiBIZW5kcmlja3MsIDAuMS4zDQogICoJMjAwMS0xMS0yOQlt b3JlIGNtYXAsIGJhY2tsaWdodCBmaXhlcywgQmVuamFtaW4gSGVycmVuc2No bWlkdA0KICAqCTIwMDItMDEtMTgJREZQIHBhbmVsIGRldGVjdGlvbiB2aWEg QklPUywgTWljaGFlbCBDbGFyaywgMC4xLjQNCisgKgkyMDAyLTA2LTAyCWNv bnNvbGUgc3dpdGNoaW5nLCBtb2RlIHNldCBmaXhlcywgYWNjZWwgZml4ZXMN CisgKgkyMDAyLTA2LTAzCU1UUlIgc3VwcG9ydCwgUGV0ZXIgSG9ydG9uLCAw LjEuNQ0KICAqDQogICoJU3BlY2lhbCB0aGFua3MgdG8gQVRJIERldlJlbCB0 ZWFtIGZvciB0aGVpciBoYXJkd2FyZSBkb25hdGlvbnMuDQogICoNCiAgKi8N CiANCiANCi0jZGVmaW5lIFJBREVPTl9WRVJTSU9OCSIwLjEuNCINCisjZGVm aW5lIFJBREVPTl9WRVJTSU9OCSIwLjEuNSINCiANCiANCiAjaW5jbHVkZSA8 bGludXgvY29uZmlnLmg+DQpAQCAtNzAsNiArNzIsMTAgQEANCiANCiAjZW5k aWYgLyogX19wb3dlcnBjX18gKi8NCiANCisjaWZkZWYgQ09ORklHX01UUlIN CisjaW5jbHVkZSA8YXNtL210cnIuaD4NCisjZW5kaWYNCisNCiAjaW5jbHVk ZSA8dmlkZW8vZmJjb24uaD4gDQogI2luY2x1ZGUgPHZpZGVvL2ZiY29uLWNm YjguaD4NCiAjaW5jbHVkZSA8dmlkZW8vZmJjb24tY2ZiMTYuaD4NCkBAIC0y OTksOCArMzA1LDEyIEBADQogDQogCXN0cnVjdCByYW1faW5mbyByYW07DQog DQorCWludCBtdHJyX2hkbDsNCisNCisjaWYgMA0KICAgICAgICAgdTMyIGhh Y2tfY3J0Y19leHRfY250bDsNCiAgICAgICAgIHUzMiBoYWNrX2NydGNfdl9z eW5jX3N0cnRfd2lkOw0KKyNlbmRpZg0KIA0KICNpZiBkZWZpbmVkKEZCQ09O X0hBU19DRkIxNikgfHwgZGVmaW5lZChGQkNPTl9IQVNfQ0ZCMzIpDQogICAg ICAgICB1bmlvbiB7DQpAQCAtNTA3LDggKzUxNyw3IEBADQogCQkJCVNPRlRf UkVTRVRfUkUgfA0KIAkJCQlTT0ZUX1JFU0VUX1BQIHwNCiAJCQkJU09GVF9S RVNFVF9FMiB8DQotCQkJCVNPRlRfUkVTRVRfUkIgfA0KLQkJCQlTT0ZUX1JF U0VUX0hEUCk7DQorCQkJCVNPRlRfUkVTRVRfUkIpOw0KIAlJTlJFRyhSQkJN X1NPRlRfUkVTRVQpOw0KIAlPVVRSRUcoUkJCTV9TT0ZUX1JFU0VULCByYmJt X3NvZnRfcmVzZXQgJiAodTMyKQ0KIAkJCQl+KFNPRlRfUkVTRVRfQ1AgfA0K QEAgLTUxNyw4ICs1MjYsNyBAQA0KIAkJCQkgIFNPRlRfUkVTRVRfUkUgfA0K IAkJCQkgIFNPRlRfUkVTRVRfUFAgfA0KIAkJCQkgIFNPRlRfUkVTRVRfRTIg fA0KLQkJCQkgIFNPRlRfUkVTRVRfUkIgfA0KLQkJCQkgIFNPRlRfUkVTRVRf SERQKSk7DQorCQkJCSAgU09GVF9SRVNFVF9SQikpOw0KIAlJTlJFRyhSQkJN X1NPRlRfUkVTRVQpOw0KIA0KIAlPVVRQTEwoTUNMS19DTlRMLCBtY2xrX2Nu dGwpOw0KQEAgLTU5NCwxNSArNjAyLDI0IEBADQogICAgICAgICANCiBzdGF0 aWMgY2hhciBmb250bmFtZVs0MF0gX19pbml0ZGF0YTsNCiBzdGF0aWMgY2hh ciAqbW9kZV9vcHRpb24gX19pbml0ZGF0YTsNCi1zdGF0aWMgY2hhciBub2Fj Y2VsIF9faW5pdGRhdGEgPSAwOw0KK3N0YXRpYyBjaGFyIG5vYWNjZWwgPSAw Ow0KIHN0YXRpYyBpbnQgcGFuZWxfeXJlcyBfX2luaXRkYXRhID0gMDsNCiBz dGF0aWMgY2hhciBmb3JjZV9kZnAgX19pbml0ZGF0YSA9IDA7DQogc3RhdGlj IHN0cnVjdCByYWRlb25mYl9pbmZvICpib2FyZF9saXN0ID0gTlVMTDsNCitz dGF0aWMgY2hhciBub210cnIgX19pbml0ZGF0YSA9IDA7DQogDQogI2lmZGVm IEZCQ09OX0hBU19DRkI4DQogc3RhdGljIHN0cnVjdCBkaXNwbGF5X3N3aXRj aCBmYmNvbl9yYWRlb244Ow0KICNlbmRpZg0KIA0KKyNpZmRlZiBGQkNPTl9I QVNfQ0ZCMTYNCitzdGF0aWMgc3RydWN0IGRpc3BsYXlfc3dpdGNoIGZiY29u X3JhZGVvbjE2Ow0KKyNlbmRpZg0KKw0KKyNpZmRlZiBGQkNPTl9IQVNfQ0ZC MzINCitzdGF0aWMgc3RydWN0IGRpc3BsYXlfc3dpdGNoIGZiY29uX3JhZGVv bjMyOw0KKyNlbmRpZg0KKw0KIA0KIC8qDQogICogcHJvdG90eXBlcw0KQEAg LTY2NSwxMyArNjgyLDE1IEBADQogc3RhdGljIHN0cnVjdCBwbXVfc2xlZXBf bm90aWZpZXIgcmFkZW9uX3NsZWVwX25vdGlmaWVyID0gew0KIAlyYWRlb25f c2xlZXBfbm90aWZ5LCBTTEVFUF9MRVZFTF9WSURFTywNCiB9Ow0KKyNlbmRp ZiAvKiBDT05GSUdfUE1BQ19QQk9PSyAqLw0KKyNpZmRlZiBDT05GSUdfUE1B Q19CQUNLTElHSFQNCiBzdGF0aWMgaW50IHJhZGVvbl9zZXRfYmFja2xpZ2h0 X2VuYWJsZShpbnQgb24sIGludCBsZXZlbCwgdm9pZCAqZGF0YSk7DQogc3Rh dGljIGludCByYWRlb25fc2V0X2JhY2tsaWdodF9sZXZlbChpbnQgbGV2ZWws IHZvaWQgKmRhdGEpOw0KIHN0YXRpYyBzdHJ1Y3QgYmFja2xpZ2h0X2NvbnRy b2xsZXIgcmFkZW9uX2JhY2tsaWdodF9jb250cm9sbGVyID0gew0KIAlyYWRl b25fc2V0X2JhY2tsaWdodF9lbmFibGUsDQogCXJhZGVvbl9zZXRfYmFja2xp Z2h0X2xldmVsDQogfTsNCi0jZW5kaWYgLyogQ09ORklHX1BNQUNfUEJPT0sg Ki8NCisjZW5kaWYgLyogQ09ORklHX1BNQUNfQkFDS0xJR0hUICovDQogDQog I2VuZGlmIC8qIENPTkZJR19BTExfUFBDICovDQogDQpAQCAtNzMxLDYgKzc1 MCw4IEBADQogCQkJZm9yY2VfZGZwID0gMTsNCiAJCX0gZWxzZSBpZiAoIXN0 cm5jbXAodGhpc19vcHQsICJwYW5lbF95cmVzOiIsIDExKSkgew0KIAkJCXBh bmVsX3lyZXMgPSBzaW1wbGVfc3RydG91bCgodGhpc19vcHQrMTEpLCBOVUxM LCAwKTsNCisJCX0gZWxzZSBpZiAoIXN0cm5jbXAodGhpc19vcHQsICJub210 cnIiLCA2KSkgew0KKwkJCW5vbXRyciA9IDE7DQogICAgICAgICAgICAgICAg IH0gZWxzZQ0KIAkJCW1vZGVfb3B0aW9uID0gdGhpc19vcHQ7DQogICAgICAg ICB9DQpAQCAtOTE1LDYgKzkzNiwyMiBAQA0KIAlyaW5mby0+Ymlvc19zZWcg PSByYWRlb25fZmluZF9yb20ocmluZm8pOw0KIAlyYWRlb25fZ2V0X3BsbGlu Zm8ocmluZm8sIHJpbmZvLT5iaW9zX3NlZyk7DQogDQorCS8qDQorCSAqIEhh Y2sgdG8gZ2V0IGFyb3VuZCBzb21lIGJ1c3RlZCBwcm9kdWN0aW9uIE02J3MN CisJICogcmVwb3J0aW5nIG5vIHJhbQ0KKwkgKi8NCisJaWYgKHJpbmZvLT52 aWRlb19yYW0gPT0gMCkgew0KKwkJc3dpdGNoIChwZGV2LT5kZXZpY2UpIHsN CisJCQljYXNlIFBDSV9ERVZJQ0VfSURfUkFERU9OX0xZOg0KKwkJCWNhc2Ug UENJX0RFVklDRV9JRF9SQURFT05fTFo6DQorCQkJCXJpbmZvLT52aWRlb19y YW0gPSA4MTkyOw0KKwkJCQlicmVhazsNCisJCQlkZWZhdWx0Og0KKwkJCQli cmVhazsNCisJCX0NCisJfQ0KKw0KKw0KIAlSVFJBQ0UoInJhZGVvbmZiOiBw cm9iZWQgJXMgJWRrIHZpZGVvcmFtXG4iLCAocmluZm8tPnJhbV90eXBlKSwg KHJpbmZvLT52aWRlb19yYW0vMTAyNCkpOw0KIA0KICNpZiAhZGVmaW5lZChf X3Bvd2VycGNfXykNCkBAIC05NjAsOSArOTk3LDYgQEANCiAJCXJldHVybiAt RU5PREVWOw0KIAl9DQogDQotCS8qIFhYWCB0dXJuIG9mZiBhY2NlbCBmb3Ig bm93LCBibHRzIGFyZW4ndCB3b3JraW5nIHJpZ2h0ICovDQotCW5vYWNjZWwg PSAxOw0KLQ0KIAkvKiBjdXJyY29uIG5vdCB5ZXQgY29uZmlndXJlZCwgd2ls bCBiZSBzZXQgYnkgZmlyc3Qgc3dpdGNoICovDQogCXJpbmZvLT5jdXJyY29u ID0gLTE7DQogDQpAQCAtOTk4LDYgKzEwMzIsMTIgQEANCiAJCXJldHVybiAt RU5PREVWOw0KIAl9DQogDQorI2lmZGVmIENPTkZJR19NVFJSDQorCXJpbmZv LT5tdHJyX2hkbCA9IG5vbXRyciA/IC0xIDogbXRycl9hZGQocmluZm8tPmZi X2Jhc2VfcGh5cywNCisJCQkJCQkgcmluZm8tPnZpZGVvX3JhbSwNCisJCQkJ CQkgTVRSUl9UWVBFX1dSQ09NQiwgMSk7DQorI2VuZGlmDQorDQogCWlmICgh bm9hY2NlbCkgew0KIAkJLyogaW5pdGlhbGl6ZSB0aGUgZW5naW5lICovDQog CQlyYWRlb25fZW5naW5lX2luaXQgKHJpbmZvKTsNCkBAIC0xMDQ2LDYgKzEw ODYsMTEgQEANCiAJLyogcmVzdG9yZSBvcmlnaW5hbCBzdGF0ZSAqLw0KICAg ICAgICAgcmFkZW9uX3dyaXRlX21vZGUgKHJpbmZvLCAmcmluZm8tPmluaXRf c3RhdGUpOw0KICANCisjaWZkZWYgQ09ORklHX01UUlINCisJaWYgKHJpbmZv LT5tdHJyX2hkbCA+PSAwKQ0KKwkJbXRycl9kZWwocmluZm8tPm10cnJfaGRs LCAwLCAwKTsNCisjZW5kaWYNCisNCiAgICAgICAgIHVucmVnaXN0ZXJfZnJh bWVidWZmZXIgKChzdHJ1Y3QgZmJfaW5mbyAqKSByaW5mbyk7DQogICAgICAg ICAgICAgICAgIA0KICAgICAgICAgaW91bm1hcCAoKHZvaWQqKXJpbmZvLT5t bWlvX2Jhc2UpOw0KQEAgLTEyODEsMjEgKzEzMjYsMjQgQEANCiAjaWZkZWYg Q09ORklHX0FMTF9QUEMNCiBzdGF0aWMgaW50IHJhZGVvbl9nZXRfRURJRF9P RihzdHJ1Y3QgcmFkZW9uZmJfaW5mbyAqcmluZm8pDQogew0KLQlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKmRwOw0KLQl1bnNpZ25lZCBjaGFyICpwZWRpZCA9IE5V TEw7DQotDQotCWRwID0gcGNpX2RldmljZV90b19PRl9ub2RlKHJpbmZvLT5w ZGV2KTsNCi0JcGVkaWQgPSAodW5zaWduZWQgY2hhciAqKSBnZXRfcHJvcGVy dHkoZHAsICJERlAsRURJRCIsIDApOw0KLQlpZiAoIXBlZGlkKQ0KLQkJcGVk aWQgPSAodW5zaWduZWQgY2hhciAqKSBnZXRfcHJvcGVydHkoZHAsICJMQ0Qs RURJRCIsIDApOw0KLQlpZiAoIXBlZGlkKQ0KLQkJcGVkaWQgPSAodW5zaWdu ZWQgY2hhciAqKSBnZXRfcHJvcGVydHkoZHAsICJFRElEIiwgMCk7DQotDQot CWlmIChwZWRpZCkgew0KLQkJcmluZm8tPkVESUQgPSBwZWRpZDsNCi0JCXJl dHVybiAxOw0KLQl9IGVsc2UNCi0JCXJldHVybiAwOw0KKyAgICAgICAgc3Ry dWN0IGRldmljZV9ub2RlICpkcDsNCisgICAgICAgIHVuc2lnbmVkIGNoYXIg KnBlZGlkID0gTlVMTDsNCisgICAgICAgIHN0YXRpYyBjaGFyICpwcm9wbmFt ZXNbXSA9IHsgIkRGUCxFRElEIiwgIkxDRCxFRElEIiwgIkVESUQiLCAiRURJ RDEiLCBOVUxMIH07DQorICAgICAgICBpbnQgaTsgIA0KKw0KKyAgICAgICAg ZHAgPSBwY2lfZGV2aWNlX3RvX09GX25vZGUocmluZm8tPnBkZXYpOw0KKyAg ICAgICAgd2hpbGUgKGRwICE9IE5VTEwpIHsNCisgICAgICAgICAgICAgICAg Zm9yIChpID0gMDsgcHJvcG5hbWVzW2ldICE9IE5VTEw7ICsraSkgew0KKyAg ICAgICAgICAgICAgICAgICAgICAgIHBlZGlkID0gKHVuc2lnbmVkIGNoYXIg KikNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9wcm9w ZXJ0eShkcCwgcHJvcG5hbWVzW2ldLCBOVUxMKTsNCisgICAgICAgICAgICAg ICAgICAgICAgICBpZiAocGVkaWQgIT0gTlVMTCkgew0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmluZm8tPkVESUQgPSBwZWRpZDsNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOw0KKyAg ICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0K KyAgICAgICAgICAgICAgICBkcCA9IGRwLT5jaGlsZDsNCisgICAgICAgIH0N CisgICAgICAgIHJldHVybiAwOw0KIH0NCiAjZW5kaWYgLyogQ09ORklHX0FM TF9QUEMgKi8NCiANCkBAIC0xNTQwLDcgKzE1ODgsNyBAQA0KIAlyYWRlb25f ZW5naW5lX3Jlc2V0ICgpOw0KIA0KIAlyYWRlb25fZmlmb193YWl0ICgxKTsN Ci0JT1VUUkVHKERTVENBQ0hFX01PREUsIDApOw0KKwlPVVRSRUcoUkIyRF9E U1RDQUNIRV9NT0RFLCAwKTsNCiANCiAJLyogWFhYICovDQogCXJpbmZvLT5w aXRjaCA9ICgocmluZm8tPnhyZXMgKiAocmluZm8tPmJwcCAvIDgpICsgMHgz ZikpID4+IDY7DQpAQCAtMTYyMSwxMiArMTY2OSw2IEBADQogICAgICAgICBk aXNwID0gJnJpbmZvLT5kaXNwOw0KICAgICAgICAgDQogICAgICAgICBkaXNw LT52YXIgPSByYWRlb25mYl9kZWZhdWx0X3ZhcjsNCi0jaWYgZGVmaW5lZChf X3Bvd2VycGNfXykNCi0JaWYgKHJpbmZvLT5kdmlEaXNwX3R5cGUgPT0gTVRf TENEKSB7DQotCQlpZiAobWFjX3Ztb2RlX3RvX3ZhcihWTU9ERV8xMTUyXzc2 OF82MCwgQ01PREVfOCwgJmRpc3AtPnZhcikpDQotCQkJZGlzcC0+dmFyID0g cmFkZW9uZmJfZGVmYXVsdF92YXI7DQotCX0NCi0jZW5kaWYNCiANCiAJcmlu Zm8tPmRlcHRoID0gdmFyX3RvX2RlcHRoKCZkaXNwLT52YXIpOw0KIAlyaW5m by0+YnBwID0gZGlzcC0+dmFyLmJpdHNfcGVyX3BpeGVsOw0KQEAgLTE3MDMs MTQgKzE3NDUsMTQgQEANCiAgICAgICAgIHN3aXRjaCAoZGlzcC0+dmFyLmJp dHNfcGVyX3BpeGVsKSB7DQogI2lmZGVmIEZCQ09OX0hBU19DRkI4DQogICAg ICAgICAgICAgICAgIGNhc2UgODoNCi0gICAgICAgICAgICAgICAgICAgICAg ICBkaXNwLT5kaXNwc3cgPSAmZmJjb25fY2ZiODsNCisgICAgICAgICAgICAg ICAgICAgICAgICBkaXNwLT5kaXNwc3cgPSBhY2NlbCA/ICZmYmNvbl9yYWRl b244IDogJmZiY29uX2NmYjg7DQogICAgICAgICAgICAgICAgICAgICAgICAg ZGlzcC0+dmlzdWFsID0gRkJfVklTVUFMX1BTRVVET0NPTE9SOw0KICAgICAg ICAgICAgICAgICAgICAgICAgIGRpc3AtPmxpbmVfbGVuZ3RoID0gZGlzcC0+ dmFyLnhyZXNfdmlydHVhbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCiAjZW5kaWYNCiAjaWZkZWYgRkJDT05fSEFTX0NGQjE2DQogICAg ICAgICAgICAgICAgIGNhc2UgMTY6DQotICAgICAgICAgICAgICAgICAgICAg ICAgZGlzcC0+ZGlzcHN3ID0gJmZiY29uX2NmYjE2Ow0KKyAgICAgICAgICAg ICAgICAgICAgICAgIGRpc3AtPmRpc3BzdyA9IGFjY2VsID8gJmZiY29uX3Jh ZGVvbjE2IDogJmZiY29uX2NmYjE2Ow0KICAgICAgICAgICAgICAgICAgICAg ICAgIGRpc3AtPmRpc3Bzd19kYXRhID0gJnJpbmZvLT5jb25fY21hcC5jZmIx NjsNCiAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwLT52aXN1YWwgPSBG Ql9WSVNVQUxfRElSRUNUQ09MT1I7DQogICAgICAgICAgICAgICAgICAgICAg ICAgZGlzcC0+bGluZV9sZW5ndGggPSBkaXNwLT52YXIueHJlc192aXJ0dWFs ICogMjsNCkBAIC0xNzI2LDcgKzE3NjgsNyBAQA0KICNlbmRpZg0KICNpZmRl ZiBGQkNPTl9IQVNfQ0ZCMzINCiAgICAgICAgICAgICAgICAgY2FzZSAzMjoN Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaXNwLT5kaXNwc3cgPSAmZmJj b25fY2ZiMzI7DQorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcC0+ZGlz cHN3ID0gYWNjZWwgPyAmZmJjb25fcmFkZW9uMzIgOiAmZmJjb25fY2ZiMzI7 DQogICAgICAgICAgICAgICAgICAgICAgICAgZGlzcC0+ZGlzcHN3X2RhdGEg PSAmcmluZm8tPmNvbl9jbWFwLmNmYjMyOw0KICAgICAgICAgICAgICAgICAg ICAgICAgIGRpc3AtPnZpc3VhbCA9IEZCX1ZJU1VBTF9ESVJFQ1RDT0xPUjsN CiAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwLT5saW5lX2xlbmd0aCA9 IGRpc3AtPnZhci54cmVzX3ZpcnR1YWwgKiA0Ow0KQEAgLTE4OTIsMTIgKzE5 MzQsMTEgQEANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwLT52 YXIueXJlcyAhPSB2YXItPnlyZXMpIHx8DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAoZGlzcC0+dmFyLnhyZXNfdmlydHVhbCAhPSB2YXItPnhyZXNf dmlydHVhbCkgfHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNw LT52YXIueXJlc192aXJ0dWFsICE9IHZhci0+eXJlc192aXJ0dWFsKSB8fA0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpc3AtPnZhci5iaXRzX3Bl cl9waXhlbCAhPSB2YXItPmJpdHNfcGVyX3BpeGVsKSB8fA0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgbWVtY21wICgmZGlzcC0+dmFyLnJlZCwgJnZh ci0+cmVkLCBzaXplb2YgKHZhci0+cmVkKSkgfHwNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIG1lbWNtcCAoJmRpc3AtPnZhci5ncmVlbiwgJnZhci0+ Z3JlZW4sIHNpemVvZiAodmFyLT5ncmVlbikpIHx8DQotICAgICAgICAgICAg ICAgICAgICAgICAgICBtZW1jbXAgKCZkaXNwLT52YXIuYmx1ZSwgJnZhci0+ Ymx1ZSwgc2l6ZW9mICh2YXItPmJsdWUpKSk7DQorICAgICAgICAgICAgICAg ICAgICAgICAgICAoZGlzcC0+dmFyLmJpdHNfcGVyX3BpeGVsICE9IHZhci0+ Yml0c19wZXJfcGl4ZWwpKTsNCiAgICAgICAgIH0NCiANCitwcmludGsoInNl dF92YXI6IGNoZ3ZhciA9ICVkXG4iLCBjaGd2YXIpOw0KKw0KICAgICAgICAg bWVtY3B5ICgmdiwgdmFyLCBzaXplb2YgKHYpKTsNCiANCiAgICAgICAgIHN3 aXRjaCAodi5iaXRzX3Blcl9waXhlbCkgew0KQEAgLTIwMjAsNyArMjA2MSw3 IEBADQogICAgICAgICBtZW1jcHkgKCZkaXNwLT52YXIsICZ2LCBzaXplb2Yg KHYpKTsNCiAgICAgICAgIA0KICAgICAgICAgaWYgKGNoZ3ZhcikgeyAgICAg DQotICAgICAgICAgICAgICAgIHJhZGVvbl9zZXRfZGlzcHN3KHJpbmZvLCBk aXNwKTsNCisJICAgICAgICByYWRlb25fc2V0X2Rpc3BzdyhyaW5mbywgZGlz cCk7DQogDQogICAgICAgICAgICAgICAgIGlmIChub2FjY2VsKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgIGRpc3AtPnNjcm9sbG1vZGUgPSBTQ1JPTExf WVJFRFJBVzsNCkBAIC0yMDMwLDggKzIwNzEsMTMgQEANCiAgICAgICAgICAg ICAgICAgaWYgKGluZm8gJiYgaW5mby0+Y2hhbmdldmFyKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgIGluZm8tPmNoYW5nZXZhcihjb24pOw0KICAgICAg ICAgfQ0KLSAgICAgICAgIA0KKw0KICAgICAgICAgcmFkZW9uX2xvYWRfdmlk ZW9fbW9kZSAocmluZm8sICZ2KTsNCisNCisJaWYgKCFub2FjY2VsKSB7DQor CQkvKiAocmUpaW5pdGlhbGl6ZSB0aGUgZW5naW5lICovDQorCQlyYWRlb25f ZW5naW5lX2luaXQgKHJpbmZvKTsNCisJfQ0KICAgICAgICAgICAgICAgICAN CiAgICAgICAgIGRvX2luc3RhbGxfY21hcChjb24sIGluZm8pOw0KICAgDQpA QCAtMjEzMSw4ICsyMTc3LDE1IEBADQogICAgICAgICAgICAgICAgIGlmIChj bWFwLT5sZW4pDQogICAgICAgICAgICAgICAgICAgICAgICAgZmJfZ2V0X2Nt YXAgKGNtYXAsIDEsIHJhZGVvbl9nZXRjb2xyZWcsIGluZm8pOw0KICAgICAg ICAgfSAgIA0KLSAgICAgICAgICAgICAgICANCi0Jc3dpdGNobW9kZSA9IChj b24gIT0gcmluZm8tPmN1cnJjb24pOw0KKw0KKwlpZiAoKGRpc3AtPnZhci54 cmVzICE9IHJpbmZvLT54cmVzKSB8fA0KKwkgICAgKGRpc3AtPnZhci55cmVz ICE9IHJpbmZvLT55cmVzKSB8fA0KKwkgICAgKGRpc3AtPnZhci5waXhjbG9j ayAhPSByaW5mby0+cGl4Y2xvY2spIHx8DQorCSAgICAoZGlzcC0+dmFyLmJp dHNfcGVyX3BpeGVsICE9IHJpbmZvLT5icHApKQ0KKwkJc3dpdGNobW9kZSA9 IDE7DQorDQorCWlmKHJpbmZvLT5jdXJyY29uID09IC0xKQ0KKwkJc3dpdGNo bW9kZSA9IDE7DQogDQogCXJpbmZvLT5jdXJyY29uID0gY29uOw0KIAlyaW5m by0+Y3VycmNvbl9kaXNwbGF5ID0gZGlzcDsNCkBAIC0yMTQwLDE2ICsyMTkz LDE5IEBADQogICAgICAgICANCiAgICAgICAgIGlmIChzd2l0Y2htb2RlKSB7 DQogICAgICAgICAgICAgICAgIHJhZGVvbmZiX3NldF92YXIgKCZkaXNwLT52 YXIsIGNvbiwgaW5mbyk7DQotICAgICAgICAgICAgICAgIHJhZGVvbl9zZXRf ZGlzcHN3IChyaW5mbywgZGlzcCk7DQogICAgICAgICAgICAgICAgIGRvX2lu c3RhbGxfY21hcChjb24sIGluZm8pOw0KICAgICAgICAgfSAgICAgICANCiAN CisgICAgICAgIHJhZGVvbl9zZXRfZGlzcHN3IChyaW5mbywgZGlzcCk7DQor DQorI2lmIDANCiAgICAgICAgIC8qIFhYWCBhYnN1cmQgaGFjayBmb3IgWCB0 byByZXN0b3JlIGNvbnNvbGUgKi8NCiAgICAgICAgIHsgICANCiAJCU9VVFJF R1AoQ1JUQ19FWFRfQ05UTCwgcmluZm8tPmhhY2tfY3J0Y19leHRfY250bCwN CiAJCQlDUlRDX0hTWU5DX0RJUyB8IENSVENfVlNZTkNfRElTIHwgQ1JUQ19E SVNQTEFZX0RJUyk7DQogICAgICAgICAgICAgICAgIE9VVFJFRyhDUlRDX1Zf U1lOQ19TVFJUX1dJRCwgcmluZm8tPmhhY2tfY3J0Y192X3N5bmNfc3RydF93 aWQpOw0KICAgICAgICAgfQ0KKyNlbmRpZg0KIA0KICAgICAgICAgcmV0dXJu IDA7DQogfQ0KQEAgLTI0OTMsOCArMjU0OSwxMCBAQA0KIAlyaW5mby0+YnBw ID0gbW9kZS0+Yml0c19wZXJfcGl4ZWw7DQogCXJpbmZvLT5kZXB0aCA9IGRl cHRoOw0KIA0KKyNpZiAwDQogCXJpbmZvLT5oYWNrX2NydGNfZXh0X2NudGwg PSBuZXdtb2RlLmNydGNfZXh0X2NudGw7DQogCXJpbmZvLT5oYWNrX2NydGNf dl9zeW5jX3N0cnRfd2lkID0gbmV3bW9kZS5jcnRjX3Zfc3luY19zdHJ0X3dp ZDsNCisjZW5kaWYNCiANCiAJaWYgKGZyZXEgPiByaW5mby0+cGxsLnBwbGxf bWF4KQ0KIAkJZnJlcSA9IHJpbmZvLT5wbGwucHBsbF9tYXg7DQpAQCAtMjU5 MywxMyArMjY1MSwxMyBAQA0KIAkJbmV3bW9kZS5mcF9ob3J6X3N0cmV0Y2gg Jj0gfkhPUlpfQVVUT19SQVRJTzsNCiANCiAJCWlmIChtb2RlLT55cmVzICE9 IHJpbmZvLT5wYW5lbF95cmVzKSB7DQotCQkJCXZSYXRpbyA9IHJvdW5kX2Rp dihtb2RlLT55cmVzICogVkVSVF9TVFJFVENIX1JBVElPX01BWCwNCi0JCQkJ CQkgICByaW5mby0+cGFuZWxfeXJlcyk7DQotCQkJCW5ld21vZGUuZnBfdmVy dF9zdHJldGNoID0gKCgoKCh1bnNpZ25lZCBsb25nKXZSYXRpbykgJiBWRVJU X1NUUkVUQ0hfUkFUSU9fTUFTSykpIHwNCi0JCQkJCQkJICAgKG5ld21vZGUu ZnBfdmVydF9zdHJldGNoICYNCi0JCQkJCQkJICAgKFZFUlRfUEFORUxfU0la RSB8IFZFUlRfU1RSRVRDSF9SRVNFUlZFRCkpKTsNCi0JCQkJbmV3bW9kZS5m cF92ZXJ0X3N0cmV0Y2ggfD0gKFZFUlRfU1RSRVRDSF9CTEVORCB8DQotCQkJ CQkJCSAgICBWRVJUX1NUUkVUQ0hfRU5BQkxFKTsNCisJCQl2UmF0aW8gPSBy b3VuZF9kaXYobW9kZS0+eXJlcyAqIFZFUlRfU1RSRVRDSF9SQVRJT19NQVgs DQorCQkJCQkgICByaW5mby0+cGFuZWxfeXJlcyk7DQorCQkJbmV3bW9kZS5m cF92ZXJ0X3N0cmV0Y2ggPSAoKCgoKHVuc2lnbmVkIGxvbmcpdlJhdGlvKSAm IFZFUlRfU1RSRVRDSF9SQVRJT19NQVNLKSkgfA0KKwkJCQkJCSAgIChuZXdt b2RlLmZwX3ZlcnRfc3RyZXRjaCAmDQorCQkJCQkJICAgKFZFUlRfUEFORUxf U0laRSB8IFZFUlRfU1RSRVRDSF9SRVNFUlZFRCkpKTsNCisJCQluZXdtb2Rl LmZwX3ZlcnRfc3RyZXRjaCB8PSAoVkVSVF9TVFJFVENIX0JMRU5EIHwNCisJ CQkJCQkgICAgVkVSVF9TVFJFVENIX0VOQUJMRSk7DQogCQl9DQogCQluZXdt b2RlLmZwX3ZlcnRfc3RyZXRjaCAmPSB+VkVSVF9BVVRPX1JBVElPX0VOOw0K IA0KQEAgLTI2MjgsMTQgKzI2ODYsMTkgQEANCiAJCQkvKiBERlAgKi8NCiAJ CQluZXdtb2RlLmZwX2dlbl9jbnRsIHw9IChGUF9GUE9OIHwgRlBfVE1EU19F Tik7DQogCQkJbmV3bW9kZS50bWRzX3RyYW5zbWl0dGVyX2NudGwgPSAoVE1E U19SQU5fUEFUX1JTVCB8DQotCQkJCQkJCSBJQ0hDU0VMKSAmIH4oVE1EU19Q TExSU1QpOw0KKwkJCQkJCQkgSUNIQ1NFTCB8IFRNRFNfUExMX0VOKSAmDQor CQkJCQkJCSB+KFRNRFNfUExMUlNUKTsNCiAJCQluZXdtb2RlLmNydGNfZXh0 X2NudGwgJj0gfkNSVENfQ1JUX09OOw0KIAkJfQ0KIA0KLQkJbmV3bW9kZS5m cF9jcnRjX2hfdG90YWxfZGlzcCA9IG5ld21vZGUuY3J0Y19oX3RvdGFsX2Rp c3A7DQotCQluZXdtb2RlLmZwX2NydGNfdl90b3RhbF9kaXNwID0gbmV3bW9k ZS5jcnRjX3ZfdG90YWxfZGlzcDsNCi0JCW5ld21vZGUuZnBfaF9zeW5jX3N0 cnRfd2lkID0gbmV3bW9kZS5jcnRjX2hfc3luY19zdHJ0X3dpZDsNCi0JCW5l d21vZGUuZnBfdl9zeW5jX3N0cnRfd2lkID0gbmV3bW9kZS5jcnRjX3Zfc3lu Y19zdHJ0X3dpZDsNCisJCW5ld21vZGUuZnBfY3J0Y19oX3RvdGFsX2Rpc3Ag PSAoKChyaW5mby0+aGJsYW5rIC8gOCkgJiAweDNmZikgfA0KKwkJCQkoKCht b2RlLT54cmVzIC8gOCkgLSAxKSA8PCAxNikpOw0KKwkJbmV3bW9kZS5mcF9j cnRjX3ZfdG90YWxfZGlzcCA9IChyaW5mby0+dmJsYW5rICYgMHhmZmZmKSB8 DQorCQkJCSgobW9kZS0+eXJlcyAtIDEpIDw8IDE2KTsNCisJCW5ld21vZGUu ZnBfaF9zeW5jX3N0cnRfd2lkID0gKChyaW5mby0+aE92ZXJfcGx1cyAmIDB4 MWZmZikgfA0KKwkJCQkoaHN5bmNfd2lkIDw8IDE2KSB8IChoX3N5bmNfcG9s IDw8IDIzKSk7DQorCQluZXdtb2RlLmZwX3Zfc3luY19zdHJ0X3dpZCA9ICgo cmluZm8tPnZPdmVyX3BsdXMgJiAweGZmZikgfA0KKwkJCQkodnN5bmNfd2lk IDw8IDE2KSB8ICh2X3N5bmNfcG9sICA8PCAyMykpOw0KIAl9DQogDQogCS8q IGRvIGl0ISAqLw0KQEAgLTI2NTYsOSArMjcxOSw3IEBADQogCWludCBpOw0K IAlpbnQgcHJpbWFyeV9tb24gPSBQUklNQVJZX01PTklUT1IocmluZm8pOw0K IA0KLQkvKiBibGFuayBzY3JlZW4gKi8NCi0JT1VUUkVHUChDUlRDX0VYVF9D TlRMLCBDUlRDX0RJU1BMQVlfRElTIHwgQ1JUQ19WU1lOQ19ESVMgfCBDUlRD X0hTWU5DX0RJUywNCi0JCX4oQ1JUQ19ESVNQTEFZX0RJUyB8IENSVENfVlNZ TkNfRElTIHwgQ1JUQ19IU1lOQ19ESVMpKTsNCisJcmFkZW9uZmJfYmxhbmso VkVTQV9QT1dFUkRPV04sIChzdHJ1Y3QgZmJfaW5mbyAqKXJpbmZvKTsNCiAN CiAJZm9yIChpPTA7IGk8OTsgaSsrKQ0KIAkJT1VUUkVHKGNvbW1vbl9yZWdz W2ldLnJlZywgY29tbW9uX3JlZ3NbaV0udmFsKTsNCkBAIC0yNzQyLDggKzI4 MDMsNyBAQA0KIAkJfQ0KIAl9DQogDQotCS8qIHVuYmxhbmsgc2NyZWVuICov DQotCU9VVFJFRzgoQ1JUQ19FWFRfQ05UTCArIDEsIDApOw0KKwlyYWRlb25m Yl9ibGFuayhWRVNBX05PX0JMQU5LSU5HLCAoc3RydWN0IGZiX2luZm8gKily aW5mbyk7DQogDQogCXJldHVybjsNCiB9DQpAQCAtMjk1OCw2ICszMDE4LDcg QEANCiB7DQogCXN0cnVjdCByYWRlb25mYl9pbmZvICpyaW5mbyA9IChzdHJ1 Y3QgcmFkZW9uZmJfaW5mbyAqKShwLT5mYl9pbmZvKTsNCiAJdTMyIGRwX2Nu dGwgPSBEU1RfTEFTVF9QRUw7DQorCXUzMiBkcF9jbnRsX3NhdmUgPSAwOw0K IA0KIAlzcmN4ICo9IGZvbnR3aWR0aChwKTsNCiAJc3JjeSAqPSBmb250aGVp Z2h0KHApOw0KQEAgLTI5NjcsMTcgKzMwMjgsMTkgQEANCiAJaGVpZ2h0ICo9 IGZvbnRoZWlnaHQocCk7DQogDQogCWlmIChzcmN5IDwgZHN0eSkgew0KLQkJ c3JjeSArPSBoZWlnaHQgLSAxOw0KLQkJZHN0eSArPSBoZWlnaHQgLSAxOw0K KwkJc3JjeSArPSBoZWlnaHQ7DQorCQlkc3R5ICs9IGhlaWdodDsNCiAJfSBl bHNlDQogCQlkcF9jbnRsIHw9IERTVF9ZX1RPUF9UT19CT1RUT007DQogDQog CWlmIChzcmN4IDwgZHN0eCkgew0KLQkJc3JjeCArPSB3aWR0aCAtIDE7DQot CQlkc3R4ICs9IHdpZHRoIC0gMTsNCisJCXNyY3ggKz0gd2lkdGg7DQorCQlk c3R4ICs9IHdpZHRoOw0KIAl9IGVsc2UNCiAJCWRwX2NudGwgfD0gRFNUX1hf TEVGVF9UT19SSUdIVDsNCiANCisJZHBfY250bF9zYXZlID0gSU5SRUcoRFBf Q05UTCk7DQorDQogCXJhZGVvbl9maWZvX3dhaXQoNik7DQogCU9VVFJFRyhE UF9HVUlfTUFTVEVSX0NOVEwsIChyaW5mby0+ZHBfZ3VpX21hc3Rlcl9jbnRs IHwNCiAJCQkJICAgIEdNQ19CUlVTSF9OT05FIHwNCkBAIC0yOTg5LDExICsz MDUyLDM3IEBADQogCU9VVFJFRyhTUkNfWV9YLCAoc3JjeSA8PCAxNikgfCBz cmN4KTsNCiAJT1VUUkVHKERTVF9ZX1gsIChkc3R5IDw8IDE2KSB8IGRzdHgp Ow0KIAlPVVRSRUcoRFNUX0hFSUdIVF9XSURUSCwgKGhlaWdodCA8PCAxNikg fCB3aWR0aCk7DQorDQorCXJhZGVvbl9maWZvX3dhaXQoMSk7DQorCU9VVFJF RyhEUF9DTlRMLCBkcF9jbnRsX3NhdmUpOw0KKw0KKwlyYWRlb25fZW5naW5l X2lkbGUoKTsNCit9DQorDQorDQorDQorc3RhdGljIHZvaWQgcmFkZW9uX3Jl Y3RmaWxsKHN0cnVjdCByYWRlb25mYl9pbmZvICpyaW5mbywNCisJCQkgICAg aW50IGRzdHksIGludCBkc3R4LA0KKwkJCSAgICBpbnQgaGVpZ2h0LCBpbnQg d2lkdGgsDQorCQkJICAgIHUzMiBjbHIpDQorew0KKwlyYWRlb25fZmlmb193 YWl0KDYpOw0KKwlPVVRSRUcoRFBfR1VJX01BU1RFUl9DTlRMLCAocmluZm8t PmRwX2d1aV9tYXN0ZXJfY250bCB8DQorCQkJCSAgICBHTUNfQlJVU0hfU09M SURfQ09MT1IgfA0KKwkJCQkgICAgR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8 DQorCQkJCSAgICBST1AzX1ApKTsNCisJT1VUUkVHKERQX0JSVVNIX0ZSR0Rf Q0xSLCBjbHIpOw0KKwlPVVRSRUcoRFBfV1JJVEVfTVNLLCAweGZmZmZmZmZm KTsNCisJT1VUUkVHKERQX0NOVEwsIChEU1RfWF9MRUZUX1RPX1JJR0hUIHwg RFNUX1lfVE9QX1RPX0JPVFRPTSkpOw0KKwlPVVRSRUcoRFNUX1lfWCwgKGRz dHkgPDwgMTYpIHwgZHN0eCk7DQorCU9VVFJFRyhEU1RfV0lEVEhfSEVJR0hU LCAod2lkdGggPDwgMTYpIHwgaGVpZ2h0KTsNCiB9DQogDQogDQogDQotc3Rh dGljIHZvaWQgZmJjb25fcmFkZW9uX2NsZWFyKHN0cnVjdCB2Y19kYXRhICpj b25wLCBzdHJ1Y3QgZGlzcGxheSAqcCwNCisjaWZkZWYgRkJDT05fSEFTX0NG QjgNCisNCitzdGF0aWMgdm9pZCBmYmNvbl9yYWRlb244X2NsZWFyKHN0cnVj dCB2Y19kYXRhICpjb25wLCBzdHJ1Y3QgZGlzcGxheSAqcCwNCiAJCQkgICAg ICAgaW50IHNyY3ksIGludCBzcmN4LCBpbnQgaGVpZ2h0LCBpbnQgd2lkdGgp DQogew0KIAlzdHJ1Y3QgcmFkZW9uZmJfaW5mbyAqcmluZm8gPSAoc3RydWN0 IHJhZGVvbmZiX2luZm8gKikocC0+ZmJfaW5mbyk7DQpAQCAtMzAwOCwyNSAr MzA5NywxNSBAQA0KIAl3aWR0aCAqPSBmb250d2lkdGgocCk7DQogCWhlaWdo dCAqPSBmb250aGVpZ2h0KHApOw0KIA0KLQlyYWRlb25fZmlmb193YWl0KDYp Ow0KLQlPVVRSRUcoRFBfR1VJX01BU1RFUl9DTlRMLCAocmluZm8tPmRwX2d1 aV9tYXN0ZXJfY250bCB8DQotCQkJCSAgICBHTUNfQlJVU0hfU09MSURfQ09M T1IgfA0KLQkJCQkgICAgR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8DQotCQkJ CSAgICBST1AzX1ApKTsNCi0JT1VUUkVHKERQX0JSVVNIX0ZSR0RfQ0xSLCBj bHIpOw0KLQlPVVRSRUcoRFBfV1JJVEVfTVNLLCAweGZmZmZmZmZmKTsNCi0J T1VUUkVHKERQX0NOVEwsIChEU1RfWF9MRUZUX1RPX1JJR0hUIHwgRFNUX1lf VE9QX1RPX0JPVFRPTSkpOw0KLQlPVVRSRUcoRFNUX1lfWCwgKHNyY3kgPDwg MTYpIHwgc3JjeCk7DQotCU9VVFJFRyhEU1RfV0lEVEhfSEVJR0hULCAod2lk dGggPDwgMTYpIHwgaGVpZ2h0KTsNCisJcmFkZW9uX3JlY3RmaWxsKHJpbmZv LCBzcmN5LCBzcmN4LCBoZWlnaHQsIHdpZHRoLCBjbHIpOw0KIH0NCiANCiAN CiANCi0jaWZkZWYgRkJDT05fSEFTX0NGQjgNCiBzdGF0aWMgc3RydWN0IGRp c3BsYXlfc3dpdGNoIGZiY29uX3JhZGVvbjggPSB7DQogCXNldHVwOgkJCWZi Y29uX2NmYjhfc2V0dXAsDQogCWJtb3ZlOgkJCWZiY29uX3JhZGVvbl9ibW92 ZSwNCi0JY2xlYXI6CQkJZmJjb25fcmFkZW9uX2NsZWFyLA0KKwljbGVhcjoJ CQlmYmNvbl9yYWRlb244X2NsZWFyLA0KIAlwdXRjOgkJCWZiY29uX2NmYjhf cHV0YywNCiAJcHV0Y3M6CQkJZmJjb25fY2ZiOF9wdXRjcywNCiAJcmV2YzoJ CQlmYmNvbl9jZmI4X3JldmMsDQpAQCAtMzAzNCwzICszMTEzLDcxIEBADQog CWZvbnR3aWR0aG1hc2s6CQlGT05UV0lEVEgoNCl8Rk9OVFdJRFRIKDgpfEZP TlRXSURUSCgxMil8Rk9OVFdJRFRIKDE2KQ0KIH07DQogI2VuZGlmDQorDQor I2lmZGVmIEZCQ09OX0hBU19DRkIxNg0KKw0KKw0KK3N0YXRpYyB2b2lkIGZi Y29uX3JhZGVvbjE2X2NsZWFyKHN0cnVjdCB2Y19kYXRhICpjb25wLCBzdHJ1 Y3QgZGlzcGxheSAqcCwNCisJCQkgICAgICAgaW50IHNyY3ksIGludCBzcmN4 LCBpbnQgaGVpZ2h0LCBpbnQgd2lkdGgpDQorew0KKwlzdHJ1Y3QgcmFkZW9u ZmJfaW5mbyAqcmluZm8gPSAoc3RydWN0IHJhZGVvbmZiX2luZm8gKikocC0+ ZmJfaW5mbyk7DQorCXUzMiBjbHI7DQorDQorCWNsciA9ICgodTE2ICopcC0+ ZGlzcHN3X2RhdGEpW2F0dHJfYmdjb2xfZWMocCwgY29ucCldOw0KKwljbHIg fD0gKGNsciA8PCAxNik7DQorDQorCXNyY3ggKj0gZm9udHdpZHRoKHApOw0K KwlzcmN5ICo9IGZvbnRoZWlnaHQocCk7DQorCXdpZHRoICo9IGZvbnR3aWR0 aChwKTsNCisJaGVpZ2h0ICo9IGZvbnRoZWlnaHQocCk7DQorDQorCXJhZGVv bl9yZWN0ZmlsbChyaW5mbywgc3JjeSwgc3JjeCwgaGVpZ2h0LCB3aWR0aCwg Y2xyKTsNCit9DQorDQorDQorDQorc3RhdGljIHN0cnVjdCBkaXNwbGF5X3N3 aXRjaCBmYmNvbl9yYWRlb24xNiA9IHsNCisJc2V0dXA6CQkJZmJjb25fY2Zi MTZfc2V0dXAsDQorCWJtb3ZlOgkJCWZiY29uX3JhZGVvbl9ibW92ZSwNCisJ Y2xlYXI6CQkJZmJjb25fcmFkZW9uMTZfY2xlYXIsDQorCXB1dGM6CQkJZmJj b25fY2ZiMTZfcHV0YywNCisJcHV0Y3M6CQkJZmJjb25fY2ZiMTZfcHV0Y3Ms DQorCXJldmM6CQkJZmJjb25fY2ZiMTZfcmV2YywNCisJY2xlYXJfbWFyZ2lu czoJCWZiY29uX2NmYjE2X2NsZWFyX21hcmdpbnMsDQorCWZvbnR3aWR0aG1h c2s6CQlGT05UV0lEVEgoNCl8Rk9OVFdJRFRIKDgpfEZPTlRXSURUSCgxMil8 Rk9OVFdJRFRIKDE2KQ0KK307DQorI2VuZGlmDQorDQorI2lmZGVmIEZCQ09O X0hBU19DRkIzMg0KKw0KKw0KK3N0YXRpYyB2b2lkIGZiY29uX3JhZGVvbjMy X2NsZWFyKHN0cnVjdCB2Y19kYXRhICpjb25wLCBzdHJ1Y3QgZGlzcGxheSAq cCwNCisJCQkgICAgICAgaW50IHNyY3ksIGludCBzcmN4LCBpbnQgaGVpZ2h0 LCBpbnQgd2lkdGgpDQorew0KKwlzdHJ1Y3QgcmFkZW9uZmJfaW5mbyAqcmlu Zm8gPSAoc3RydWN0IHJhZGVvbmZiX2luZm8gKikocC0+ZmJfaW5mbyk7DQor CXUzMiBjbHI7DQorDQorCWNsciA9ICgodTMyICopcC0+ZGlzcHN3X2RhdGEp W2F0dHJfYmdjb2xfZWMocCwgY29ucCldOw0KKw0KKwlzcmN4ICo9IGZvbnR3 aWR0aChwKTsNCisJc3JjeSAqPSBmb250aGVpZ2h0KHApOw0KKwl3aWR0aCAq PSBmb250d2lkdGgocCk7DQorCWhlaWdodCAqPSBmb250aGVpZ2h0KHApOw0K Kw0KKwlyYWRlb25fcmVjdGZpbGwocmluZm8sIHNyY3ksIHNyY3gsIGhlaWdo dCwgd2lkdGgsIGNscik7DQorfQ0KKw0KKw0KKw0KK3N0YXRpYyBzdHJ1Y3Qg ZGlzcGxheV9zd2l0Y2ggZmJjb25fcmFkZW9uMzIgPSB7DQorCXNldHVwOgkJ CWZiY29uX2NmYjMyX3NldHVwLA0KKwlibW92ZToJCQlmYmNvbl9yYWRlb25f Ym1vdmUsDQorCWNsZWFyOgkJCWZiY29uX3JhZGVvbjMyX2NsZWFyLA0KKwlw dXRjOgkJCWZiY29uX2NmYjMyX3B1dGMsDQorCXB1dGNzOgkJCWZiY29uX2Nm YjMyX3B1dGNzLA0KKwlyZXZjOgkJCWZiY29uX2NmYjMyX3JldmMsDQorCWNs ZWFyX21hcmdpbnM6CQlmYmNvbl9jZmIzMl9jbGVhcl9tYXJnaW5zLA0KKwlm b250d2lkdGhtYXNrOgkJRk9OVFdJRFRIKDQpfEZPTlRXSURUSCg4KXxGT05U V0lEVEgoMTIpfEZPTlRXSURUSCgxNikNCit9Ow0KKyNlbmRpZg0KKw0KZGlm ZiAtdU5yIGxpbnV4Lm9yaWcvZHJpdmVycy92aWRlby9yaXZhL2ZiZGV2LmMg bGludXgvZHJpdmVycy92aWRlby9yaXZhL2ZiZGV2LmMNCi0tLSBsaW51eC5v cmlnL2RyaXZlcnMvdmlkZW8vcml2YS9mYmRldi5jCU1vbiBKdW4gIDMgMjE6 MzA6NTMgMjAwMg0KKysrIGxpbnV4L2RyaXZlcnMvdmlkZW8vcml2YS9mYmRl di5jCU1vbiBKdW4gIDMgMTg6MDc6MTcgMjAwMg0KQEAgLTE5MTIsNiArMTkx MiwyNiBAQA0KIA0KIAlyaW5mby0+cml2YS5JTyA9IChNSVNDaW4ocmluZm8p ICYgMHgwMSkgPyAweDNEMCA6IDB4M0IwOw0KIA0KKwlpZihyaW5mby0+cml2 YS5BcmNoaXRlY3R1cmUgPT0gTlZfQVJDSF8wMykgew0KKwkJLyoNCisJCSAq IFdlIGhhdmUgdG8gbWFwIHRoZSBmdWxsIEJBU0VfMSBhcGVydHVyZSBmb3Ig Uml2YTEyOCdzDQorCQkgKiBiZWNhdXNlIHRoZXkgdXNlIHRoZSBQUkFNSU4g c2V0IGluICJmcmFtZWJ1ZmZlciIgc3BhY2UNCisJCSAqLw0KKwkJaWYgKCFy ZXF1ZXN0X21lbV9yZWdpb24ocmluZm8tPmZiX2Jhc2VfcGh5cywNCisJCQkJ ICAgICAgICByaW5mby0+YmFzZTFfcmVnaW9uX3NpemUsICJyaXZhZmIiKSkg ew0KKwkJCXByaW50ayhLRVJOX0VSUiBQRlggImNhbm5vdCByZXNlcnZlIEZC IHJlZ2lvblxuIik7DQorCQkJZ290byBlcnJfb3V0X2ZyZWVfYmFzZTA7DQor CQl9DQorDQorCQlyaW5mby0+ZmJfYmFzZSA9IGlvcmVtYXAocmluZm8tPmZi X2Jhc2VfcGh5cywNCisJCQkJCXJpbmZvLT5iYXNlMV9yZWdpb25fc2l6ZSk7 DQorDQorCQlpZiAoIXJpbmZvLT5mYl9iYXNlKSB7DQorCQkJcHJpbnRrKEtF Uk5fRVJSIFBGWCAiY2Fubm90IGlvcmVtYXAgRkIgYmFzZVxuIik7DQorCQkJ Z290byBlcnJfb3V0X2lvdW5tYXBfY3RybDsNCisJCX0NCisJfQ0KKw0KIAlz d2l0Y2ggKHJpbmZvLT5yaXZhLkFyY2hpdGVjdHVyZSkgew0KIAljYXNlIE5W X0FSQ0hfMDM6DQogCQlyaW5mby0+cml2YS5QUkFNSU4gPSAodW5zaWduZWQg KikocmluZm8tPmZiX2Jhc2UgKyAweDAwQzAwMDAwKTsNCkBAIC0xOTI5LDE3 ICsxOTQ5LDIzIEBADQogCXJpbmZvLT5yYW1fYW1vdW50ID0gcmluZm8tPnJp dmEuUmFtQW1vdW50S0J5dGVzICogMTAyNDsNCiAJcmluZm8tPmRjbGtfbWF4 ID0gcmluZm8tPnJpdmEuTWF4VkNsb2NrRnJlcUtIeiAqIDEwMDA7DQogDQot CWlmICghcmVxdWVzdF9tZW1fcmVnaW9uKHJpbmZvLT5mYl9iYXNlX3BoeXMs DQotCQkJCXJpbmZvLT5yYW1fYW1vdW50LCAicml2YWZiIikpIHsNCi0JCXBy aW50ayhLRVJOX0VSUiBQRlggImNhbm5vdCByZXNlcnZlIEZCIHJlZ2lvblxu Iik7DQotCQlnb3RvIGVycl9vdXRfZnJlZV9iYXNlMDsNCi0JfQ0KKwlpZiAo cmluZm8tPnJpdmEuQXJjaGl0ZWN0dXJlICE9IE5WX0FSQ0hfMDMpIHsNCisJ CS8qDQorCQkgKiBOb3cgdGhlIF9ub3JtYWxfIGNoaXBzZXRzIGNhbiBqdXN0 IG1hcCB0aGUgYW1vdW50IG9mDQorCQkgKiByZWFsIHBoeXNpY2FsIHJhbSBp bnN0ZWFkIG9mIHRoZSB3aG9sZSBhcGVydHVyZQ0KKwkJICovDQorCQlpZiAo IXJlcXVlc3RfbWVtX3JlZ2lvbihyaW5mby0+ZmJfYmFzZV9waHlzLA0KKwkJ CQkJcmluZm8tPnJhbV9hbW91bnQsICJyaXZhZmIiKSkgew0KKwkJCXByaW50 ayhLRVJOX0VSUiBQRlggImNhbm5vdCByZXNlcnZlIEZCIHJlZ2lvblxuIik7 DQorCQkJZ290byBlcnJfb3V0X2ZyZWVfYmFzZTA7DQorCQl9DQogCQ0KLQly aW5mby0+ZmJfYmFzZSA9IGlvcmVtYXAocmluZm8tPmZiX2Jhc2VfcGh5cywN CisJCXJpbmZvLT5mYl9iYXNlID0gaW9yZW1hcChyaW5mby0+ZmJfYmFzZV9w aHlzLA0KIAkJCQkgcmluZm8tPnJhbV9hbW91bnQpOw0KLQlpZiAoIXJpbmZv LT5mYl9iYXNlKSB7DQotCQlwcmludGsoS0VSTl9FUlIgUEZYICJjYW5ub3Qg aW9yZW1hcCBGQiBiYXNlXG4iKTsNCi0JCWdvdG8gZXJyX291dF9pb3VubWFw X2N0cmw7DQorCQlpZiAoIXJpbmZvLT5mYl9iYXNlKSB7DQorCQkJcHJpbnRr KEtFUk5fRVJSIFBGWCAiY2Fubm90IGlvcmVtYXAgRkIgYmFzZVxuIik7DQor CQkJZ290byBlcnJfb3V0X2lvdW5tYXBfY3RybDsNCisJCX0NCiAJfQ0KIA0K ICNpZmRlZiBDT05GSUdfTVRSUg0K --0-1770179772-1023158496=:11992-- _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm