From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Magenheimer Subject: [PATCH] tmem: two wrongs (or three lefts and a wrong) make a right Date: Mon, 13 Dec 2010 10:45:25 -0800 (PST) Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="__129226595748122935abhmt006" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com, Keir Fraser List-Id: xen-devel@lists.xenproject.org --__129226595748122935abhmt006 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable (Please apply for 4.0.x and xen-unstable.) These two bugs apparently complement each other enough that they escaped problems in my testing, but eventually gum up the works and are obviously horribly wrong. Found while developing tmem for native Linux. Signed-off-by: Dan Magenheimer diff -r 5393151a737b xen/common/tmem.c --- a/xen/common/tmem.c=09Tue Sep 14 18:26:10 2010 +0100 +++ b/xen/common/tmem.c=09Mon Dec 13 11:37:57 2010 -0700 @@ -863,17 +863,17 @@ int oid_compare(OID *left, OID *right) { if ( left->oid[0] =3D=3D right->oid[0] ) return 0; - else if ( left->oid[0] < left->oid[0] ) + else if ( left->oid[0] < right->oid[0] ) return -1; else return 1; } - else if ( left->oid[1] < left->oid[1] ) + else if ( left->oid[1] < right->oid[1] ) return -1; else return 1; } - else if ( left->oid[2] < left->oid[2] ) + else if ( left->oid[2] < right->oid[2] ) return -1; else return 1; @@ -970,7 +970,7 @@ static NOINLINE int obj_rb_insert(struct { this =3D container_of(*new, obj_t, rb_tree_node); parent =3D *new; - switch ( oid_compare(&obj->oid, &this->oid) ) + switch ( oid_compare(&this->oid, &obj->oid) ) { case 0: return 0; --__129226595748122935abhmt006 Content-Type: application/octet-stream; name="tmem-oidbugs.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tmem-oidbugs.patch" ZGlmZiAtciA1MzkzMTUxYTczN2IgeGVuL2NvbW1vbi90bWVtLmMKLS0tIGEveGVuL2NvbW1vbi90 bWVtLmMJVHVlIFNlcCAxNCAxODoyNjoxMCAyMDEwICswMTAwCisrKyBiL3hlbi9jb21tb24vdG1l bS5jCU1vbiBEZWMgMTMgMTE6Mzc6NTcgMjAxMCAtMDcwMApAQCAtODYzLDE3ICs4NjMsMTcgQEAg aW50IG9pZF9jb21wYXJlKE9JRCAqbGVmdCwgT0lEICpyaWdodCkKICAgICAgICAgewogICAgICAg ICAgICAgaWYgKCBsZWZ0LT5vaWRbMF0gPT0gcmlnaHQtPm9pZFswXSApCiAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICBlbHNlIGlmICggbGVmdC0+b2lkWzBdIDwgbGVmdC0+ b2lkWzBdICkKKyAgICAgICAgICAgIGVsc2UgaWYgKCBsZWZ0LT5vaWRbMF0gPCByaWdodC0+b2lk WzBdICkKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICBlbHNlCiAgICAg ICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoIGxlZnQt Pm9pZFsxXSA8IGxlZnQtPm9pZFsxXSApCisgICAgICAgIGVsc2UgaWYgKCBsZWZ0LT5vaWRbMV0g PCByaWdodC0+b2lkWzFdICkKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgZWxzZQog ICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQotICAgIGVsc2UgaWYgKCBsZWZ0LT5vaWRbMl0g PCBsZWZ0LT5vaWRbMl0gKQorICAgIGVsc2UgaWYgKCBsZWZ0LT5vaWRbMl0gPCByaWdodC0+b2lk WzJdICkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIDE7CkBA IC05NzAsNyArOTcwLDcgQEAgc3RhdGljIE5PSU5MSU5FIGludCBvYmpfcmJfaW5zZXJ0KHN0cnVj dAogICAgIHsKICAgICAgICAgdGhpcyA9IGNvbnRhaW5lcl9vZigqbmV3LCBvYmpfdCwgcmJfdHJl ZV9ub2RlKTsKICAgICAgICAgcGFyZW50ID0gKm5ldzsKLSAgICAgICAgc3dpdGNoICggb2lkX2Nv bXBhcmUoJm9iai0+b2lkLCAmdGhpcy0+b2lkKSApCisgICAgICAgIHN3aXRjaCAoIG9pZF9jb21w YXJlKCZ0aGlzLT5vaWQsICZvYmotPm9pZCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBjYXNl IDA6CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cg== --__129226595748122935abhmt006 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --__129226595748122935abhmt006--