Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S266589AbUFWRKv (ORCPT ); Wed, 23 Jun 2004 13:10:51 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S266584AbUFWRKv (ORCPT ); Wed, 23 Jun 2004 13:10:51 -0400 Received: from dh132.citi.umich.edu ([141.211.133.132]:48004 "EHLO lade.trondhjem.org") by vger.kernel.org with ESMTP id S266560AbUFWRHv (ORCPT ); Wed, 23 Jun 2004 13:07:51 -0400 Subject: [PATCH] Make POSIX locks compatible with the NPTL thread model From: Trond Myklebust To: Andrew Morton , linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Content-Type: multipart/mixed; boundary="=-wV/1SSR6uLuGWqrD7Ouw" Message-Id: <1088010468.5806.52.camel@lade.trondhjem.org> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Wed, 23 Jun 2004 13:07:49 -0400 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 25547 Lines: 353 --=-wV/1SSR6uLuGWqrD7Ouw Content-Type: text/plain Content-Transfer-Encoding: 7bit Hi, At some point in 2.5.x we introduced the NPTL thread model at the kernel level, and hence redefined the idea of a process: a process appears currently to be defined as one or more threads with the same tgid... However we failed to completely update the POSIX locking code to reflect that change: currently, the POSIX locking code defines the process to be a set of one or more threads with the same tgid and a shared file table... As a result we end up with abominations like the steal_locks() function that is required in order to move the locks from from one file table to another on exec etc. The following patch simplifies the POSIX locking code: it makes it conform more strictly to the NPTL + Single Unix Spec by removing the Linux-specific shared file table restriction for ordinary threads. It retains the binary interface, though, in order to be able to continue to distinguish remote locks (as created by lockd for instance) from local locks. Cheers, Trond --=-wV/1SSR6uLuGWqrD7Ouw Content-Disposition: inline; filename=linux-2.6.7-02-lock_owner_fixup.dif Content-Transfer-Encoding: base64 Content-Type: text/plain; name=linux-2.6.7-02-lock_owner_fixup.dif; charset=ISO-8859-1 IGZzL2xvY2tzLmMgICAgICAgICAgICAgICB8ICAgNDYgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIGZzL25mcy9kaXJlY3QuYyAgICAgICAgICB8ICAgIDQg KystLQ0KIGZzL25mcy9maWxlLmMgICAgICAgICAgICB8ICAgIDIgKy0NCiBmcy9uZnMvbmZzNHBy b2MuYyAgICAgICAgfCAgIDEyICsrKysrKy0tLS0tLQ0KIGZzL25mcy9uZnM0c3RhdGUuYyAgICAg ICB8ICAgMTggKysrKysrKysrLS0tLS0tLS0tDQogZnMvbmZzL25mczR4ZHIuYyAgICAgICAgIHwg ICAgOCArKysrLS0tLQ0KIGZzL25mcy9yZWFkLmMgICAgICAgICAgICB8ICAgIDQgKystLQ0KIGZz L25mcy93cml0ZS5jICAgICAgICAgICB8ICAgIDQgKystLQ0KIGZzL29wZW4uYyAgICAgICAgICAg ICAgICB8ICAgIDIgKy0NCiBpbmNsdWRlL2xpbnV4L2ZzLmggICAgICAgfCAgICAyICstDQogaW5j bHVkZS9saW51eC9uZnNfZnMuaCAgIHwgICAgOCArKysrLS0tLQ0KIGluY2x1ZGUvbGludXgvbmZz X3BhZ2UuaCB8ICAgIDIgKy0NCiBpbmNsdWRlL2xpbnV4L25mc194ZHIuaCAgfCAgICA0ICsrLS0N CiAxMyBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA3NyBkZWxldGlvbnMoLSkNCg0K ZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1maWxlIC0tc2hvdy1jLWZ1bmN0aW9uIGxpbnV4LTIu Ni43LTAwLWZpeF9sb2Nrcy9mcy9sb2Nrcy5jIGxpbnV4LTIuNi43LTAxLWxvY2tfb3duZXJfZml4 dXAvZnMvbG9ja3MuYw0KLS0tIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9mcy9sb2Nrcy5jCTIw MDQtMDYtMjMgMTI6NDY6MjkuMDAwMDAwMDAwIC0wNDAwDQorKysgbGludXgtMi42LjctMDEtbG9j a19vd25lcl9maXh1cC9mcy9sb2Nrcy5jCTIwMDQtMDYtMjIgMTY6NDg6MTkuMDAwMDAwMDAwIC0w NDAwDQpAQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRpYyBpbnQgZmxvY2tfdG9fcG9zaXhfbG9jayhz dHJ1Y3QgZmkNCiAJaWYgKGwtPmxfbGVuID09IDApDQogCQlmbC0+ZmxfZW5kID0gT0ZGU0VUX01B WDsNCiAJDQotCWZsLT5mbF9vd25lciA9IGN1cnJlbnQtPmZpbGVzOw0KKwlmbC0+Zmxfb3duZXIg PSAwOw0KIAlmbC0+ZmxfcGlkID0gY3VycmVudC0+dGdpZDsNCiAJZmwtPmZsX2ZpbGUgPSBmaWxw Ow0KIAlmbC0+ZmxfZmxhZ3MgPSBGTF9QT1NJWDsNCkBAIC0zNTcsNyArMzU3LDcgQEAgc3RhdGlj IGludCBmbG9jazY0X3RvX3Bvc2l4X2xvY2soc3RydWN0IA0KIAlpZiAobC0+bF9sZW4gPT0gMCkN CiAJCWZsLT5mbF9lbmQgPSBPRkZTRVRfTUFYOw0KIAkNCi0JZmwtPmZsX293bmVyID0gY3VycmVu dC0+ZmlsZXM7DQorCWZsLT5mbF9vd25lciA9IDA7DQogCWZsLT5mbF9waWQgPSBjdXJyZW50LT50 Z2lkOw0KIAlmbC0+ZmxfZmlsZSA9IGZpbHA7DQogCWZsLT5mbF9mbGFncyA9IEZMX1BPU0lYOw0K QEAgLTkyMCw3ICs5MjAsNiBAQCBpbnQgcG9zaXhfbG9ja19maWxlKHN0cnVjdCBmaWxlICpmaWxw LCBzDQogICovDQogaW50IGxvY2tzX21hbmRhdG9yeV9sb2NrZWQoc3RydWN0IGlub2RlICppbm9k ZSkNCiB7DQotCWZsX293bmVyX3Qgb3duZXIgPSBjdXJyZW50LT5maWxlczsNCiAJdW5zaWduZWQg aW50IHBpZCA9IGN1cnJlbnQtPnRnaWQ7DQogCXN0cnVjdCBmaWxlX2xvY2sgKmZsOw0KIA0KQEAg LTkzMSw3ICs5MzAsNyBAQCBpbnQgbG9ja3NfbWFuZGF0b3J5X2xvY2tlZChzdHJ1Y3QgaW5vZGUg DQogCWZvciAoZmwgPSBpbm9kZS0+aV9mbG9jazsgZmwgIT0gTlVMTDsgZmwgPSBmbC0+ZmxfbmV4 dCkgew0KIAkJaWYgKCFJU19QT1NJWChmbCkpDQogCQkJY29udGludWU7DQotCQlpZiAoZmwtPmZs X293bmVyICE9IG93bmVyKQ0KKwkJaWYgKGZsLT5mbF9vd25lciAhPSAwKQ0KIAkJCWJyZWFrOw0K IAkJaWYgKGZsLT5mbF9waWQgIT0gcGlkKQ0KIAkJCWJyZWFrOw0KQEAgLTk2MSw3ICs5NjAsNyBA QCBpbnQgbG9ja3NfbWFuZGF0b3J5X2FyZWEoaW50IHJlYWRfd3JpdGUsDQogCWludCBlcnJvcjsN CiANCiAJbG9ja3NfaW5pdF9sb2NrKCZmbCk7DQotCWZsLmZsX293bmVyID0gY3VycmVudC0+Zmls ZXM7DQorCWZsLmZsX293bmVyID0gMDsNCiAJZmwuZmxfcGlkID0gY3VycmVudC0+dGdpZDsNCiAJ ZmwuZmxfZmlsZSA9IGZpbHA7DQogCWZsLmZsX2ZsYWdzID0gRkxfUE9TSVggfCBGTF9BQ0NFU1M7 DQpAQCAtMTk4NSwxOCArMTk4NCw2IEBAIGludCBsb2NrX21heV93cml0ZShzdHJ1Y3QgaW5vZGUg Kmlub2RlLCANCiANCiBFWFBPUlRfU1lNQk9MKGxvY2tfbWF5X3dyaXRlKTsNCiANCi1zdGF0aWMg aW5saW5lIHZvaWQgX19zdGVhbF9sb2NrcyhzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3duZXJfdCBm cm9tKQ0KLXsNCi0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl Ow0KLQlzdHJ1Y3QgZmlsZV9sb2NrICpmbCA9IGlub2RlLT5pX2Zsb2NrOw0KLQ0KLQl3aGlsZSAo ZmwpIHsNCi0JCWlmIChmbC0+ZmxfZmlsZSA9PSBmaWxlICYmIGZsLT5mbF9vd25lciA9PSBmcm9t KQ0KLQkJCWZsLT5mbF9vd25lciA9IGN1cnJlbnQtPmZpbGVzOw0KLQkJZmwgPSBmbC0+ZmxfbmV4 dDsNCi0JfQ0KLX0NCi0NCiAvKiBXaGVuIGdldHRpbmcgcmVhZHkgZm9yIGV4ZWN1dGluZyBhIGJp bmFyeSwgd2UgbWFrZSBzdXJlIHRoYXQgY3VycmVudA0KICAqIGhhcyBhIGZpbGVzX3N0cnVjdCBv biBpdHMgb3duLiBCZWZvcmUgZHJvcHBpbmcgdGhlIG9sZCBmaWxlc19zdHJ1Y3QsDQogICogd2Ug dGFrZSBvdmVyIG93bmVyc2hpcCBvZiBhbGwgbG9ja3MgZm9yIGFsbCBmaWxlIGRlc2NyaXB0b3Jz IHdlIG93bi4NCkBAIC0yMDA1LDMxICsxOTkyLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fc3Rl YWxfbG9ja3Moc3RydWN0IA0KICAqLw0KIHZvaWQgc3RlYWxfbG9ja3MoZmxfb3duZXJfdCBmcm9t KQ0KIHsNCi0Jc3RydWN0IGZpbGVzX3N0cnVjdCAqZmlsZXMgPSBjdXJyZW50LT5maWxlczsNCi0J aW50IGksIGo7DQotDQotCWlmIChmcm9tID09IGZpbGVzKQ0KLQkJcmV0dXJuOw0KLQ0KLQlsb2Nr X2tlcm5lbCgpOw0KLQlqID0gMDsNCi0JZm9yICg7Oykgew0KLQkJdW5zaWduZWQgbG9uZyBzZXQ7 DQotCQlpID0gaiAqIF9fTkZEQklUUzsNCi0JCWlmIChpID49IGZpbGVzLT5tYXhfZmRzZXQgfHwg aSA+PSBmaWxlcy0+bWF4X2ZkcykNCi0JCQlicmVhazsNCi0JCXNldCA9IGZpbGVzLT5vcGVuX2Zk cy0+ZmRzX2JpdHNbaisrXTsNCi0JCXdoaWxlIChzZXQpIHsNCi0JCQlpZiAoc2V0ICYgMSkgew0K LQkJCQlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGZpbGVzLT5mZFtpXTsNCi0JCQkJaWYgKGZpbGUpDQot CQkJCQlfX3N0ZWFsX2xvY2tzKGZpbGUsIGZyb20pOw0KLQkJCX0NCi0JCQlpKys7DQotCQkJc2V0 ID4+PSAxOw0KLQkJfQ0KLQl9DQotCXVubG9ja19rZXJuZWwoKTsNCiB9DQogRVhQT1JUX1NZTUJP TChzdGVhbF9sb2Nrcyk7DQogDQpkaWZmIC11IC0tcmVjdXJzaXZlIC0tbmV3LWZpbGUgLS1zaG93 LWMtZnVuY3Rpb24gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2ZzL25mcy9kaXJlY3QuYyBsaW51 eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2ZzL25mcy9kaXJlY3QuYw0KLS0tIGxpbnV4LTIu Ni43LTAwLWZpeF9sb2Nrcy9mcy9uZnMvZGlyZWN0LmMJMjAwNC0wNi0xNiAxNDo1ODoyNi4wMDAw MDAwMDAgLTA0MDANCisrKyBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2ZzL25mcy9k aXJlY3QuYwkyMDA0LTA2LTIyIDE2OjQ4OjE5LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTEyOSw3ICsx MjksNyBAQCBuZnNfZGlyZWN0X3JlYWRfc2VnKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCQkuaW5v ZGUJCT0gaW5vZGUsDQogCQkuYXJncwkJPSB7DQogCQkJLmZoCQk9IE5GU19GSChpbm9kZSksDQot CQkJLmxvY2tvd25lcgk9IGN1cnJlbnQtPmZpbGVzLA0KKwkJCS5waWQJCT0gY3VycmVudC0+dGdp ZCwNCiAJCX0sDQogCQkucmVzCQk9IHsNCiAJCQkuZmF0dHIJCT0gJnJkYXRhLmZhdHRyLA0KQEAg LTI1OSw3ICsyNTksNyBAQCBuZnNfZGlyZWN0X3dyaXRlX3NlZyhzdHJ1Y3QgaW5vZGUgKmlub2Rl DQogCQkuaW5vZGUJCT0gaW5vZGUsDQogCQkuYXJncwkJPSB7DQogCQkJLmZoCQk9IE5GU19GSChp bm9kZSksDQotCQkJLmxvY2tvd25lcgk9IGN1cnJlbnQtPmZpbGVzLA0KKwkJCS5waWQJCT0gY3Vy cmVudC0+dGdpZCwNCiAJCX0sDQogCQkucmVzCQk9IHsNCiAJCQkuZmF0dHIJCT0gJndkYXRhLmZh dHRyLA0KZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1maWxlIC0tc2hvdy1jLWZ1bmN0aW9uIGxp bnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9mcy9uZnMvZmlsZS5jIGxpbnV4LTIuNi43LTAxLWxvY2tf b3duZXJfZml4dXAvZnMvbmZzL2ZpbGUuYw0KLS0tIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9m cy9uZnMvZmlsZS5jCTIwMDQtMDYtMTYgMTQ6NTg6MDguMDAwMDAwMDAwIC0wNDAwDQorKysgbGlu dXgtMi42LjctMDEtbG9ja19vd25lcl9maXh1cC9mcy9uZnMvZmlsZS5jCTIwMDQtMDYtMjIgMTY6 NDg6MTkuMDAwMDAwMDAwIC0wNDAwDQpAQCAtMzQwLDcgKzM0MCw3IEBAIG5mc19sb2NrKHN0cnVj dCBmaWxlICpmaWxwLCBpbnQgY21kLCBzdHINCiAJICogTm90IHN1cmUgd2hldGhlciB0aGF0IHdv dWxkIGJlIHVuaXF1ZSwgdGhvdWdoLCBvciB3aGV0aGVyDQogCSAqIHRoYXQgd291bGQgYnJlYWsg aW4gb3RoZXIgcGxhY2VzLg0KIAkgKi8NCi0JaWYgKCFmbC0+Zmxfb3duZXIgfHwgIShmbC0+Zmxf ZmxhZ3MgJiBGTF9QT1NJWCkpDQorCWlmICghKGZsLT5mbF9mbGFncyAmIEZMX1BPU0lYKSkNCiAJ CXJldHVybiAtRU5PTENLOw0KIA0KIAkvKg0KZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1maWxl IC0tc2hvdy1jLWZ1bmN0aW9uIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9mcy9uZnMvbmZzNHBy b2MuYyBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2ZzL25mcy9uZnM0cHJvYy5jDQot LS0gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2ZzL25mcy9uZnM0cHJvYy5jCTIwMDQtMDYtMTYg MTQ6NTg6MTcuMDAwMDAwMDAwIC0wNDAwDQorKysgbGludXgtMi42LjctMDEtbG9ja19vd25lcl9m aXh1cC9mcy9uZnMvbmZzNHByb2MuYwkyMDA0LTA2LTIyIDE2OjQ4OjE5LjAwMDAwMDAwMCAtMDQw MA0KQEAgLTE1MjksNyArMTUyOSw3IEBAIG5mczRfcmVxdWVzdF9pbml0KHN0cnVjdCBuZnNfcGFn ZSAqcmVxLCANCiAJc3RhdGUgPSAoc3RydWN0IG5mczRfc3RhdGUgKilmaWxwLT5wcml2YXRlX2Rh dGE7DQogCXJlcS0+d2Jfc3RhdGUgPSBzdGF0ZTsNCiAJcmVxLT53Yl9jcmVkID0gZ2V0X3JwY2Ny ZWQoc3RhdGUtPm93bmVyLT5zb19jcmVkKTsNCi0JcmVxLT53Yl9sb2Nrb3duZXIgPSBjdXJyZW50 LT5maWxlczsNCisJcmVxLT53Yl9waWQgPSBjdXJyZW50LT50Z2lkOw0KIH0NCiANCiBzdGF0aWMg aW50DQpAQCAtMTY1Myw3ICsxNjUzLDcgQEAgbmZzNF9yZXF1ZXN0X2NvbXBhdGlibGUoc3RydWN0 IG5mc19wYWdlIA0KIAlzdGF0ZSA9IChzdHJ1Y3QgbmZzNF9zdGF0ZSAqKWZpbHAtPnByaXZhdGVf ZGF0YTsNCiAJaWYgKHJlcS0+d2Jfc3RhdGUgIT0gc3RhdGUpDQogCQlyZXR1cm4gMDsNCi0JaWYg KHJlcS0+d2JfbG9ja293bmVyICE9IGN1cnJlbnQtPmZpbGVzKQ0KKwlpZiAocmVxLT53Yl9waWQg IT0gY3VycmVudC0+dGdpZCkNCiAJCXJldHVybiAwOw0KIAljcmVkID0gc3RhdGUtPm93bmVyLT5z b19jcmVkOw0KIAlpZiAocmVxLT53Yl9jcmVkICE9IGNyZWQpDQpAQCAtMTc4MCw3ICsxNzgwLDcg QEAgbmZzNF9wcm9jX2dldGxrKHN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZQ0KIA0KIAlubG8uY2xp ZW50aWQgPSBjbHAtPmNsX2NsaWVudGlkOw0KIAlkb3duKCZzdGF0ZS0+bG9ja19zZW1hKTsNCi0J bHNwID0gbmZzNF9maW5kX2xvY2tfc3RhdGUoc3RhdGUsIHJlcXVlc3QtPmZsX293bmVyKTsNCisJ bHNwID0gbmZzNF9maW5kX2xvY2tfc3RhdGUoc3RhdGUsIHJlcXVlc3QtPmZsX3BpZCk7DQogCWlm IChsc3ApDQogCQlubG8uaWQgPSBsc3AtPmxzX2lkOyANCiAJZWxzZSB7DQpAQCAtMTgzOSw3ICsx ODM5LDcgQEAgbmZzNF9wcm9jX3VubGNrKHN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZQ0KIAlpbnQg c3RhdHVzID0gMDsNCiAJCQkNCiAJZG93bigmc3RhdGUtPmxvY2tfc2VtYSk7DQotCWxzcCA9IG5m czRfZmluZF9sb2NrX3N0YXRlKHN0YXRlLCByZXF1ZXN0LT5mbF9vd25lcik7DQorCWxzcCA9IG5m czRfZmluZF9sb2NrX3N0YXRlKHN0YXRlLCByZXF1ZXN0LT5mbF9waWQpOw0KIAlpZiAoIWxzcCkN CiAJCWdvdG8gb3V0Ow0KIAlsdWFyZ3Muc2VxaWQgPSBsc3AtPmxzX3NlcWlkOw0KQEAgLTE4ODYs NyArMTg4Niw3IEBAIG5mczRfcHJvY19zZXRsayhzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUNCiAJ aW50IHN0YXR1czsNCiANCiAJZG93bigmc3RhdGUtPmxvY2tfc2VtYSk7DQotCWxzcCA9IG5mczRf ZmluZF9sb2NrX3N0YXRlKHN0YXRlLCByZXF1ZXN0LT5mbF9vd25lcik7DQorCWxzcCA9IG5mczRf ZmluZF9sb2NrX3N0YXRlKHN0YXRlLCByZXF1ZXN0LT5mbF9waWQpOw0KIAlpZiAobHNwID09IE5V TEwpIHsNCiAJCXN0cnVjdCBuZnM0X3N0YXRlX293bmVyICpvd25lciA9IHN0YXRlLT5vd25lcjsN CiAJCXN0cnVjdCBuZnNfb3Blbl90b19sb2NrIG90bCA9IHsNCkBAIC0xODk1LDcgKzE4OTUsNyBA QCBuZnM0X3Byb2Nfc2V0bGsoc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlDQogCQkJfSwNCiAJCX07 DQogCQlzdGF0dXMgPSAtRU5PTUVNOw0KLQkJbHNwID0gbmZzNF9hbGxvY19sb2NrX3N0YXRlKHN0 YXRlLCByZXF1ZXN0LT5mbF9vd25lcik7DQorCQlsc3AgPSBuZnM0X2FsbG9jX2xvY2tfc3RhdGUo c3RhdGUsIHJlcXVlc3QtPmZsX3BpZCk7DQogCQlpZiAoIWxzcCkNCiAJCQlnb3RvIG91dDsNCiAJ CW90bC5sb2NrX3NlcWlkID0gbHNwLT5sc19zZXFpZDsNCmRpZmYgLXUgLS1yZWN1cnNpdmUgLS1u ZXctZmlsZSAtLXNob3ctYy1mdW5jdGlvbiBsaW51eC0yLjYuNy0wMC1maXhfbG9ja3MvZnMvbmZz L25mczRzdGF0ZS5jIGxpbnV4LTIuNi43LTAxLWxvY2tfb3duZXJfZml4dXAvZnMvbmZzL25mczRz dGF0ZS5jDQotLS0gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2ZzL25mcy9uZnM0c3RhdGUuYwky MDA0LTA2LTE2IDE0OjU3OjQ0LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxpbnV4LTIuNi43LTAxLWxv Y2tfb3duZXJfZml4dXAvZnMvbmZzL25mczRzdGF0ZS5jCTIwMDQtMDYtMjIgMTY6NDg6MTkuMDAw MDAwMDAwIC0wNDAwDQpAQCAtNDk2LDExICs0OTYsMTEgQEAgbmZzNF9jbG9zZV9zdGF0ZShzdHJ1 Y3QgbmZzNF9zdGF0ZSAqc3RhdA0KICAqIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQt PmZpbGVzDQogICovDQogc3RhdGljIHN0cnVjdCBuZnM0X2xvY2tfc3RhdGUgKg0KLV9fbmZzNF9m aW5kX2xvY2tfc3RhdGUoc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlLCBmbF9vd25lcl90IGZsX293 bmVyKQ0KK19fbmZzNF9maW5kX2xvY2tfc3RhdGUoc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlLCB1 bnNpZ25lZCBpbnQgcGlkKQ0KIHsNCiAJc3RydWN0IG5mczRfbG9ja19zdGF0ZSAqcG9zOw0KIAls aXN0X2Zvcl9lYWNoX2VudHJ5KHBvcywgJnN0YXRlLT5sb2NrX3N0YXRlcywgbHNfbG9ja3MpIHsN Ci0JCWlmIChwb3MtPmxzX293bmVyICE9IGZsX293bmVyKQ0KKwkJaWYgKHBvcy0+bHNfcGlkICE9 IHBpZCkNCiAJCQljb250aW51ZTsNCiAJCWF0b21pY19pbmMoJnBvcy0+bHNfY291bnQpOw0KIAkJ cmV0dXJuIHBvczsNCkBAIC01MDksMTEgKzUwOSwxMSBAQCBfX25mczRfZmluZF9sb2NrX3N0YXRl KHN0cnVjdCBuZnM0X3N0YXRlDQogfQ0KIA0KIHN0cnVjdCBuZnM0X2xvY2tfc3RhdGUgKg0KLW5m czRfZmluZF9sb2NrX3N0YXRlKHN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZSwgZmxfb3duZXJfdCBm bF9vd25lcikNCituZnM0X2ZpbmRfbG9ja19zdGF0ZShzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUs IHVuc2lnbmVkIGludCBwaWQpDQogew0KIAlzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlICpsc3A7DQog CXJlYWRfbG9jaygmc3RhdGUtPnN0YXRlX2xvY2spOw0KLQlsc3AgPSBfX25mczRfZmluZF9sb2Nr X3N0YXRlKHN0YXRlLCBmbF9vd25lcik7DQorCWxzcCA9IF9fbmZzNF9maW5kX2xvY2tfc3RhdGUo c3RhdGUsIHBpZCk7DQogCXJlYWRfdW5sb2NrKCZzdGF0ZS0+c3RhdGVfbG9jayk7DQogCXJldHVy biBsc3A7DQogfQ0KQEAgLTUyNSw3ICs1MjUsNyBAQCBuZnM0X2ZpbmRfbG9ja19zdGF0ZShzdHJ1 Y3QgbmZzNF9zdGF0ZSAqDQogICogVGhlIGNhbGxlciBtdXN0IGJlIGhvbGRpbmcgc3RhdGUtPmxv Y2tfc2VtYQ0KICAqLw0KIHN0cnVjdCBuZnM0X2xvY2tfc3RhdGUgKg0KLW5mczRfYWxsb2NfbG9j a19zdGF0ZShzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUsIGZsX293bmVyX3QgZmxfb3duZXIpDQor bmZzNF9hbGxvY19sb2NrX3N0YXRlKHN0cnVjdCBuZnM0X3N0YXRlICpzdGF0ZSwgdW5zaWduZWQg aW50IHBpZCkNCiB7DQogCXN0cnVjdCBuZnM0X2xvY2tfc3RhdGUgKmxzcDsNCiAJc3RydWN0IG5m czRfY2xpZW50ICpjbHAgPSBzdGF0ZS0+b3duZXItPnNvX2NsaWVudDsNCkBAIC01MzcsNyArNTM3 LDcgQEAgbmZzNF9hbGxvY19sb2NrX3N0YXRlKHN0cnVjdCBuZnM0X3N0YXRlIA0KIAlsc3AtPmxz X2lkID0gLTE7IA0KIAltZW1zZXQobHNwLT5sc19zdGF0ZWlkLmRhdGEsIDAsIHNpemVvZihsc3At PmxzX3N0YXRlaWQuZGF0YSkpOw0KIAlhdG9taWNfc2V0KCZsc3AtPmxzX2NvdW50LCAxKTsNCi0J bHNwLT5sc19vd25lciA9IGZsX293bmVyOw0KKwlsc3AtPmxzX3BpZCA9IHBpZDsNCiAJbHNwLT5s c19wYXJlbnQgPSBzdGF0ZTsNCiAJSU5JVF9MSVNUX0hFQUQoJmxzcC0+bHNfbG9ja3MpOw0KIAlz cGluX2xvY2soJmNscC0+Y2xfbG9jayk7DQpAQCAtNTUxLDEyICs1NTEsMTIgQEAgbmZzNF9hbGxv Y19sb2NrX3N0YXRlKHN0cnVjdCBuZnM0X3N0YXRlIA0KICAqIHJlcXVlc3RzLg0KICAqLw0KIHZv aWQNCi1uZnM0X2NvcHlfc3RhdGVpZChuZnM0X3N0YXRlaWQgKmRzdCwgc3RydWN0IG5mczRfc3Rh dGUgKnN0YXRlLCBmbF9vd25lcl90IGZsX293bmVyKQ0KK25mczRfY29weV9zdGF0ZWlkKG5mczRf c3RhdGVpZCAqZHN0LCBzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUsIHVuc2lnbmVkIGludCBwaWQp DQogew0KIAlpZiAodGVzdF9iaXQoTEtfU1RBVEVfSU5fVVNFLCAmc3RhdGUtPmZsYWdzKSkgew0K IAkJc3RydWN0IG5mczRfbG9ja19zdGF0ZSAqbHNwOw0KIA0KLQkJbHNwID0gbmZzNF9maW5kX2xv Y2tfc3RhdGUoc3RhdGUsIGZsX293bmVyKTsNCisJCWxzcCA9IG5mczRfZmluZF9sb2NrX3N0YXRl KHN0YXRlLCBwaWQpOw0KIAkJaWYgKGxzcCkgew0KIAkJCW1lbWNweShkc3QsICZsc3AtPmxzX3N0 YXRlaWQsIHNpemVvZigqZHN0KSk7DQogCQkJbmZzNF9wdXRfbG9ja19zdGF0ZShsc3ApOw0KQEAg LTYyOCw3ICs2MjgsNyBAQCBuZnM0X25vdGlmeV91bmxjayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz DQogCWZvciAoZmwgPSBpbm9kZS0+aV9mbG9jazsgZmwgIT0gTlVMTDsgZmwgPSBmbC0+ZmxfbmV4 dCkgew0KIAkJaWYgKCEoZmwtPmZsX2ZsYWdzICYgRkxfUE9TSVgpKQ0KIAkJCWNvbnRpbnVlOw0K LQkJaWYgKGZsLT5mbF9vd25lciAhPSBsc3AtPmxzX293bmVyKQ0KKwkJaWYgKGZsLT5mbF9waWQg IT0gbHNwLT5sc19waWQpDQogCQkJY29udGludWU7DQogCQkvKiBFeGl0IGlmIHdlIGZpbmQgYXQg bGVhc3Qgb25lIGxvY2sgd2hpY2ggaXMgbm90IGNvbnN1bWVkICovDQogCQlpZiAobmZzNF9jaGVj a191bmxvY2soZmwscmVxdWVzdCkgPT0gMCkNCmRpZmYgLXUgLS1yZWN1cnNpdmUgLS1uZXctZmls ZSAtLXNob3ctYy1mdW5jdGlvbiBsaW51eC0yLjYuNy0wMC1maXhfbG9ja3MvZnMvbmZzL25mczR4 ZHIuYyBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2ZzL25mcy9uZnM0eGRyLmMNCi0t LSBsaW51eC0yLjYuNy0wMC1maXhfbG9ja3MvZnMvbmZzL25mczR4ZHIuYwkyMDA0LTA2LTE2IDE0 OjU4OjI4LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxpbnV4LTIuNi43LTAxLWxvY2tfb3duZXJfZml4 dXAvZnMvbmZzL25mczR4ZHIuYwkyMDA0LTA2LTIyIDE2OjQ4OjE5LjAwMDAwMDAwMCAtMDQwMA0K QEAgLTg4Nyw3ICs4ODcsNyBAQCBzdGF0aWMgaW50IGVuY29kZV9wdXRyb290Zmgoc3RydWN0IHhk cl9zDQogICAgICAgICByZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIHZvaWQgZW5jb2RlX3N0YXRl aWQoc3RydWN0IHhkcl9zdHJlYW0gKnhkciwgc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlLCBmbF9v d25lcl90IGxvY2tvd25lcikNCitzdGF0aWMgdm9pZCBlbmNvZGVfc3RhdGVpZChzdHJ1Y3QgeGRy X3N0cmVhbSAqeGRyLCBzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUsIHVuc2lnbmVkIGludCBwaWQp DQogew0KIAlleHRlcm4gbmZzNF9zdGF0ZWlkIHplcm9fc3RhdGVpZDsNCiAJbmZzNF9zdGF0ZWlk IHN0YXRlaWQ7DQpAQCAtODk1LDcgKzg5NSw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZV9zdGF0ZWlk KHN0cnVjdCB4ZHJfc3QNCiANCiAJUkVTRVJWRV9TUEFDRSgxNik7DQogCWlmIChzdGF0ZSAhPSBO VUxMKSB7DQotCQluZnM0X2NvcHlfc3RhdGVpZCgmc3RhdGVpZCwgc3RhdGUsIGxvY2tvd25lcik7 DQorCQluZnM0X2NvcHlfc3RhdGVpZCgmc3RhdGVpZCwgc3RhdGUsIHBpZCk7DQogCQlXUklURU1F TShzdGF0ZWlkLmRhdGEsIHNpemVvZihzdGF0ZWlkLmRhdGEpKTsNCiAJfSBlbHNlDQogCQlXUklU RU1FTSh6ZXJvX3N0YXRlaWQuZGF0YSwgc2l6ZW9mKHplcm9fc3RhdGVpZC5kYXRhKSk7DQpAQCAt OTA4LDcgKzkwOCw3IEBAIHN0YXRpYyBpbnQgZW5jb2RlX3JlYWQoc3RydWN0IHhkcl9zdHJlYW0N CiAJUkVTRVJWRV9TUEFDRSg0KTsNCiAJV1JJVEUzMihPUF9SRUFEKTsNCiANCi0JZW5jb2RlX3N0 YXRlaWQoeGRyLCBhcmdzLT5zdGF0ZSwgYXJncy0+bG9ja293bmVyKTsNCisJZW5jb2RlX3N0YXRl aWQoeGRyLCBhcmdzLT5zdGF0ZSwgYXJncy0+cGlkKTsNCiANCiAJUkVTRVJWRV9TUEFDRSgxMik7 DQogCVdSSVRFNjQoYXJncy0+b2Zmc2V0KTsNCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBzdGF0aWMg aW50IGVuY29kZV93cml0ZShzdHJ1Y3QgeGRyX3N0cmVhDQogCVJFU0VSVkVfU1BBQ0UoNCk7DQog CVdSSVRFMzIoT1BfV1JJVEUpOw0KIA0KLQllbmNvZGVfc3RhdGVpZCh4ZHIsIGFyZ3MtPnN0YXRl LCBhcmdzLT5sb2Nrb3duZXIpOw0KKwllbmNvZGVfc3RhdGVpZCh4ZHIsIGFyZ3MtPnN0YXRlLCBh cmdzLT5waWQpOw0KIA0KIAlSRVNFUlZFX1NQQUNFKDE2KTsNCiAJV1JJVEU2NChhcmdzLT5vZmZz ZXQpOw0KZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1maWxlIC0tc2hvdy1jLWZ1bmN0aW9uIGxp bnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9mcy9uZnMvcmVhZC5jIGxpbnV4LTIuNi43LTAxLWxvY2tf b3duZXJfZml4dXAvZnMvbmZzL3JlYWQuYw0KLS0tIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9m cy9uZnMvcmVhZC5jCTIwMDQtMDYtMTYgMTQ6NTc6NDEuMDAwMDAwMDAwIC0wNDAwDQorKysgbGlu dXgtMi42LjctMDEtbG9ja19vd25lcl9maXh1cC9mcy9uZnMvcmVhZC5jCTIwMDQtMDYtMjIgMTY6 NDg6MTkuMDAwMDAwMDAwIC0wNDAwDQpAQCAtMTA4LDcgKzEwOCw3IEBAIG5mc19yZWFkcGFnZV9z eW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHINCiAJcmRhdGEtPmlub2RlID0gaW5vZGU7DQogCUlO SVRfTElTVF9IRUFEKCZyZGF0YS0+cGFnZXMpOw0KIAlyZGF0YS0+YXJncy5maCA9IE5GU19GSChp bm9kZSk7DQotCXJkYXRhLT5hcmdzLmxvY2tvd25lciA9IGN1cnJlbnQtPmZpbGVzOw0KKwlyZGF0 YS0+YXJncy5waWQgPSBjdXJyZW50LT50Z2lkOw0KIAlyZGF0YS0+YXJncy5wYWdlcyA9ICZwYWdl Ow0KIAlyZGF0YS0+YXJncy5wZ2Jhc2UgPSAwVUw7DQogCXJkYXRhLT5hcmdzLmNvdW50ID0gcnNp emU7DQpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyB2b2lkIG5mc19yZWFkX3JwY3NldHVwKHN0 cnVjdCBuZnMNCiAJZGF0YS0+YXJncy5wZ2Jhc2UgPSByZXEtPndiX3BnYmFzZSArIG9mZnNldDsN CiAJZGF0YS0+YXJncy5wYWdlcyAgPSBkYXRhLT5wYWdldmVjOw0KIAlkYXRhLT5hcmdzLmNvdW50 ICA9IGNvdW50Ow0KLQlkYXRhLT5hcmdzLmxvY2tvd25lciA9IHJlcS0+d2JfbG9ja293bmVyOw0K KwlkYXRhLT5hcmdzLnBpZCAgICA9IHJlcS0+d2JfcGlkOw0KIAlkYXRhLT5hcmdzLnN0YXRlICA9 IHJlcS0+d2Jfc3RhdGU7DQogDQogCWRhdGEtPnJlcy5mYXR0ciAgID0gJmRhdGEtPmZhdHRyOw0K ZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1maWxlIC0tc2hvdy1jLWZ1bmN0aW9uIGxpbnV4LTIu Ni43LTAwLWZpeF9sb2Nrcy9mcy9uZnMvd3JpdGUuYyBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVy X2ZpeHVwL2ZzL25mcy93cml0ZS5jDQotLS0gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2ZzL25m cy93cml0ZS5jCTIwMDQtMDYtMTYgMTQ6NTg6MTcuMDAwMDAwMDAwIC0wNDAwDQorKysgbGludXgt Mi42LjctMDEtbG9ja19vd25lcl9maXh1cC9mcy9uZnMvd3JpdGUuYwkyMDA0LTA2LTIyIDE2OjQ4 OjE5LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgaW50IG5mc193 cml0ZXBhZ2Vfc3luYyhzdHJ1Y3QgZmlsDQogCXdkYXRhLT5mbGFncyA9IGhvdzsNCiAJd2RhdGEt Pmlub2RlID0gaW5vZGU7DQogCXdkYXRhLT5hcmdzLmZoID0gTkZTX0ZIKGlub2RlKTsNCi0Jd2Rh dGEtPmFyZ3MubG9ja293bmVyID0gY3VycmVudC0+ZmlsZXM7DQorCXdkYXRhLT5hcmdzLnBpZCA9 IGN1cnJlbnQtPnRnaWQ7DQogCXdkYXRhLT5hcmdzLnBhZ2VzID0gJnBhZ2U7DQogCXdkYXRhLT5h cmdzLnN0YWJsZSA9IE5GU19GSUxFX1NZTkM7DQogCXdkYXRhLT5hcmdzLnBnYmFzZSA9IG9mZnNl dDsNCkBAIC04NjgsNyArODY4LDcgQEAgc3RhdGljIHZvaWQgbmZzX3dyaXRlX3JwY3NldHVwKHN0 cnVjdCBuZg0KIAlkYXRhLT5hcmdzLnBnYmFzZSA9IHJlcS0+d2JfcGdiYXNlICsgb2Zmc2V0Ow0K IAlkYXRhLT5hcmdzLnBhZ2VzICA9IGRhdGEtPnBhZ2V2ZWM7DQogCWRhdGEtPmFyZ3MuY291bnQg ID0gY291bnQ7DQotCWRhdGEtPmFyZ3MubG9ja293bmVyID0gcmVxLT53Yl9sb2Nrb3duZXI7DQor CWRhdGEtPmFyZ3MucGlkICAgID0gcmVxLT53Yl9waWQ7DQogCWRhdGEtPmFyZ3Muc3RhdGUgID0g cmVxLT53Yl9zdGF0ZTsNCiANCiAJZGF0YS0+cmVzLmZhdHRyICAgPSAmZGF0YS0+ZmF0dHI7DQpk aWZmIC11IC0tcmVjdXJzaXZlIC0tbmV3LWZpbGUgLS1zaG93LWMtZnVuY3Rpb24gbGludXgtMi42 LjctMDAtZml4X2xvY2tzL2ZzL29wZW4uYyBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVw L2ZzL29wZW4uYw0KLS0tIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9mcy9vcGVuLmMJMjAwNC0w Ni0xNiAxNDo1Nzo0Ni4wMDAwMDAwMDAgLTA0MDANCisrKyBsaW51eC0yLjYuNy0wMS1sb2NrX293 bmVyX2ZpeHVwL2ZzL29wZW4uYwkyMDA0LTA2LTIyIDE2OjQ4OjE5LjAwMDAwMDAwMCAtMDQwMA0K QEAgLTEwMDcsNyArMTAwNyw3IEBAIGludCBmaWxwX2Nsb3NlKHN0cnVjdCBmaWxlICpmaWxwLCBm bF9vd24NCiAJfQ0KIA0KIAlkbm90aWZ5X2ZsdXNoKGZpbHAsIGlkKTsNCi0JbG9ja3NfcmVtb3Zl X3Bvc2l4KGZpbHAsIGlkKTsNCisJbG9ja3NfcmVtb3ZlX3Bvc2l4KGZpbHAsIDApOw0KIAlmcHV0 KGZpbHApOw0KIAlyZXR1cm4gcmV0dmFsOw0KIH0NCmRpZmYgLXUgLS1yZWN1cnNpdmUgLS1uZXct ZmlsZSAtLXNob3ctYy1mdW5jdGlvbiBsaW51eC0yLjYuNy0wMC1maXhfbG9ja3MvaW5jbHVkZS9s aW51eC9mcy5oIGxpbnV4LTIuNi43LTAxLWxvY2tfb3duZXJfZml4dXAvaW5jbHVkZS9saW51eC9m cy5oDQotLS0gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2luY2x1ZGUvbGludXgvZnMuaAkyMDA0 LTA2LTE2IDE0OjU3OjU0LjAwMDAwMDAwMCAtMDQwMA0KKysrIGxpbnV4LTIuNi43LTAxLWxvY2tf b3duZXJfZml4dXAvaW5jbHVkZS9saW51eC9mcy5oCTIwMDQtMDYtMjIgMTY6NDg6MTkuMDAwMDAw MDAwIC0wNDAwDQpAQCAtNjI1LDcgKzYyNSw3IEBAIHN0cnVjdCBmaWxlX2xvY2sgew0KIAlzdHJ1 Y3QgZmlsZV9sb2NrICpmbF9uZXh0OwkvKiBzaW5nbHkgbGlua2VkIGxpc3QgZm9yIHRoaXMgaW5v ZGUgICovDQogCXN0cnVjdCBsaXN0X2hlYWQgZmxfbGluazsJLyogZG91Ymx5IGxpbmtlZCBsaXN0 IG9mIGFsbCBsb2NrcyAqLw0KIAlzdHJ1Y3QgbGlzdF9oZWFkIGZsX2Jsb2NrOwkvKiBjaXJjdWxh ciBsaXN0IG9mIGJsb2NrZWQgcHJvY2Vzc2VzICovDQotCWZsX293bmVyX3QgZmxfb3duZXI7DQor CWZsX293bmVyX3QgZmxfb3duZXI7CQkvKiAwIGlmIGxvY2sgb3duZWQgYnkgYSBsb2NhbCBwcm9j ZXNzICovDQogCXVuc2lnbmVkIGludCBmbF9waWQ7DQogCXdhaXRfcXVldWVfaGVhZF90IGZsX3dh aXQ7DQogCXN0cnVjdCBmaWxlICpmbF9maWxlOw0KZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1m aWxlIC0tc2hvdy1jLWZ1bmN0aW9uIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9pbmNsdWRlL2xp bnV4L25mc19mcy5oIGxpbnV4LTIuNi43LTAxLWxvY2tfb3duZXJfZml4dXAvaW5jbHVkZS9saW51 eC9uZnNfZnMuaA0KLS0tIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9pbmNsdWRlL2xpbnV4L25m c19mcy5oCTIwMDQtMDYtMTYgMTQ6NTg6MDEuMDAwMDAwMDAwIC0wNDAwDQorKysgbGludXgtMi42 LjctMDEtbG9ja19vd25lcl9maXh1cC9pbmNsdWRlL2xpbnV4L25mc19mcy5oCTIwMDQtMDYtMjIg MTY6NDg6MTkuMDAwMDAwMDAwIC0wNDAwDQpAQCAtNTk1LDcgKzU5NSw3IEBAIHN0cnVjdCBuZnM0 X3N0YXRlX293bmVyIHsNCiANCiBzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlIHsNCiAJc3RydWN0IGxp c3RfaGVhZAlsc19sb2NrczsJLyogT3RoZXIgbG9jayBzdGF0ZWlkcyAqLw0KLQlmbF9vd25lcl90 CQlsc19vd25lcjsJLyogUE9TSVggbG9jayBvd25lciAqLw0KKwl1bnNpZ25lZCBpbnQJCWxzX3Bp ZDsJCS8qIHBpZCBvZiBvd25lciBwcm9jZXNzICovDQogCXN0cnVjdCBuZnM0X3N0YXRlICoJbHNf cGFyZW50OwkvKiBQYXJlbnQgbmZzNF9zdGF0ZSAqLw0KIAl1MzIJCQlsc19zZXFpZDsNCiAJdTMy CQkJbHNfaWQ7DQpAQCAtNjY1LDEzICs2NjUsMTMgQEAgZXh0ZXJuIHN0cnVjdCBuZnM0X3N0YXRl ICpuZnM0X2ZpbmRfc3RhdA0KIGV4dGVybiB2b2lkIG5mczRfaW5jcmVtZW50X3NlcWlkKGludCBz dGF0dXMsIHN0cnVjdCBuZnM0X3N0YXRlX293bmVyICpzcCk7DQogZXh0ZXJuIGludCBuZnM0X2hh bmRsZV9lcnJvcihzdHJ1Y3QgbmZzX3NlcnZlciAqLCBpbnQpOw0KIGV4dGVybiB2b2lkIG5mczRf c2NoZWR1bGVfc3RhdGVfcmVjb3Zlcnkoc3RydWN0IG5mczRfY2xpZW50ICopOw0KLWV4dGVybiBz dHJ1Y3QgbmZzNF9sb2NrX3N0YXRlICpuZnM0X2ZpbmRfbG9ja19zdGF0ZShzdHJ1Y3QgbmZzNF9z dGF0ZSAqc3RhdGUsIGZsX293bmVyX3QpOw0KLWV4dGVybiBzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRl ICpuZnM0X2FsbG9jX2xvY2tfc3RhdGUoc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlLCBmbF9vd25l cl90KTsNCitleHRlcm4gc3RydWN0IG5mczRfbG9ja19zdGF0ZSAqbmZzNF9maW5kX2xvY2tfc3Rh dGUoc3RydWN0IG5mczRfc3RhdGUgKnN0YXRlLCB1bnNpZ25lZCBpbnQgcGlkKTsNCitleHRlcm4g c3RydWN0IG5mczRfbG9ja19zdGF0ZSAqbmZzNF9hbGxvY19sb2NrX3N0YXRlKHN0cnVjdCBuZnM0 X3N0YXRlICpzdGF0ZSwgdW5zaWduZWQgaW50IHBpZCk7DQogZXh0ZXJuIHZvaWQgbmZzNF9wdXRf bG9ja19zdGF0ZShzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlICpzdGF0ZSk7DQogZXh0ZXJuIHZvaWQg bmZzNF9pbmNyZW1lbnRfbG9ja19zZXFpZChpbnQgc3RhdHVzLCBzdHJ1Y3QgbmZzNF9sb2NrX3N0 YXRlICpscyk7DQogZXh0ZXJuIHZvaWQgbmZzNF9ub3RpZnlfc2V0bGsoc3RydWN0IGlub2RlICos IHN0cnVjdCBmaWxlX2xvY2sgKiwgc3RydWN0IG5mczRfbG9ja19zdGF0ZSAqKTsNCiBleHRlcm4g dm9pZCBuZnM0X25vdGlmeV91bmxjayhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGVfbG9jayAq LCBzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlICopOw0KLWV4dGVybiB2b2lkIG5mczRfY29weV9zdGF0 ZWlkKG5mczRfc3RhdGVpZCAqLCBzdHJ1Y3QgbmZzNF9zdGF0ZSAqLCBmbF9vd25lcl90KTsNCitl eHRlcm4gdm9pZCBuZnM0X2NvcHlfc3RhdGVpZChuZnM0X3N0YXRlaWQgKiwgc3RydWN0IG5mczRf c3RhdGUgKiwgdW5zaWduZWQgaW50IHBpZCk7DQogDQogDQogDQpkaWZmIC11IC0tcmVjdXJzaXZl IC0tbmV3LWZpbGUgLS1zaG93LWMtZnVuY3Rpb24gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2lu Y2x1ZGUvbGludXgvbmZzX3BhZ2UuaCBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2lu Y2x1ZGUvbGludXgvbmZzX3BhZ2UuaA0KLS0tIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9pbmNs dWRlL2xpbnV4L25mc19wYWdlLmgJMjAwNC0wNi0xNiAxNDo1Nzo0Ny4wMDAwMDAwMDAgLTA0MDAN CisrKyBsaW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2luY2x1ZGUvbGludXgvbmZzX3Bh Z2UuaAkyMDA0LTA2LTIyIDE2OjQ4OjE5LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTMwLDcgKzMwLDcg QEAgc3RydWN0IG5mc19wYWdlIHsNCiAJc3RydWN0IGxpc3RfaGVhZAl3Yl9saXN0LAkvKiBEZWZp bmVzIHN0YXRlIG9mIHBhZ2U6ICovDQogCQkJCSp3Yl9saXN0X2hlYWQ7CS8qICAgICAgcmVhZC93 cml0ZS9jb21taXQgKi8NCiAJc3RydWN0IGZpbGUJCSp3Yl9maWxlOw0KLQlmbF9vd25lcl90CQl3 Yl9sb2Nrb3duZXI7DQorCXVuc2lnbmVkIGludAkJd2JfcGlkOw0KIAlzdHJ1Y3QgaW5vZGUJCSp3 Yl9pbm9kZTsNCiAJc3RydWN0IHJwY19jcmVkCQkqd2JfY3JlZDsNCiAJc3RydWN0IG5mczRfc3Rh dGUJKndiX3N0YXRlOw0KZGlmZiAtdSAtLXJlY3Vyc2l2ZSAtLW5ldy1maWxlIC0tc2hvdy1jLWZ1 bmN0aW9uIGxpbnV4LTIuNi43LTAwLWZpeF9sb2Nrcy9pbmNsdWRlL2xpbnV4L25mc194ZHIuaCBs aW51eC0yLjYuNy0wMS1sb2NrX293bmVyX2ZpeHVwL2luY2x1ZGUvbGludXgvbmZzX3hkci5oDQot LS0gbGludXgtMi42LjctMDAtZml4X2xvY2tzL2luY2x1ZGUvbGludXgvbmZzX3hkci5oCTIwMDQt MDYtMTYgMTQ6NTg6MTguMDAwMDAwMDAwIC0wNDAwDQorKysgbGludXgtMi42LjctMDEtbG9ja19v d25lcl9maXh1cC9pbmNsdWRlL2xpbnV4L25mc194ZHIuaAkyMDA0LTA2LTIyIDE2OjQ4OjE5LjAw MDAwMDAwMCAtMDQwMA0KQEAgLTIzNSw3ICsyMzUsNyBAQCBzdHJ1Y3QgbmZzX2xvY2tyZXMgew0K IA0KIHN0cnVjdCBuZnNfcmVhZGFyZ3Mgew0KIAlzdHJ1Y3QgbmZzX2ZoICoJCWZoOw0KLQlmbF9v d25lcl90CQlsb2Nrb3duZXI7DQorCXVuc2lnbmVkIGludAkJcGlkOw0KIAlzdHJ1Y3QgbmZzNF9z dGF0ZSAqCXN0YXRlOw0KIAlfX3U2NAkJCW9mZnNldDsNCiAJX191MzIJCQljb3VudDsNCkBAIC0y NTksNyArMjU5LDcgQEAgc3RydWN0IG5mc19yZWFkcmVzIHsNCiANCiBzdHJ1Y3QgbmZzX3dyaXRl YXJncyB7DQogCXN0cnVjdCBuZnNfZmggKgkJZmg7DQotCWZsX293bmVyX3QJCWxvY2tvd25lcjsN CisJdW5zaWduZWQgaW50CQlwaWQ7DQogCXN0cnVjdCBuZnM0X3N0YXRlICoJc3RhdGU7DQogCV9f dTY0CQkJb2Zmc2V0Ow0KIAlfX3UzMgkJCWNvdW50Ow0K --=-wV/1SSR6uLuGWqrD7Ouw-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/