From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hal Rosenstock Subject: Re: [PATCH v4] opensm: Multicast root switch calculation Date: Thu, 4 Feb 2010 09:22:52 -0500 Message-ID: References: <4B17C712.9010109@Voltaire.COM> <20100120102703.GB25576@me> <39C75744D164D948A170E9792AF8E7CA01F6FA8A@exil.voltaire.com> <20100120115936.GC25576@me> <20100127104503.GM26338@me> <20100203103428.GW26338@me> <20100203103939.GX26338@me> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20100203103939.GX26338@me> Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Sasha Khapyorsky Cc: Slava Strebkov , linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Eli Dorfman , Or Gerlitz , Yevgeny Kliteynik List-Id: linux-rdma@vger.kernel.org T24gV2VkLCBGZWIgMywgMjAxMCBhdCA1OjM5IEFNLCBTYXNoYSBLaGFweW9yc2t5IDxzYXNoYWtA dm9sdGFpcmUuY29tPiB3cm90ZToKPgo+IEZyb206IFNsYXZhIFN0cmVia292IDxzbGF2YXNAVm9s dGFpcmUuQ09NPgo+Cj4gUHJvcG9zZWQgbmV3IGFsZ29yaXRobSBmb3IgY2FsY3VsYXRpb24gb2Yg cm9vdCBzd2l0Y2ggZm9yIG11bHRpY2FzdAo+IHNwYW5uaW5nIHRyZWUuIE9ubHkgZWRnZSBzd2l0 Y2hlcyh0aG9zZSBjb25uZWN0ZWQgdG8gaG9zdHMgb3Igcm91dGVycykKPiBhbmQgc3dpdGNoZXMg LSBtdWx0aWNhc3QgbWVtYmVycyB0aGVtc2VsdmVzIGFyZSBpbnZvbHZlZCBpbiByb290Cj4gY2Fs Y3VsYXRpb24uIFRoaXMgZ2l2ZXMgaW1wcm92ZW1lbnQsIGVzcGVjaWFsbHkgb24gbGFyZ2UgZmFi cmljcywgc2luY2UKPiBudW1iZXIgb2Ygc3dpdGNoZXMgdXN1YWxseSBtdWNoIGxlc3MgdGhlbiB0 aGUgbnVtYmVyIG9mIHBvcnRzLCBzaGFyZWQKPiBzYW1lIG1jYXN0IGdyb3VwLgo+Cj4gU2lnbmVk LW9mZi1ieTogU2xhdmEgU3RyZWJrb3YgPHNsYXZhc0B2b2x0YWlyZS5jb20+Cj4gU2lnbmVkLW9m Zi1ieTogU2FzaGEgS2hhcHlvcnNreSA8c2FzaGFrQHZvbHRhaXJlLmNvbT4KPiAtLS0KPiDCoG9w ZW5zbS9pbmNsdWRlL29wZW5zbS9vc21fc3dpdGNoLmggfCDCoCAxMiArKysKPiDCoG9wZW5zbS9v cGVuc20vb3NtX21jYXN0X21nci5jIMKgIMKgIMKgfCDCoDE0OSArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLQo+IMKgMiBmaWxlcyBjaGFuZ2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwg MzkgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvb3BlbnNtL2luY2x1ZGUvb3BlbnNtL29z bV9zd2l0Y2guaCBiL29wZW5zbS9pbmNsdWRlL29wZW5zbS9vc21fc3dpdGNoLmgKPiBpbmRleCAy MDU4OTZkLi5jYjZlNWFjIDEwMDY0NAo+IC0tLSBhL29wZW5zbS9pbmNsdWRlL29wZW5zbS9vc21f c3dpdGNoLmgKPiArKysgYi9vcGVuc20vaW5jbHVkZS9vcGVuc20vb3NtX3N3aXRjaC5oCj4gQEAg LTEwOSw2ICsxMDksOSBAQCB0eXBlZGVmIHN0cnVjdCBvc21fc3dpdGNoIHsKPiDCoCDCoCDCoCDC oHVuc2lnbmVkIGVuZHBvcnRfbGlua3M7Cj4gwqAgwqAgwqAgwqB1bnNpZ25lZCBuZWVkX3VwZGF0 ZTsKPiDCoCDCoCDCoCDCoHZvaWQgKnByaXY7Cj4gKyDCoCDCoCDCoCBjbF9tYXBfaXRlbV90IG1n cnBfaXRlbTsKPiArIMKgIMKgIMKgIHVpbnQzMl90IG51bV9vZl9tY207Cj4gKyDCoCDCoCDCoCB1 aW50OF90IGlzX21jX21lbWJlcjsKPiDCoH0gb3NtX3N3aXRjaF90Owo+IMKgLyoKPiDCoCogRklF TERTCj4gQEAgLTE1MSw2ICsxNTQsMTUgQEAgdHlwZWRlZiBzdHJ1Y3Qgb3NtX3N3aXRjaCB7Cj4g wqAqIMKgIMKgIMKgIMKgIMKgIMKgIMKgV2hlbiBzZXQgaW5kaWNhdGVzIHRoYXQgc3dpdGNoIHdh cyBwcm9iYWJseSByZXNldCwgc28KPiDCoCogwqAgwqAgwqAgwqAgwqAgwqAgwqBmd2QgdGFibGVz IGFuZCByZXN0IGNhY2hlZCBkYXRhIHNob3VsZCBiZSBmbHVzaGVkCj4gwqAqCj4gKyogwqAgwqAg wqBtZ3JwX2l0ZW0KPiArKiDCoCDCoCDCoCDCoCDCoCDCoCDCoG1hcCBpdGVtIGZvciBzd2l0Y2gg aW4gYnVpbGRpbmcgbWNhc3QgdHJlZQo+ICsqCj4gKyogwqAgwqAgwqBudW1fb2ZfbWNtCj4gKyog wqAgwqAgwqAgwqAgwqAgwqAgwqBudW1iZXIgb2YgbWNhc3QgbWVtYmVycyhwb3J0cykgY29ubmVj dGVkIHRvIHN3aXRjaAo+ICsqCj4gKyogwqAgwqAgwqBpc19tY19tZW1iZXIKPiArKiDCoCDCoCDC oCDCoCDCoCDCoCDCoHdoZXRoZXIgc3dpdGNoIGlzIGEgbWNhc3QgbWVtYmVyIGl0c2VsZgo+ICsq Cj4gwqAqIFNFRSBBTFNPCj4gwqAqIMKgIMKgIMKgU3dpdGNoIG9iamVjdAo+IMKgKioqKioqKioq Lwo+IGRpZmYgLS1naXQgYS9vcGVuc20vb3BlbnNtL29zbV9tY2FzdF9tZ3IuYyBiL29wZW5zbS9v cGVuc20vb3NtX21jYXN0X21nci5jCj4gaW5kZXggZGNlOWYyYi4uYjUwZjM2MCAxMDA2NDQKPiAt LS0gYS9vcGVuc20vb3BlbnNtL29zbV9tY2FzdF9tZ3IuYwo+ICsrKyBiL29wZW5zbS9vcGVuc20v b3NtX21jYXN0X21nci5jCj4gQEAgLTE1Nyw1MCArMTU3LDExOSBAQCBzdGF0aWMgdm9pZCBtY2Fz dF9tZ3JfcHVyZ2VfdHJlZShvc21fc21fdCAqIHNtLCBJTiBvc21fbWdycF9ib3hfdCAqIG1ib3gp Cj4gwqAgwqAgwqAgwqBPU01fTE9HX0VYSVQoc20tPnBfbG9nKTsKPiDCoH0KPgo+IC1zdGF0aWMg ZmxvYXQgb3NtX21jYXN0X21ncl9jb21wdXRlX2F2Z19ob3BzKG9zbV9zbV90ICogc20sIGNsX3Fs aXN0X3QgKiBsLAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgY29uc3Qgb3NtX3N3aXRjaF90ICogcF9zdykKPiArc3RhdGlj IHZvaWQgbWNhc3RfbWdyX2J1aWxkX3N3aXRjaF9tYXAob3NtX3NtX3QgKiBzbSwKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY29uc3Qg Y2xfcWxpc3RfdCAqIHBvcnRfbGlzdCwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY2xfcW1hcF90ICogcF9tY2FzdF9tZW1iZXJfc3df dGJsKQo+IMKgewo+IC0gwqAgwqAgwqAgZmxvYXQgYXZnX2hvcHMgPSAwOwo+IC0gwqAgwqAgwqAg dWludDMyX3QgaG9wcyA9IDA7Cj4gLSDCoCDCoCDCoCB1aW50MzJfdCBudW1fcG9ydHMgPSAwOwo+ IC0gwqAgwqAgwqAgY2xfbGlzdF9pdGVtX3QgKmk7Cj4gKyDCoCDCoCDCoCBvc21fc3dpdGNoX3Qg KnJlbW90ZV9zdzsKPiArIMKgIMKgIMKgIGNsX2xpc3RfaXRlbV90ICpsaXN0X2l0ZW07Cj4gKyDC oCDCoCDCoCBvc21fcG9ydF90ICpwX3BvcnQ7Cj4gKyDCoCDCoCDCoCBpYl9uZXQ2NF90IHBvcnRf Z3VpZDsKPiArIMKgIMKgIMKgIG9zbV9waHlzcF90ICpwX3BoeXNwX3JlbW90ZTsKPiArIMKgIMKg IMKgIG9zbV9ub2RlX3QgKnJlbW90ZV9ub2RlOwo+IMKgIMKgIMKgIMKgb3NtX21jYXN0X3dvcmtf b2JqX3QgKndvYmo7Cj4KPiDCoCDCoCDCoCDCoE9TTV9MT0dfRU5URVIoc20tPnBfbG9nKTsKPgo+ IC0gwqAgwqAgwqAgLyoKPiAtIMKgIMKgIMKgIMKgIMKgRm9yIGVhY2ggbWVtYmVyIG9mIHRoZSBt dWx0aWNhc3QgZ3JvdXAsIGNvbXB1dGUgdGhlCj4gLSDCoCDCoCDCoCDCoCDCoG51bWJlciBvZiBo b3BzIHRvIGl0cyBiYXNlIExJRC4KPiAtIMKgIMKgIMKgIMKgKi8KPiAtIMKgIMKgIMKgIGZvciAo aSA9IGNsX3FsaXN0X2hlYWQobCk7IGkgIT0gY2xfcWxpc3RfZW5kKGwpOyBpID0gY2xfcWxpc3Rf bmV4dChpKSkgewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgd29iaiA9IGNsX2l0ZW1fb2JqKGks IHdvYmosIGxpc3RfaXRlbSk7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBob3BzICs9IG9zbV9z d2l0Y2hfZ2V0X3BvcnRfbGVhc3RfaG9wcyhwX3N3LCB3b2JqLT5wX3BvcnQpOwo+IC0gwqAgwqAg wqAgwqAgwqAgwqAgwqAgbnVtX3BvcnRzKys7Cj4gKyDCoCDCoCDCoCBjbF9xbWFwX2luaXQocF9t Y2FzdF9tZW1iZXJfc3dfdGJsKTsKPiArIMKgIMKgIMKgIGZvciAobGlzdF9pdGVtID0gY2xfcWxp c3RfaGVhZChwb3J0X2xpc3QpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqBsaXN0X2l0ZW0gIT0gY2xf cWxpc3RfZW5kKHBvcnRfbGlzdCk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoGxpc3RfaXRlbSA9IGNs X3FsaXN0X25leHQobGlzdF9pdGVtKSkgewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgd29iaiA9 IGNsX2l0ZW1fb2JqKGxpc3RfaXRlbSwgd29iaiwgbGlzdF9pdGVtKTsKPiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIHBfcG9ydCA9IHdvYmotPnBfcG9ydDsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGlmICghcF9wb3J0KQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgY29udGlu dWU7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAocF9wb3J0LT5wX25vZGUtPnN3KSB7Cj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBmb3Igc3dpdGNoZXMgLSByZW1v dGUgc3dpdGNoIHdvdWxkIGJlIHRoZSBzd2l0Y2ggaXRzZWxmICovCj4gKyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCByZW1vdGVfbm9kZSA9IG9zbV9waHlzcF9nZXRfbm9kZV9wdHIo cF9wb3J0LT5wX3BoeXNwKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIH0gZWxzZSB7Cj4gKyDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBwX3BoeXNwX3JlbW90ZSA9IG9zbV9waHlz cF9nZXRfcmVtb3RlKHBfcG9ydC0+cF9waHlzcCk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCByZW1vdGVfbm9kZSA9IG9zbV9waHlzcF9nZXRfbm9kZV9wdHIocF9waHlzcF9y ZW1vdGUpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgLyogZ2V0IHRoZSByZW1vdGUgc3dpdGNoIG9mIHRoZSBtY21lbWJlciAqLwo+ICsgwqAgwqAg wqAgwqAgwqAgwqAgwqAgcmVtb3RlX3N3ID0gcmVtb3RlX25vZGUtPnN3Owo+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgcG9ydF9ndWlkID0gb3NtX25vZGVfZ2V0X25vZGVfZ3VpZChyZW1vdGVfbm9k ZSk7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAoY2xfcW1hcF9nZXQocF9tY2FzdF9tZW1i ZXJfc3dfdGJsLCBwb3J0X2d1aWQpID09Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBjbF9xbWFwX2VuZChwX21jYXN0X21lbWJlcl9zd190YmwpKSB7Cj4gKyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAvKiBpbnNlcnQgc3dpdGNoIHRvIHRh YmxlICovCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBj bF9xbWFwX2luc2VydChwX21jYXN0X21lbWJlcl9zd190YmwsIHBvcnRfZ3VpZCwgJnJlbW90ZV9z dy0+bWdycF9pdGVtKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIC8qIE5ldyBlbGVtZW50IGluIHRoZSB0YWJsZSAqLwo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKHBfcG9ydC0+cF9ub2RlLT5zdykKPiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IC8qIHRoZSBzd2l0Y2ggaXMgTUMgbWVtZWJlciAqLwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmVtb3RlX3N3LT5pc19tY19tZW1i ZXIgPSAxOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg ZWxzZQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgLyogZm9yIG90aGVycyAtIHVwZGF0ZSBNQyBjb3VudCAqLwo+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmVtb3RlX3N3 LT5udW1fb2ZfbWNtKys7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9Cj4gwqAgwqAgwqAgwqB9 Cj4gKyDCoCDCoCDCoCBPU01fTE9HX0VYSVQoc20tPnBfbG9nKTsKPiArfQo+Cj4gLSDCoCDCoCDC oCAvKgo+IC0gwqAgwqAgwqAgwqAgwqBXZSBzaG91bGQgYmUgaGVyZSBpZiB0aGVyZSBhcmVuJ3Qg YW55IHBvcnRzIGluIHRoZSBncm91cC4KPiAtIMKgIMKgIMKgIMKgKi8KPiAtIMKgIMKgIMKgIENM X0FTU0VSVChudW1fcG9ydHMpOwoKV2hhdCBhYm91dCB3ZWxsIGtub3duIGdyb3VwcyB3aXRoIG5v IGN1cnJlbnQgbWVtYmVycyA/IERvIHRob3NlIGdyb3Vwcwpub3QgZ2V0IGhlcmUgb3IgZG8gdGhl eSBoYXZlIGEgcG9ydCA/CgotLSBIYWwKCj4gK3N0YXRpYyB2b2lkIG1jYXN0X21ncl9kZXN0cm95 X3N3aXRjaF9tYXAob3NtX3NtX3QgKiBzbSwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIGNsX3FtYXBfdCAqcF9tY2FzdF9tZW1iZXJfc3dfdGJsKQo+ICt7Cj4gKyDCoCDCoCDC oCBjbF9tYXBfaXRlbV90ICpwX2l0ZW07Cj4gKyDCoCDCoCDCoCBvc21fc3dpdGNoX3QgKnBfc3c7 Cj4KPiAtIMKgIMKgIMKgIGlmIChudW1fcG9ydHMgIT0gMCkKPiAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIGF2Z19ob3BzID0gKGZsb2F0KShob3BzIC8gbnVtX3BvcnRzKTsKPiArIMKgIMKgIMKgIE9T TV9MT0dfRU5URVIoc20tPnBfbG9nKTsKPgo+ICsgwqAgwqAgwqAgcF9pdGVtID0gY2xfcW1hcF9o ZWFkKHBfbWNhc3RfbWVtYmVyX3N3X3RibCk7Cj4gKyDCoCDCoCDCoCB3aGlsZSAocF9pdGVtICE9 IGNsX3FtYXBfZW5kKHBfbWNhc3RfbWVtYmVyX3N3X3RibCkpIHsKPiArIMKgIMKgIMKgIMKgIMKg IMKgIMKgIHBfc3cgPSBQQVJFTlRfU1RSVUNUKHBfaXRlbSwgb3NtX3N3aXRjaF90LCBtZ3JwX2l0 ZW0pOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcF9zdy0+bnVtX29mX21jbSA9IDA7Cj4gKyDC oCDCoCDCoCDCoCDCoCDCoCDCoCBwX3N3LT5pc19tY19tZW1iZXIgPSAwOwo+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgcF9pdGVtID0gY2xfcW1hcF9uZXh0KHBfaXRlbSk7Cj4gKyDCoCDCoCDCoCB9 Cj4gKyDCoCDCoCDCoCBjbF9xbWFwX3JlbW92ZV9hbGwocF9tY2FzdF9tZW1iZXJfc3dfdGJsKTsK PiDCoCDCoCDCoCDCoE9TTV9MT0dfRVhJVChzbS0+cF9sb2cpOwo+IC0gwqAgwqAgwqAgcmV0dXJu IGF2Z19ob3BzOwo+IMKgfQo+Cj4gwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+IMKgQ2FsY3VsYXRlIHRoZSBt YXhpbWFsICJtaW4gaG9wcyIgZnJvbSB0aGUgZ2l2ZW4gc3dpdGNoIHRvIGFueQo+IMKgb2YgdGhl IGdyb3VwIEhDQXMKPiDCoCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCj4gLXN0YXRpYyBmbG9hdCBvc21fbWNhc3Rf bWdyX2NvbXB1dGVfbWF4X2hvcHMob3NtX3NtX3QgKiBzbSwgY2xfcWxpc3RfdCAqIGwsCj4gLSDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBjb25zdCBvc21fc3dpdGNoX3QgKiBwX3N3KQo+ICsjaWZkZWYgT1NNX1ZFTkRPUl9JTlRG X0FOQUZBCj4gK3N0YXRpYyBmbG9hdCBvc21fbWNhc3RfbWdyX2NvbXB1dGVfYXZnX2hvcHMob3Nt X3NtX3QgKiBzbSwgY2xfcW1hcF90ICogbSwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGNvbnN0IG9zbV9zd2l0Y2hfdCAq IHRoaXNfc3cpCj4gwqB7Cj4gLSDCoCDCoCDCoCB1aW50MzJfdCBtYXhfaG9wcyA9IDA7Cj4gKyDC oCDCoCDCoCBmbG9hdCBhdmdfaG9wcyA9IDA7Cj4gwqAgwqAgwqAgwqB1aW50MzJfdCBob3BzID0g MDsKPiAtIMKgIMKgIMKgIGNsX2xpc3RfaXRlbV90ICppOwo+IC0gwqAgwqAgwqAgb3NtX21jYXN0 X3dvcmtfb2JqX3QgKndvYmo7Cj4gKyDCoCDCoCDCoCB1aW50MzJfdCBudW1fcG9ydHMgPSAwOwo+ ICsgwqAgwqAgwqAgdWludDE2X3QgbGlkOwo+ICsgwqAgwqAgwqAgdWludDMyX3QgbGVhc3RfaG9w czsKPiArIMKgIMKgIMKgIGNsX21hcF9pdGVtX3QgKmk7Cj4gKyDCoCDCoCDCoCBvc21fc3dpdGNo X3QgKnN3Owo+ICsKPiArIMKgIMKgIMKgIE9TTV9MT0dfRU5URVIoc20tPnBfbG9nKTsKPiArCj4g KyDCoCDCoCDCoCBmb3IgKGkgPSBjbF9xbWFwX2hlYWQobSk7IGkgIT0gY2xfcW1hcF9lbmQobSk7 IGkgPSBjbF9xbWFwX25leHQoaSkpIHsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHN3ID0gY2xf aXRlbV9vYmooaSwgc3csIG1jYXN0X2l0ZW0pOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbGlk ID0gY2xfbnRvaDE2KG9zbV9ub2RlX2dldF9iYXNlX2xpZChzdy0+cF9ub2RlLCAwKSk7Cj4gKyDC oCDCoCDCoCDCoCDCoCDCoCDCoCBsZWFzdF9ob3BzID0gb3NtX3N3aXRjaF9nZXRfbGVhc3RfaG9w cyh0aGlzX3N3LCBsaWQpOwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLyogZm9yIGFsbCBob3N0 IHRoYXQgYXJlIE1DIG1lbWJlcnMgYW5kIGF0dGFjaGVkIHRvIHRoZSBzd2l0Y2gsCj4gKyDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoHdlIHNob3VsZCBhZGQgdGhlIChsZWFzdF9ob3BzICsgMSkg KiBudW1iZXJfb2Zfc3VjaF9ob3N0cy4KPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgSWYg c3dpdGNoIGl0c2VsZiBpcyBpbiB0aGUgTUMsIHdlIHNob3VsZCBhZGQgdGhlIGxlYXN0X2hvcHMg b25seSAqLwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaG9wcyArPSAobGVhc3RfaG9wcyArIDEp ICogc3ctPm51bV9vZl9tY20gKwo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbGVhc3Rf aG9wcyAqIHN3LT5pc19tY19tZW1iZXI7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBudW1fcG9y dHMgKz0gc3ctPm51bV9vZl9tY20gKyBzdy0+aXNfbWNfbWVtYmVyOwo+ICsgwqAgwqAgwqAgfQo+ ICsKPiArIMKgIMKgIMKgIC8qIFdlIHNob3VsZCBiZSBoZXJlIGlmIHRoZXJlIGFyZW4ndCBhbnkg cG9ydHMgaW4gdGhlIGdyb3VwLiAqLwo+ICsgwqAgwqAgwqAgQ0xfQVNTRVJUKG51bV9wb3J0cyk7 Cj4gKwo+ICsgwqAgwqAgwqAgYXZnX2hvcHMgPSAoZmxvYXQpKGhvcHMgLyBudW1fcG9ydHMpOwo+ ICsKPiArIMKgIMKgIMKgIE9TTV9MT0dfRVhJVChzbS0+cF9sb2cpOwo+ICsgwqAgwqAgwqAgcmV0 dXJuIGF2Z19ob3BzOwo+ICt9Cj4gKyNlbHNlCj4gK3N0YXRpYyBmbG9hdCBvc21fbWNhc3RfbWdy X2NvbXB1dGVfbWF4X2hvcHMob3NtX3NtX3QgKiBzbSwgY2xfcW1hcF90ICogbSwKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGNvbnN0IG9zbV9zd2l0Y2hfdCAqIHRoaXNfc3cpCj4gK3sKPiArIMKgIMKgIMKgIHVpbnQzMl90 IG1heF9ob3BzID0gMCwgaG9wczsKPiArIMKgIMKgIMKgIHVpbnQxNl90IGxpZDsKPiArIMKgIMKg IMKgIGNsX21hcF9pdGVtX3QgKmk7Cj4gKyDCoCDCoCDCoCBvc21fc3dpdGNoX3QgKnN3Owo+Cj4g wqAgwqAgwqAgwqBPU01fTE9HX0VOVEVSKHNtLT5wX2xvZyk7Cj4KPiBAQCAtMjA4LDkgKzI3Nywx MSBAQCBzdGF0aWMgZmxvYXQgb3NtX21jYXN0X21ncl9jb21wdXRlX21heF9ob3BzKG9zbV9zbV90 ICogc20sIGNsX3FsaXN0X3QgKiBsLAo+IMKgIMKgIMKgIMKgIMKgIEZvciBlYWNoIG1lbWJlciBv ZiB0aGUgbXVsdGljYXN0IGdyb3VwLCBjb21wdXRlIHRoZQo+IMKgIMKgIMKgIMKgIMKgIG51bWJl ciBvZiBob3BzIHRvIGl0cyBiYXNlIExJRC4KPiDCoCDCoCDCoCDCoCAqLwo+IC0gwqAgwqAgwqAg Zm9yIChpID0gY2xfcWxpc3RfaGVhZChsKTsgaSAhPSBjbF9xbGlzdF9lbmQobCk7IGkgPSBjbF9x bGlzdF9uZXh0KGkpKSB7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCB3b2JqID0gY2xfaXRlbV9v YmooaSwgd29iaiwgbGlzdF9pdGVtKTsKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGhvcHMgPSBv c21fc3dpdGNoX2dldF9wb3J0X2xlYXN0X2hvcHMocF9zdywgd29iai0+cF9wb3J0KTsKPiArIMKg IMKgIMKgIGZvciAoaSA9IGNsX3FtYXBfaGVhZChtKTsgaSAhPSBjbF9xbWFwX2VuZChtKTsgaSA9 IGNsX3FtYXBfbmV4dChpKSkgewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc3cgPSBjbF9pdGVt X29iaihpLCBzdywgbWdycF9pdGVtKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGxpZCA9IGNs X250b2gxNihvc21fbm9kZV9nZXRfYmFzZV9saWQoc3ctPnBfbm9kZSwgMCkpOwo+ICsgwqAgwqAg wqAgwqAgwqAgwqAgwqAgaG9wcyA9IG9zbV9zd2l0Y2hfZ2V0X2xlYXN0X2hvcHModGhpc19zdywg bGlkKTsKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGhvcHMgPSAoaG9wcyArIDEpICogc3ctPm51 bV9vZl9tY20gKyBob3BzICogc3ctPmlzX21jX21lbWJlcjsKPiDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoGlmIChob3BzID4gbWF4X2hvcHMpCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBtYXhfaG9wcyA9IGhvcHM7Cj4gwqAgwqAgwqAgwqB9Cj4gQEAgLTIyMiw2ICsyOTMsNyBA QCBzdGF0aWMgZmxvYXQgb3NtX21jYXN0X21ncl9jb21wdXRlX21heF9ob3BzKG9zbV9zbV90ICog c20sIGNsX3FsaXN0X3QgKiBsLAo+IMKgIMKgIMKgIMKgT1NNX0xPR19FWElUKHNtLT5wX2xvZyk7 Cj4gwqAgwqAgwqAgwqByZXR1cm4gKGZsb2F0KW1heF9ob3BzOwo+IMKgfQo+ICsjZW5kaWYKPgo+ IMKgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKPiDCoCDCoFRoaXMgZnVuY3Rpb24gYXR0ZW1wdHMgdG8gbG9jYXRl IHRoZSBvcHRpbWFsIHN3aXRjaCBmb3IgdGhlCj4gQEAgLTIzMCwzMiArMzAyLDMwIEBAIHN0YXRp YyBmbG9hdCBvc21fbWNhc3RfbWdyX2NvbXB1dGVfbWF4X2hvcHMob3NtX3NtX3QgKiBzbSwgY2xf cWxpc3RfdCAqIGwsCj4gwqAgwqBvZiB0aGUgbXVsdGljYXN0IGdyb3VwLgo+IMKgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KPiDCoHN0YXRpYyBvc21fc3dpdGNoX3QgKm1jYXN0X21ncl9maW5kX29wdGltYWxfc3dp dGNoKG9zbV9zbV90ICogc20sCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNsX3FsaXN0X3QgKmxpc3Qp Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNsX3FsaXN0X3QgKiBsaXN0KQo+IMKgewo+ICsgwqAgwqAg wqAgY2xfcW1hcF90IG1ncnBfc3dfbWFwOwo+IMKgIMKgIMKgIMKgY2xfcW1hcF90ICpwX3N3X3Ri bDsKPiDCoCDCoCDCoCDCoG9zbV9zd2l0Y2hfdCAqcF9zdywgKnBfYmVzdF9zdyA9IE5VTEw7Cj4g wqAgwqAgwqAgwqBmbG9hdCBob3BzID0gMDsKPiDCoCDCoCDCoCDCoGZsb2F0IGJlc3RfaG9wcyA9 IDEwMDAwOyDCoCDCoCDCoCDCoC8qIGFueSBiaWcgIyB3aWxsIGRvICovCj4gLSNpZmRlZiBPU01f VkVORE9SX0lOVEZfQU5BRkEKPiAtIMKgIMKgIMKgIGJvb2xlYW5fdCB1c2VfYXZnX2hvcHMgPSBU UlVFOyDCoC8qIGFuYWZhMiAtIGJ1ZyBoY2Egb24gc3dpdGNoICovLyogdXNlIG1heCBob3BzIGZv ciByb290ICovCj4gLSNlbHNlCj4gLSDCoCDCoCDCoCBib29sZWFuX3QgdXNlX2F2Z19ob3BzID0g RkFMU0U7IC8qIHVzZSBtYXggaG9wcyBmb3Igcm9vdCAqLwo+IC0jZW5kaWYKPgo+IMKgIMKgIMKg IMKgT1NNX0xPR19FTlRFUihzbS0+cF9sb2cpOwo+Cj4gwqAgwqAgwqAgwqBwX3N3X3RibCA9ICZz bS0+cF9zdWJuLT5zd19ndWlkX3RibDsKPgo+ICsgwqAgwqAgwqAgbWNhc3RfbWdyX2J1aWxkX3N3 aXRjaF9tYXAoc20sIGxpc3QsICZtZ3JwX3N3X21hcCk7Cj4gwqAgwqAgwqAgwqBmb3IgKHBfc3cg PSAob3NtX3N3aXRjaF90ICopIGNsX3FtYXBfaGVhZChwX3N3X3RibCk7Cj4gwqAgwqAgwqAgwqAg wqAgwqAgcF9zdyAhPSAob3NtX3N3aXRjaF90ICopIGNsX3FtYXBfZW5kKHBfc3dfdGJsKTsKPiDC oCDCoCDCoCDCoCDCoCDCoCBwX3N3ID0gKG9zbV9zd2l0Y2hfdCAqKSBjbF9xbWFwX25leHQoJnBf c3ctPm1hcF9pdGVtKSkgewo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKCFvc21fc3dpdGNo X3N1cHBvcnRzX21jYXN0KHBfc3cpKQo+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgY29udGludWU7Cj4KPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmICh1c2VfYXZnX2hvcHMp Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBob3BzID0gb3NtX21jYXN0X21n cl9jb21wdXRlX2F2Z19ob3BzKHNtLCBsaXN0LCBwX3N3KTsKPiAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIGVsc2UKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGhvcHMgPSBvc21f bWNhc3RfbWdyX2NvbXB1dGVfbWF4X2hvcHMoc20sIGxpc3QsIHBfc3cpOwo+ICsjaWZkZWYgT1NN X1ZFTkRPUl9JTlRGX0FOQUZBCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBob3BzID0gb3NtX21j YXN0X21ncl9jb21wdXRlX2F2Z19ob3BzKHNtLCAmbWdycF9zd19tYXAsIHBfc3cpOwo+ICsjZWxz ZQo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaG9wcyA9IG9zbV9tY2FzdF9tZ3JfY29tcHV0ZV9t YXhfaG9wcyhzbSwgJm1ncnBfc3dfbWFwLCBwX3N3KTsKPiArI2VuZGlmCj4KPiDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoE9TTV9MT0coc20tPnBfbG9nLCBPU01fTE9HX0RFQlVHLAo+IMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIlN3aXRjaCAweCUwMTYiIFBSSXg2NCAiLCBob3Bz ID0gJWZcbiIsCj4gQEAgLTI3Niw2ICszNDYsNyBAQCBzdGF0aWMgb3NtX3N3aXRjaF90ICptY2Fz dF9tZ3JfZmluZF9vcHRpbWFsX3N3aXRjaChvc21fc21fdCAqIHNtLAo+IMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgT1NNX0xPRyhzbS0+cF9sb2csIE9TTV9MT0dfVkVSQk9TRSwKPiDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCJObyBtdWx0aWNhc3QgY2FwYWJsZSBzd2l0Y2hlcyBk ZXRlY3RlZFxuIik7Cj4KPiArIMKgIMKgIMKgIG1jYXN0X21ncl9kZXN0cm95X3N3aXRjaF9tYXAo c20sICZtZ3JwX3N3X21hcCk7Cj4gwqAgwqAgwqAgwqBPU01fTE9HX0VYSVQoc20tPnBfbG9nKTsK PiDCoCDCoCDCoCDCoHJldHVybiBwX2Jlc3Rfc3c7Cj4gwqB9Cj4gLS0KPiAxLjYuNi4xCj4KPgo= -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html