From mboxrd@z Thu Jan 1 00:00:00 1970 From: "David S. Miller" Subject: Move fib_alias out of fib_hash.c Date: Tue, 28 Sep 2004 21:47:22 -0700 Sender: netdev-bounce@oss.sgi.com Message-ID: <20040928214722.11aef8e0.davem@davemloft.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Tue__28_Sep_2004_21_47_22_-0700_xboskaUt20hTw6lG" Cc: robert.olsson@data.slu.se Return-path: To: netdev@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org This is a multi-part message in MIME format. --Multipart=_Tue__28_Sep_2004_21_47_22_-0700_xboskaUt20hTw6lG Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Ok, this begins the movement of fib_alias object handling out of fib_hash.c The idea is to make fib_hash.c purely a longest-matching-prefix lookup implementation. Look at fn_hash_lookup() after these changes, and you'll get an idea of how I want the whole fib_hash.c file to look in the end. I'll work on insert/delete tomorrow. --Multipart=_Tue__28_Sep_2004_21_47_22_-0700_xboskaUt20hTw6lG Content-Type: application/octet-stream; name="diff1" Content-Disposition: attachment; filename="diff1" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjggMjA6NDk6NTItMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW0lQVjRdOiBEZWZpbmUgZmliX2FsaWFzIGluIG5ldyBoZWFkZXIgZmli X2xvb2t1cC5oCiMgICAKIyAgIEFsc28gcy9GTl9TX0FDQ0VTU0VEL0ZBX1NfQUNDRVNTRUQvCiMg ICAKIyAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KIyAKIyBuZXQvaXB2NC9maWJfaGFzaC5jCiMgICAyMDA0LzA5LzI4IDIwOjQ5OjEzLTA3OjAw IGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldCArNyAtMTYKIyAgIFtJUFY0XTogRGVmaW5lIGZpYl9h bGlhcyBpbiBuZXcgaGVhZGVyIGZpYl9sb29rdXAuaAojIAojIG5ldC9pcHY0L2ZpYl9sb29rdXAu aAojICAgMjAwNC8wOS8yOCAyMDo0OTowNy0wNzowMCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQg KzE5IC0wCiMgICBbSVBWNF06IERlZmluZSBmaWJfYWxpYXMgaW4gbmV3IGhlYWRlciBmaWJfbG9v a3VwLmgKIyAKIyBuZXQvaXB2NC9maWJfbG9va3VwLmgKIyAgIDIwMDQvMDkvMjggMjA6NDk6MDct MDc6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0ICswIC0wCiMgICBCaXRLZWVwZXIgZmlsZSAv ZGlzazEvQksvbmV0LTIuNi9uZXQvaXB2NC9maWJfbG9va3VwLmgKIyAKZGlmZiAtTnJ1IGEvbmV0 L2lwdjQvZmliX2hhc2guYyBiL25ldC9pcHY0L2ZpYl9oYXNoLmMKLS0tIGEvbmV0L2lwdjQvZmli X2hhc2guYwkyMDA0LTA5LTI4IDIxOjI0OjQ2IC0wNzowMAorKysgYi9uZXQvaXB2NC9maWJfaGFz aC5jCTIwMDQtMDktMjggMjE6MjQ6NDYgLTA3OjAwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVk ZSA8bmV0L3NvY2suaD4KICNpbmNsdWRlIDxuZXQvaXBfZmliLmg+CiAKKyNpbmNsdWRlICJmaWJf bG9va3VwLmgiCisKIHN0YXRpYyBrbWVtX2NhY2hlX3QgKmZuX2hhc2hfa21lbTsKIHN0YXRpYyBr bWVtX2NhY2hlX3QgKmZuX2FsaWFzX2ttZW07CiAKQEAgLTUyLDE3ICs1NCw2IEBACiAJdTMyCQkJ Zm5fa2V5OwogfTsKIAotc3RydWN0IGZpYl9hbGlhcyB7Ci0Jc3RydWN0IGxpc3RfaGVhZAlmYV9s aXN0OwotCXN0cnVjdCBmaWJfaW5mbwkJKmZhX2luZm87Ci0JdTgJCQlmYV90b3M7Ci0JdTgJCQlm YV90eXBlOwotCXU4CQkJZmFfc2NvcGU7Ci0JdTgJCQlmYV9zdGF0ZTsKLX07Ci0KLSNkZWZpbmUg Rk5fU19BQ0NFU1NFRAkxCi0KIHN0cnVjdCBmbl96b25lIHsKIAlzdHJ1Y3QgZm5fem9uZQkJKmZ6 X25leHQ7CS8qIE5leHQgbm90IGVtcHR5IHpvbmUJKi8KIAlzdHJ1Y3QgaGxpc3RfaGVhZAkqZnpf aGFzaDsJLyogSGFzaCB0YWJsZSBwb2ludGVyCSovCkBAIC0yNzcsNyArMjY4LDcgQEAKIAkJCQlp ZiAoZmEtPmZhX3Njb3BlIDwgZmxwLT5mbDRfc2NvcGUpCiAJCQkJCWNvbnRpbnVlOwogCi0JCQkJ ZmEtPmZhX3N0YXRlIHw9IEZOX1NfQUNDRVNTRUQ7CisJCQkJZmEtPmZhX3N0YXRlIHw9IEZBX1Nf QUNDRVNTRUQ7CiAKIAkJCQllcnIgPSBmaWJfc2VtYW50aWNfbWF0Y2goZmEtPmZhX3R5cGUsCiAJ CQkJCQkJIGZhLT5mYV9pbmZvLApAQCAtMzU4LDcgKzM0OSw3IEBACiAJCQlpZiAoIW5leHRfZmkt PmZpYl9uaFswXS5uaF9ndyB8fAogCQkJICAgIG5leHRfZmktPmZpYl9uaFswXS5uaF9zY29wZSAh PSBSVF9TQ09QRV9MSU5LKQogCQkJCWNvbnRpbnVlOwotCQkJZmEtPmZhX3N0YXRlIHw9IEZOX1Nf QUNDRVNTRUQ7CisJCQlmYS0+ZmFfc3RhdGUgfD0gRkFfU19BQ0NFU1NFRDsKIAogCQkJaWYgKGZp ID09IE5VTEwpIHsKIAkJCQlpZiAobmV4dF9maSAhPSByZXMtPmZpKQpAQCAtNTIxLDExICs1MTIs MTEgQEAKIAkJCWZhLT5mYV90eXBlID0gdHlwZTsKIAkJCWZhLT5mYV9zY29wZSA9IHItPnJ0bV9z Y29wZTsKIAkJCXN0YXRlID0gZmEtPmZhX3N0YXRlOwotCQkJZmEtPmZhX3N0YXRlICY9IH5GTl9T X0FDQ0VTU0VEOworCQkJZmEtPmZhX3N0YXRlICY9IH5GQV9TX0FDQ0VTU0VEOwogCQkJd3JpdGVf dW5sb2NrX2JoKCZmaWJfaGFzaF9sb2NrKTsKIAogCQkJZmliX3JlbGVhc2VfaW5mbyhmaV9kcm9w KTsKLQkJCWlmIChzdGF0ZSAmIEZOX1NfQUNDRVNTRUQpCisJCQlpZiAoc3RhdGUgJiBGQV9TX0FD Q0VTU0VEKQogCQkJCXJ0X2NhY2hlX2ZsdXNoKC0xKTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC02 NjksNyArNjYwLDcgQEAKIAkJfQogCQl3cml0ZV91bmxvY2tfYmgoJmZpYl9oYXNoX2xvY2spOwog Ci0JCWlmIChmYS0+ZmFfc3RhdGUgJiBGTl9TX0FDQ0VTU0VEKQorCQlpZiAoZmEtPmZhX3N0YXRl ICYgRkFfU19BQ0NFU1NFRCkKIAkJCXJ0X2NhY2hlX2ZsdXNoKC0xKTsKIAkJZm5fZnJlZV9hbGlh cyhmYSk7CiAJCWlmIChraWxsX2ZuKSB7CmRpZmYgLU5ydSBhL25ldC9pcHY0L2ZpYl9sb29rdXAu aCBiL25ldC9pcHY0L2ZpYl9sb29rdXAuaAotLS0gL2Rldi9udWxsCVdlZCBEZWMgMzEgMTY6MDA6 MDAgMTk2OTAwCisrKyBiL25ldC9pcHY0L2ZpYl9sb29rdXAuaAkyMDA0LTA5LTI4IDIxOjI0OjQ2 IC0wNzowMApAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIF9GSUJfTE9PS1VQX0gKKyNkZWZpbmUg X0ZJQl9MT09LVVBfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51 eC9saXN0Lmg+CisjaW5jbHVkZSA8bmV0L2lwX2ZpYi5oPgorCitzdHJ1Y3QgZmliX2FsaWFzIHsK KwlzdHJ1Y3QgbGlzdF9oZWFkCWZhX2xpc3Q7CisJc3RydWN0IGZpYl9pbmZvCQkqZmFfaW5mbzsK Kwl1OAkJCWZhX3RvczsKKwl1OAkJCWZhX3R5cGU7CisJdTgJCQlmYV9zY29wZTsKKwl1OAkJCWZh X3N0YXRlOworfTsKKworI2RlZmluZSBGQV9TX0FDQ0VTU0VECTB4MDEKKworI2VuZGlmIC8qIF9G SUJfTE9PS1VQX0ggKi8K --Multipart=_Tue__28_Sep_2004_21_47_22_-0700_xboskaUt20hTw6lG Content-Type: application/octet-stream; name="diff2" Content-Disposition: attachment; filename="diff2" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjggMjA6NTk6MDUtMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW0lQVjRdOiBNb3ZlIHNvbWUgZmliX3NlbWFudGljcyBleHBvcnRzIGlu dG8gZmliX2xvb2t1cC5oCiMgICAKIyAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KIyAKIyBuZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKIyAgIDIw MDQvMDkvMjggMjA6NTg6MzMtMDc6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0ICsyIC0wCiMg ICBbSVBWNF06IE1vdmUgc29tZSBmaWJfc2VtYW50aWNzIGV4cG9ydHMgaW50byBmaWJfbG9va3Vw LmgKIyAKIyBuZXQvaXB2NC9maWJfbG9va3VwLmgKIyAgIDIwMDQvMDkvMjggMjA6NTg6MzMtMDc6 MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0ICsxNCAtMAojICAgW0lQVjRdOiBNb3ZlIHNvbWUg ZmliX3NlbWFudGljcyBleHBvcnRzIGludG8gZmliX2xvb2t1cC5oCiMgCiMgaW5jbHVkZS9uZXQv aXBfZmliLmgKIyAgIDIwMDQvMDkvMjggMjA6NTg6MzMtMDc6MDAgZGF2ZW1AbnV0cy5kYXZlbWxv ZnQubmV0ICsxIC0xMgojICAgW0lQVjRdOiBNb3ZlIHNvbWUgZmliX3NlbWFudGljcyBleHBvcnRz IGludG8gZmliX2xvb2t1cC5oCiMgCmRpZmYgLU5ydSBhL2luY2x1ZGUvbmV0L2lwX2ZpYi5oIGIv aW5jbHVkZS9uZXQvaXBfZmliLmgKLS0tIGEvaW5jbHVkZS9uZXQvaXBfZmliLmgJMjAwNC0wOS0y OCAyMToyNTowMyAtMDc6MDAKKysrIGIvaW5jbHVkZS9uZXQvaXBfZmliLmgJMjAwNC0wOS0yOCAy MToyNTowMyAtMDc6MDAKQEAgLTIxMCwyMiArMjEwLDExIEBACiBleHRlcm4gdm9pZCBmaWJfc2Vs ZWN0X211bHRpcGF0aChjb25zdCBzdHJ1Y3QgZmxvd2kgKmZscCwgc3RydWN0IGZpYl9yZXN1bHQg KnJlcyk7CiAKIC8qIEV4cG9ydGVkIGJ5IGZpYl9zZW1hbnRpY3MuYyAqLwotZXh0ZXJuIGludCAJ CWlwX2ZpYl9jaGVja19kZWZhdWx0KHUzMiBndywgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7Ci1l eHRlcm4gdm9pZAkJZmliX3JlbGVhc2VfaW5mbyhzdHJ1Y3QgZmliX2luZm8gKik7Ci1leHRlcm4g aW50CQlmaWJfc2VtYW50aWNfbWF0Y2goaW50IHR5cGUsIHN0cnVjdCBmaWJfaW5mbyAqLAotCQkJ CQkgICBjb25zdCBzdHJ1Y3QgZmxvd2kgKiwgc3RydWN0IGZpYl9yZXN1bHQqKTsKLWV4dGVybiBz dHJ1Y3QgZmliX2luZm8JKmZpYl9jcmVhdGVfaW5mbyhjb25zdCBzdHJ1Y3QgcnRtc2cgKnIsIHN0 cnVjdCBrZXJuX3J0YSAqcnRhLAotCQkJCQkgY29uc3Qgc3RydWN0IG5sbXNnaGRyICosIGludCAq ZXJyKTsKLWV4dGVybiBpbnQgZmliX25oX21hdGNoKHN0cnVjdCBydG1zZyAqciwgc3RydWN0IG5s bXNnaGRyICosIHN0cnVjdCBrZXJuX3J0YSAqcnRhLCBzdHJ1Y3QgZmliX2luZm8gKmZpKTsKLWV4 dGVybiBpbnQgZmliX2R1bXBfaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgcGlkLCB1MzIg c2VxLCBpbnQgZXZlbnQsCi0JCQkgdTggdGJfaWQsIHU4IHR5cGUsIHU4IHNjb3BlLCB2b2lkICpk c3QsIGludCBkc3RfbGVuLCB1OCB0b3MsCi0JCQkgc3RydWN0IGZpYl9pbmZvICpmaSk7CitleHRl cm4gaW50IGlwX2ZpYl9jaGVja19kZWZhdWx0KHUzMiBndywgc3RydWN0IG5ldF9kZXZpY2UgKmRl dik7CiBleHRlcm4gaW50IGZpYl9zeW5jX2Rvd24odTMyIGxvY2FsLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBpbnQgZm9yY2UpOwogZXh0ZXJuIGludCBmaWJfc3luY191cChzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KTsKIGV4dGVybiBpbnQgZmliX2NvbnZlcnRfcnRlbnRyeShpbnQgY21kLCBzdHJ1 Y3Qgbmxtc2doZHIgKm5sLCBzdHJ1Y3QgcnRtc2cgKnJ0bSwKIAkJCSAgICAgICBzdHJ1Y3Qga2Vy bl9ydGEgKnJ0YSwgc3RydWN0IHJ0ZW50cnkgKnIpOwotZXh0ZXJuIHZvaWQgZmliX25vZGVfc2Vx X3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIGludCB0eXBlLCBpbnQgZGVhZCwKLQkJCSAgICAg IHN0cnVjdCBmaWJfaW5mbyAqZmksIHUzMiBwcmVmaXgsIHUzMiBtYXNrKTsKIGV4dGVybiB1MzIg IF9fZmliX3Jlc19wcmVmc3JjKHN0cnVjdCBmaWJfcmVzdWx0ICpyZXMpOwogCiAvKiBFeHBvcnRl ZCBieSBmaWJfaGFzaC5jICovCmRpZmYgLU5ydSBhL25ldC9pcHY0L2ZpYl9sb29rdXAuaCBiL25l dC9pcHY0L2ZpYl9sb29rdXAuaAotLS0gYS9uZXQvaXB2NC9maWJfbG9va3VwLmgJMjAwNC0wOS0y OCAyMToyNTowMyAtMDc6MDAKKysrIGIvbmV0L2lwdjQvZmliX2xvb2t1cC5oCTIwMDQtMDktMjgg MjE6MjU6MDMgLTA3OjAwCkBAIC0xNiw0ICsxNiwxOCBAQAogCiAjZGVmaW5lIEZBX1NfQUNDRVNT RUQJMHgwMQogCisvKiBFeHBvcnRlZCBieSBmaWJfc2VtYW50aWNzLmMgKi8KK2V4dGVybiBpbnQg ZmliX3NlbWFudGljX21hdGNoKGludCB0eXBlLCBzdHJ1Y3QgZmliX2luZm8gKiwKKwkJCSAgICAg IGNvbnN0IHN0cnVjdCBmbG93aSAqLCBzdHJ1Y3QgZmliX3Jlc3VsdCAqKTsKK2V4dGVybiB2b2lk IGZpYl9yZWxlYXNlX2luZm8oc3RydWN0IGZpYl9pbmZvICopOworZXh0ZXJuIHN0cnVjdCBmaWJf aW5mbyAqZmliX2NyZWF0ZV9pbmZvKGNvbnN0IHN0cnVjdCBydG1zZyAqciwKKwkJCQkJc3RydWN0 IGtlcm5fcnRhICpydGEsCisJCQkJCWNvbnN0IHN0cnVjdCBubG1zZ2hkciAqLAorCQkJCQlpbnQg KmVycik7CitleHRlcm4gaW50IGZpYl9uaF9tYXRjaChzdHJ1Y3QgcnRtc2cgKnIsIHN0cnVjdCBu bG1zZ2hkciAqLAorCQkJc3RydWN0IGtlcm5fcnRhICpydGEsIHN0cnVjdCBmaWJfaW5mbyAqZmkp OworZXh0ZXJuIGludCBmaWJfZHVtcF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBwaWQs IHUzMiBzZXEsIGludCBldmVudCwKKwkJCSB1OCB0Yl9pZCwgdTggdHlwZSwgdTggc2NvcGUsIHZv aWQgKmRzdCwKKwkJCSBpbnQgZHN0X2xlbiwgdTggdG9zLCBzdHJ1Y3QgZmliX2luZm8gKmZpKTsK KwogI2VuZGlmIC8qIF9GSUJfTE9PS1VQX0ggKi8KZGlmZiAtTnJ1IGEvbmV0L2lwdjQvZmliX3Nl bWFudGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCi0tLSBhL25ldC9pcHY0L2ZpYl9z ZW1hbnRpY3MuYwkyMDA0LTA5LTI4IDIxOjI1OjAzIC0wNzowMAorKysgYi9uZXQvaXB2NC9maWJf c2VtYW50aWNzLmMJMjAwNC0wOS0yOCAyMToyNTowMyAtMDc6MDAKQEAgLTQzLDYgKzQzLDggQEAK ICNpbmNsdWRlIDxuZXQvc29jay5oPgogI2luY2x1ZGUgPG5ldC9pcF9maWIuaD4KIAorI2luY2x1 ZGUgImZpYl9sb29rdXAuaCIKKwogI2RlZmluZSBGU3ByaW50ayhhLi4uKQogCiBzdGF0aWMgcnds b2NrX3QgZmliX2luZm9fbG9jayA9IFJXX0xPQ0tfVU5MT0NLRUQ7Cg== --Multipart=_Tue__28_Sep_2004_21_47_22_-0700_xboskaUt20hTw6lG Content-Type: application/octet-stream; name="diff3" Content-Disposition: attachment; filename="diff3" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjggMjE6MjM6NDAtMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW0lQVjRdOiBEbyBmaWJfYWxpYXMgbG9va3VwIHdhbGsgZGlyZWN0bHkg aW4gZmliX3NlbWFudGljX21hdGNoKCkuCiMgICAKIyAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KIyAKIyBuZXQvaXB2NC9maWJfc2VtYW50aWNz LmMKIyAgIDIwMDQvMDkvMjggMjE6MjM6MDctMDc6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0 ICs2MCAtMzgKIyAgIFtJUFY0XTogRG8gZmliX2FsaWFzIGxvb2t1cCB3YWxrIGRpcmVjdGx5IGlu IGZpYl9zZW1hbnRpY19tYXRjaCgpLgojIAojIG5ldC9pcHY0L2ZpYl9sb29rdXAuaAojICAgMjAw NC8wOS8yOCAyMToyMzowNy0wNzowMCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQgKzMgLTIKIyAg IFtJUFY0XTogRG8gZmliX2FsaWFzIGxvb2t1cCB3YWxrIGRpcmVjdGx5IGluIGZpYl9zZW1hbnRp Y19tYXRjaCgpLgojIAojIG5ldC9pcHY0L2ZpYl9oYXNoLmMKIyAgIDIwMDQvMDkvMjggMjE6MjM6 MDctMDc6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0ICs1IC0yMwojICAgW0lQVjRdOiBEbyBm aWJfYWxpYXMgbG9va3VwIHdhbGsgZGlyZWN0bHkgaW4gZmliX3NlbWFudGljX21hdGNoKCkuCiMg CmRpZmYgLU5ydSBhL25ldC9pcHY0L2ZpYl9oYXNoLmMgYi9uZXQvaXB2NC9maWJfaGFzaC5jCi0t LSBhL25ldC9pcHY0L2ZpYl9oYXNoLmMJMjAwNC0wOS0yOCAyMToyNToyMCAtMDc6MDAKKysrIGIv bmV0L2lwdjQvZmliX2hhc2guYwkyMDA0LTA5LTI4IDIxOjI1OjIwIC0wNzowMApAQCAtMjU2LDMy ICsyNTYsMTQgQEAKIAogCQloZWFkID0gJmZ6LT5mel9oYXNoW2ZuX2hhc2goaywgZnopXTsKIAkJ aGxpc3RfZm9yX2VhY2hfZW50cnkoZiwgbm9kZSwgaGVhZCwgZm5faGFzaCkgewotCQkJc3RydWN0 IGZpYl9hbGlhcyAqZmE7Ci0KIAkJCWlmIChmLT5mbl9rZXkgIT0gaykKIAkJCQljb250aW51ZTsK IAotCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShmYSwgJmYtPmZuX2FsaWFzLCBmYV9saXN0KSB7Ci0J CQkJaWYgKGZhLT5mYV90b3MgJiYKLQkJCQkgICAgZmEtPmZhX3RvcyAhPSBmbHAtPmZsNF90b3Mp Ci0JCQkJCWNvbnRpbnVlOwotCQkJCWlmIChmYS0+ZmFfc2NvcGUgPCBmbHAtPmZsNF9zY29wZSkK LQkJCQkJY29udGludWU7Ci0KLQkJCQlmYS0+ZmFfc3RhdGUgfD0gRkFfU19BQ0NFU1NFRDsKLQot CQkJCWVyciA9IGZpYl9zZW1hbnRpY19tYXRjaChmYS0+ZmFfdHlwZSwKLQkJCQkJCQkgZmEtPmZh X2luZm8sCi0JCQkJCQkJIGZscCwgcmVzKTsKLQkJCQlpZiAoZXJyID09IDApIHsKLQkJCQkJcmVz LT50eXBlID0gZmEtPmZhX3R5cGU7Ci0JCQkJCXJlcy0+c2NvcGUgPSBmYS0+ZmFfc2NvcGU7Ci0J CQkJCXJlcy0+cHJlZml4bGVuID0gZnotPmZ6X29yZGVyOwotCQkJCQlnb3RvIG91dDsKLQkJCQl9 Ci0JCQkJaWYgKGVyciA8IDApCi0JCQkJCWdvdG8gb3V0OwotCQkJfQorCQkJZXJyID0gZmliX3Nl bWFudGljX21hdGNoKCZmLT5mbl9hbGlhcywKKwkJCQkJCSBmbHAsIHJlcywKKwkJCQkJCSBmei0+ Znpfb3JkZXIpOworCQkJaWYgKGVyciA8PSAwKQorCQkJCWdvdG8gb3V0OwogCQl9CiAJfQogCWVy ciA9IDE7CmRpZmYgLU5ydSBhL25ldC9pcHY0L2ZpYl9sb29rdXAuaCBiL25ldC9pcHY0L2ZpYl9s b29rdXAuaAotLS0gYS9uZXQvaXB2NC9maWJfbG9va3VwLmgJMjAwNC0wOS0yOCAyMToyNToyMCAt MDc6MDAKKysrIGIvbmV0L2lwdjQvZmliX2xvb2t1cC5oCTIwMDQtMDktMjggMjE6MjU6MjAgLTA3 OjAwCkBAIC0xNyw4ICsxNyw5IEBACiAjZGVmaW5lIEZBX1NfQUNDRVNTRUQJMHgwMQogCiAvKiBF eHBvcnRlZCBieSBmaWJfc2VtYW50aWNzLmMgKi8KLWV4dGVybiBpbnQgZmliX3NlbWFudGljX21h dGNoKGludCB0eXBlLCBzdHJ1Y3QgZmliX2luZm8gKiwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBm bG93aSAqLCBzdHJ1Y3QgZmliX3Jlc3VsdCAqKTsKK2V4dGVybiBpbnQgZmliX3NlbWFudGljX21h dGNoKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgZmxvd2kg KmZscCwKKwkJCSAgICAgIHN0cnVjdCBmaWJfcmVzdWx0ICpyZXMsIGludCBwcmVmaXhsZW4pOwog ZXh0ZXJuIHZvaWQgZmliX3JlbGVhc2VfaW5mbyhzdHJ1Y3QgZmliX2luZm8gKik7CiBleHRlcm4g c3RydWN0IGZpYl9pbmZvICpmaWJfY3JlYXRlX2luZm8oY29uc3Qgc3RydWN0IHJ0bXNnICpyLAog CQkJCQlzdHJ1Y3Qga2Vybl9ydGEgKnJ0YSwKZGlmZiAtTnJ1IGEvbmV0L2lwdjQvZmliX3NlbWFu dGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCi0tLSBhL25ldC9pcHY0L2ZpYl9zZW1h bnRpY3MuYwkyMDA0LTA5LTI4IDIxOjI1OjIwIC0wNzowMAorKysgYi9uZXQvaXB2NC9maWJfc2Vt YW50aWNzLmMJMjAwNC0wOS0yOCAyMToyNToyMCAtMDc6MDAKQEAgLTc2MCw1MSArNzYwLDczIEBA CiAJcmV0dXJuIE5VTEw7CiB9CiAKLWludCAKLWZpYl9zZW1hbnRpY19tYXRjaChpbnQgdHlwZSwg c3RydWN0IGZpYl9pbmZvICpmaSwgY29uc3Qgc3RydWN0IGZsb3dpICpmbHAsIHN0cnVjdCBmaWJf cmVzdWx0ICpyZXMpCitpbnQgZmliX3NlbWFudGljX21hdGNoKHN0cnVjdCBsaXN0X2hlYWQgKmhl YWQsIGNvbnN0IHN0cnVjdCBmbG93aSAqZmxwLAorCQkgICAgICAgc3RydWN0IGZpYl9yZXN1bHQg KnJlcywgaW50IHByZWZpeGxlbikKIHsKLQlpbnQgZXJyID0gZmliX3Byb3BzW3R5cGVdLmVycm9y OworCXN0cnVjdCBmaWJfYWxpYXMgKmZhOworCWludCBuaF9zZWwgPSAwOwogCi0JaWYgKGVyciA9 PSAwKSB7Ci0JCWlmIChmaS0+ZmliX2ZsYWdzJlJUTkhfRl9ERUFEKQotCQkJcmV0dXJuIDE7Ci0K LQkJcmVzLT5maSA9IGZpOwotCi0JCXN3aXRjaCAodHlwZSkgewotCQljYXNlIFJUTl9VTklDQVNU OgotCQljYXNlIFJUTl9MT0NBTDoKLQkJY2FzZSBSVE5fQlJPQURDQVNUOgotCQljYXNlIFJUTl9B TllDQVNUOgotCQljYXNlIFJUTl9NVUxUSUNBU1Q6Ci0JCQlmb3JfbmV4dGhvcHMoZmkpIHsKLQkJ CQlpZiAobmgtPm5oX2ZsYWdzJlJUTkhfRl9ERUFEKQotCQkJCQljb250aW51ZTsKLQkJCQlpZiAo IWZscC0+b2lmIHx8IGZscC0+b2lmID09IG5oLT5uaF9vaWYpCi0JCQkJCWJyZWFrOwotCQkJfQor CWxpc3RfZm9yX2VhY2hfZW50cnkoZmEsIGhlYWQsIGZhX2xpc3QpIHsKKwkJaW50IGVycjsKKwor CQlpZiAoZmEtPmZhX3RvcyAmJgorCQkgICAgZmEtPmZhX3RvcyAhPSBmbHAtPmZsNF90b3MpCisJ CQljb250aW51ZTsKKworCQlpZiAoZmEtPmZhX3Njb3BlIDwgZmxwLT5mbDRfc2NvcGUpCisJCQlj b250aW51ZTsKKworCQlmYS0+ZmFfc3RhdGUgfD0gRkFfU19BQ0NFU1NFRDsKKworCQllcnIgPSBm aWJfcHJvcHNbZmEtPmZhX3R5cGVdLmVycm9yOworCQlpZiAoZXJyID09IDApIHsKKwkJCXN0cnVj dCBmaWJfaW5mbyAqZmkgPSBmYS0+ZmFfaW5mbzsKKworCQkJaWYgKGZpLT5maWJfZmxhZ3MgJiBS VE5IX0ZfREVBRCkKKwkJCQljb250aW51ZTsKKworCQkJc3dpdGNoIChmYS0+ZmFfdHlwZSkgewor CQkJY2FzZSBSVE5fVU5JQ0FTVDoKKwkJCWNhc2UgUlROX0xPQ0FMOgorCQkJY2FzZSBSVE5fQlJP QURDQVNUOgorCQkJY2FzZSBSVE5fQU5ZQ0FTVDoKKwkJCWNhc2UgUlROX01VTFRJQ0FTVDoKKwkJ CQlmb3JfbmV4dGhvcHMoZmkpIHsKKwkJCQkJaWYgKG5oLT5uaF9mbGFncyZSVE5IX0ZfREVBRCkK KwkJCQkJCWNvbnRpbnVlOworCQkJCQlpZiAoIWZscC0+b2lmIHx8IGZscC0+b2lmID09IG5oLT5u aF9vaWYpCisJCQkJCQlicmVhazsKKwkJCQl9CiAjaWZkZWYgQ09ORklHX0lQX1JPVVRFX01VTFRJ UEFUSAotCQkJaWYgKG5oc2VsIDwgZmktPmZpYl9uaHMpIHsKLQkJCQlyZXMtPm5oX3NlbCA9IG5o c2VsOwotCQkJCWF0b21pY19pbmMoJmZpLT5maWJfY2xudHJlZik7Ci0JCQkJcmV0dXJuIDA7Ci0J CQl9CisJCQkJaWYgKG5oc2VsIDwgZmktPmZpYl9uaHMpIHsKKwkJCQkJbmhfc2VsID0gbmhzZWw7 CisJCQkJCWdvdG8gb3V0X2ZpbGxfcmVzOworCQkJCX0KICNlbHNlCi0JCQlpZiAobmhzZWwgPCAx KSB7Ci0JCQkJYXRvbWljX2luYygmZmktPmZpYl9jbG50cmVmKTsKLQkJCQlyZXR1cm4gMDsKLQkJ CX0KKwkJCQlpZiAobmhzZWwgPCAxKSB7CisJCQkJCWdvdG8gb3V0X2ZpbGxfcmVzOworCQkJCX0K ICNlbmRpZgotCQkJZW5kZm9yX25leHRob3BzKGZpKTsKLQkJCXJlcy0+ZmkgPSBOVUxMOwotCQkJ cmV0dXJuIDE7Ci0JCWRlZmF1bHQ6Ci0JCQlyZXMtPmZpID0gTlVMTDsKLQkJCXByaW50ayhLRVJO X0RFQlVHICJpbXBvc3NpYmxlIDEwMlxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJCQllbmRm b3JfbmV4dGhvcHMoZmkpOworCQkJCWNvbnRpbnVlOworCisJCQlkZWZhdWx0OgorCQkJCXByaW50 ayhLRVJOX0RFQlVHICJpbXBvc3NpYmxlIDEwMlxuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJ CQl9OwogCQl9CisJCXJldHVybiBlcnI7CiAJfQotCXJldHVybiBlcnI7CisJcmV0dXJuIDE7CisK K291dF9maWxsX3JlczoKKwlyZXMtPnByZWZpeGxlbiA9IHByZWZpeGxlbjsKKwlyZXMtPm5oX3Nl bCA9IG5oX3NlbDsKKwlyZXMtPnR5cGUgPSBmYS0+ZmFfdHlwZTsKKwlyZXMtPnNjb3BlID0gZmEt PmZhX3Njb3BlOworCXJlcy0+ZmkgPSBmYS0+ZmFfaW5mbzsKKwlhdG9taWNfaW5jKCZyZXMtPmZp LT5maWJfY2xudHJlZik7CisJcmV0dXJuIDA7CiB9CiAKIC8qIEZpbmQgYXBwcm9wcmlhdGUgc291 cmNlIGFkZHJlc3MgdG8gdGhpcyBkZXN0aW5hdGlvbiAqLwo= --Multipart=_Tue__28_Sep_2004_21_47_22_-0700_xboskaUt20hTw6lG--