From: "Lever, Charles" Subject: [PATCH] 3/3 - remove rpc_call interface Date: Wed, 31 Mar 2004 08:34:55 -0800 Sender: nfs-admin@lists.sourceforge.net Message-ID: <482A3FA0050D21419C269D13989C61130435DE33@lavender-fe.eng.netapp.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C4173E.196C817A" Cc: Return-path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.11] helo=sc8-sf-mx1.sourceforge.net) by sc8-sf-list2.sourceforge.net with esmtp (Exim 4.30) id 1B8igE-0008CT-5V for nfs@lists.sourceforge.net; Wed, 31 Mar 2004 08:35:06 -0800 Received: from mx01.netapp.com ([198.95.226.53]) by sc8-sf-mx1.sourceforge.net with esmtp (Exim 4.30) id 1B8igD-0006RE-S8 for nfs@lists.sourceforge.net; Wed, 31 Mar 2004 08:35:05 -0800 To: "Trond Myklebust" , "Olaf Kirch" , "Steve Dickson" , "Jeremy McNicoll" , "Patrick Mochel" Errors-To: nfs-admin@lists.sourceforge.net List-Unsubscribe: , List-Id: Discussion of NFS under Linux development, interoperability, and testing. List-Post: List-Help: List-Subscribe: , List-Archive: This is a multi-part message in MIME format. ------_=_NextPart_001_01C4173E.196C817A Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable In order to expose the new RPC metrics facility to all NFS operations, we need to get rid of the rpc_call wrapper in favor of the interfaces (like rpc_call_sync) that expose the rpc_message structure directly to the caller. This patch does that. - Chuck Lever -- corporate: personal: ------_=_NextPart_001_01C4173E.196C817A Content-Type: application/octet-stream; name="08-rpc_call.patch" Content-Transfer-Encoding: base64 Content-Description: 08-rpc_call.patch Content-Disposition: attachment; filename="08-rpc_call.patch" ZGlmZiAtWCAuLi8uLi9kb250LWRpZmYgLU5hdXJwIDA3LW5mcy1pb3N0YXQvZnMvbG9ja2QvbW9u LmMgMDgtcnBjX2NhbGwvZnMvbG9ja2QvbW9uLmMNCi0tLSAwNy1uZnMtaW9zdGF0L2ZzL2xvY2tk L21vbi5jCTIwMDQtMDMtMjYgMTQ6MjI6MDcuNDY4MjQxMDAwIC0wNTAwDQorKysgMDgtcnBjX2Nh bGwvZnMvbG9ja2QvbW9uLmMJMjAwNC0wMy0zMCAxODoyMTozNy4wMjMyNDAwMDAgLTA1MDANCkBA IC0zNSwxMiArMzUsMTcgQEAgbnNtX21vbl91bm1vbihzdHJ1Y3QgbmxtX2hvc3QgKmhvc3QsIHUz Mg0KIAlzdHJ1Y3QgcnBjX2NsbnQJKmNsbnQ7DQogCWludAkJc3RhdHVzOw0KIAlzdHJ1Y3QgbnNt X2FyZ3MJYXJnczsNCisJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCisJCS5ycGNfYXJncAk9 ICZhcmdzLA0KKwkJLnJwY19yZXNwCT0gcmVzLA0KKwl9Ow0KIA0KIAljbG50ID0gbnNtX2NyZWF0 ZSgpOw0KIAlpZiAoSVNfRVJSKGNsbnQpKSB7DQogCQlzdGF0dXMgPSBQVFJfRVJSKGNsbnQpOw0K IAkJZ290byBvdXQ7DQogCX0NCisJbXNnLnJwY19wcm9jID0gJmNsbnQtPmNsX3Byb2NpbmZvW3By b2NdLA0KIA0KIAlhcmdzLmFkZHIgPSBob3N0LT5oX2FkZHIuc2luX2FkZHIuc19hZGRyOw0KIAlh cmdzLnByb3RvPSAoaG9zdC0+aF9wcm90bzw8MSkgfCBob3N0LT5oX3NlcnZlcjsNCkBAIC00OSw3 ICs1NCw3IEBAIG5zbV9tb25fdW5tb24oc3RydWN0IG5sbV9ob3N0ICpob3N0LCB1MzINCiAJYXJn cy5wcm9jID0gTkxNUFJPQ19OU01fTk9USUZZOw0KIAltZW1zZXQocmVzLCAwLCBzaXplb2YoKnJl cykpOw0KIA0KLQlzdGF0dXMgPSBycGNfY2FsbChjbG50LCBwcm9jLCAmYXJncywgcmVzLCAwKTsN CisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhjbG50LCAmbXNnLCAwKTsNCiAJaWYgKHN0YXR1cyA8 IDApDQogCQlwcmludGsoS0VSTl9ERUJVRyAibnNtX21vbl91bm1vbjogcnBjIGZhaWxlZCwgc3Rh dHVzPSVkXG4iLA0KIAkJCXN0YXR1cyk7DQpkaWZmIC1YIC4uLy4uL2RvbnQtZGlmZiAtTmF1cnAg MDctbmZzLWlvc3RhdC9mcy9uZnMvbW91bnRfY2xudC5jIDA4LXJwY19jYWxsL2ZzL25mcy9tb3Vu dF9jbG50LmMNCi0tLSAwNy1uZnMtaW9zdGF0L2ZzL25mcy9tb3VudF9jbG50LmMJMjAwNC0wMy0y NiAxNDoyMjowNy42NjQyNDAwMDAgLTA1MDANCisrKyAwOC1ycGNfY2FsbC9mcy9uZnMvbW91bnRf Y2xudC5jCTIwMDQtMDMtMzAgMTg6MjY6NTQuODc2MjQwMDAwIC0wNTAwDQpAQCAtNDUsMTMgKzQ1 LDE5IEBAIGludA0KIG5mc3Jvb3RfbW91bnQoc3RydWN0IHNvY2thZGRyX2luICphZGRyLCBjaGFy ICpwYXRoLCBzdHJ1Y3QgbmZzX2ZoICpmaCwNCiAJCWludCB2ZXJzaW9uLCBpbnQgcHJvdG9jb2wp DQogew0KKwljaGFyCQkJaG9zdG5hbWVbMzJdOw0KKwl1MzIJCQlwcm9jID0gKHZlcnNpb24gPT0g TkZTX01OVDNfVkVSU0lPTikgPw0KKwkJCQkJCU1PVU5UUFJPQzNfTU5UIDogTU5UUFJPQ19NTlQ7 DQogCXN0cnVjdCBycGNfY2xudAkJKm1udF9jbG50Ow0KIAlzdHJ1Y3QgbW50X2Zoc3RhdHVzCXJl c3VsdCA9IHsNCiAJCS5maAkJPSBmaA0KIAl9Ow0KLQljaGFyCQkJaG9zdG5hbWVbMzJdOw0KKwlz dHJ1Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KKwkJLnJwY19hcmdwCT0gcGF0aCwNCisJCS5ycGNf cmVzcAk9ICZyZXN1bHQsDQorCX07DQogCWludAkJCXN0YXR1czsNCi0JaW50CQkJY2FsbDsNCisN CiANCiAJZHByaW50aygiTkZTOiAgICAgIG5mc19tb3VudCglMDh4OiVzKVxuIiwNCiAJCQkodW5z aWduZWQpbnRvaGwoYWRkci0+c2luX2FkZHIuc19hZGRyKSwgcGF0aCk7DQpAQCAtNjEsOCArNjcs OCBAQCBuZnNyb290X21vdW50KHN0cnVjdCBzb2NrYWRkcl9pbiAqYWRkciwgDQogCWlmIChJU19F UlIobW50X2NsbnQpKQ0KIAkJcmV0dXJuIFBUUl9FUlIobW50X2NsbnQpOw0KIA0KLQljYWxsID0g KHZlcnNpb24gPT0gTkZTX01OVDNfVkVSU0lPTikgPyBNT1VOVFBST0MzX01OVCA6IE1OVFBST0Nf TU5UOw0KLQlzdGF0dXMgPSBycGNfY2FsbChtbnRfY2xudCwgY2FsbCwgcGF0aCwgJnJlc3VsdCwg MCk7DQorCW1zZy5ycGNfcHJvYyA9ICZtbnRfY2xudC0+Y2xfcHJvY2luZm9bcHJvY107DQorCXN0 YXR1cyA9IHJwY19jYWxsX3N5bmMobW50X2NsbnQsICZtc2csIDApOw0KIAlyZXR1cm4gc3RhdHVz IDwgMD8gc3RhdHVzIDogKHJlc3VsdC5zdGF0dXM/IC1FQUNDRVMgOiAwKTsNCiB9DQogDQpkaWZm IC1YIC4uLy4uL2RvbnQtZGlmZiAtTmF1cnAgMDctbmZzLWlvc3RhdC9mcy9uZnMvbmZzMnhkci5j IDA4LXJwY19jYWxsL2ZzL25mcy9uZnMyeGRyLmMNCi0tLSAwNy1uZnMtaW9zdGF0L2ZzL25mcy9u ZnMyeGRyLmMJMjAwNC0wMy0yOSAxNToyMzowMS45NTAyNDIwMDAgLTA1MDANCisrKyAwOC1ycGNf Y2FsbC9mcy9uZnMvbmZzMnhkci5jCTIwMDQtMDMtMjkgMjI6MDc6MzMuMDg4MjU2MDAwIC0wNTAw DQpAQCAtNjYwLDcgKzY2MCw3IEBAIG5mc19zdGF0X3RvX2Vycm5vKGludCBzdGF0KQ0KIAkucF90 aW1lciAgICA9ICB0aW1lciwJCQkJCQlcDQogCS5wX25hbWUgICAgID0gICNwcm9jCQkJCQkJXA0K IAl9DQotc3RydWN0IHJwY19wcm9jaW5mbwluZnNfcHJvY2VkdXJlc1tdID0gew0KK3N0cnVjdCBy cGNfcHJvY2luZm8JbmZzMl9wcm9jZWR1cmVzW10gPSB7DQogICAgIFBST0MoR0VUQVRUUiwJZmhh bmRsZSwJYXR0cnN0YXQsIDEpLA0KICAgICBQUk9DKFNFVEFUVFIsCXNhdHRyYXJncywJYXR0cnN0 YXQsIDApLA0KICAgICBQUk9DKExPT0tVUCwJZGlyb3BhcmdzLAlkaXJvcHJlcywgMiksDQpAQCAt NjgwLDYgKzY4MCw2IEBAIHN0cnVjdCBycGNfcHJvY2luZm8JbmZzX3Byb2NlZHVyZXNbXSA9IHsN CiANCiBzdHJ1Y3QgcnBjX3ZlcnNpb24JCW5mc192ZXJzaW9uMiA9IHsNCiAJLm51bWJlcgkJCT0g MiwNCi0JLm5ycHJvY3MJCT0gc2l6ZW9mKG5mc19wcm9jZWR1cmVzKS9zaXplb2YobmZzX3Byb2Nl ZHVyZXNbMF0pLA0KLQkucHJvY3MJCQk9IG5mc19wcm9jZWR1cmVzDQorCS5ucnByb2NzCQk9IHNp emVvZihuZnMyX3Byb2NlZHVyZXMpL3NpemVvZihuZnMyX3Byb2NlZHVyZXNbMF0pLA0KKwkucHJv Y3MJCQk9IG5mczJfcHJvY2VkdXJlcw0KIH07DQpkaWZmIC1YIC4uLy4uL2RvbnQtZGlmZiAtTmF1 cnAgMDctbmZzLWlvc3RhdC9mcy9uZnMvbmZzM3Byb2MuYyAwOC1ycGNfY2FsbC9mcy9uZnMvbmZz M3Byb2MuYw0KLS0tIDA3LW5mcy1pb3N0YXQvZnMvbmZzL25mczNwcm9jLmMJMjAwNC0wMy0yOSAx ODowMDozMy43OTUyNDAwMDAgLTA1MDANCisrKyAwOC1ycGNfY2FsbC9mcy9uZnMvbmZzM3Byb2Mu YwkyMDA0LTAzLTMwIDA5OjIzOjE3LjAxODI0MDAwMCAtMDUwMA0KQEAgLTIzLDcgKzIzLDcgQEAN CiBleHRlcm4gc3RydWN0IHJwY19wcm9jaW5mbyBuZnMzX3Byb2NlZHVyZXNbXTsNCiANCiAvKiBB IHdyYXBwZXIgdG8gaGFuZGxlIHRoZSBFSlVLRUJPWCBlcnJvciBtZXNzYWdlICovDQotc3RhdGlj IGludA0KK3N0YXRpYyBpbmxpbmUgaW50DQogbmZzM19ycGNfd3JhcHBlcihzdHJ1Y3QgcnBjX2Ns bnQgKmNsbnQsIHN0cnVjdCBycGNfbWVzc2FnZSAqbXNnLCBpbnQgZmxhZ3MpDQogew0KIAlzaWdz ZXRfdCBvbGRzZXQ7DQpAQCAtNDEsMjMgKzQxLDEwIEBAIG5mczNfcnBjX3dyYXBwZXIoc3RydWN0 IHJwY19jbG50ICpjbG50LCANCiAJcmV0dXJuIHJlczsNCiB9DQogDQotc3RhdGljIGlubGluZSBp bnQNCi1uZnMzX3JwY19jYWxsX3dyYXBwZXIoc3RydWN0IHJwY19jbG50ICpjbG50LCB1MzIgcHJv Yywgdm9pZCAqYXJncCwgdm9pZCAqcmVzcCwgaW50IGZsYWdzKQ0KLXsNCi0Jc3RydWN0IHJwY19t ZXNzYWdlIG1zZyA9IHsNCi0JCS5ycGNfcHJvYwk9ICZuZnMzX3Byb2NlZHVyZXNbcHJvY10sDQot CQkucnBjX2FyZ3AJPSBhcmdwLA0KLQkJLnJwY19yZXNwCT0gcmVzcCwNCi0JfTsNCi0JcmV0dXJu IG5mczNfcnBjX3dyYXBwZXIoY2xudCwgJm1zZywgZmxhZ3MpOw0KLX0NCi0NCi0jZGVmaW5lIHJw Y19jYWxsKGNsbnQsIHByb2MsIGFyZ3AsIHJlc3AsIGZsYWdzKSBcDQotCQluZnMzX3JwY19jYWxs X3dyYXBwZXIoY2xudCwgcHJvYywgYXJncCwgcmVzcCwgZmxhZ3MpDQogI2RlZmluZSBycGNfY2Fs bF9zeW5jKGNsbnQsIG1zZywgZmxhZ3MpIFwNCiAJCW5mczNfcnBjX3dyYXBwZXIoY2xudCwgbXNn LCBmbGFncykNCiANCi1zdGF0aWMgaW50DQorc3RhdGljIGlubGluZSBpbnQNCiBuZnMzX2FzeW5j X2hhbmRsZV9qdWtlYm94KHN0cnVjdCBycGNfdGFzayAqdGFzaykNCiB7DQogCWlmICh0YXNrLT50 a19zdGF0dXMgIT0gLUVKVUtFQk9YKQ0KQEAgLTY4LDcgKzU1LDcgQEAgbmZzM19hc3luY19oYW5k bGVfanVrZWJveChzdHJ1Y3QgcnBjX3Rhcw0KIAlyZXR1cm4gMTsNCiB9DQogDQotc3RhdGljIHN0 cnVjdCBycGNfY3JlZCAqDQorc3RhdGljIGlubGluZSBzdHJ1Y3QgcnBjX2NyZWQgKg0KIG5mc19j cmVkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQ0KIHsNCiAJc3RydWN0 IHJwY19jcmVkICpjcmVkID0gTlVMTDsNCkBAIC04NywxNCArNzQsMjEgQEAgc3RhdGljIGludA0K IG5mczNfcHJvY19nZXRfcm9vdChzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyLCBzdHJ1Y3QgbmZz X2ZoICpmaGFuZGxlLA0KIAkJICAgc3RydWN0IG5mc19mc2luZm8gKmluZm8pDQogew0KKwlzdHJ1 Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KKwkJLnJwY19wcm9jCT0gJm5mczNfcHJvY2VkdXJlc1tO RlMzUFJPQ19GU0lORk9dLA0KKwkJLnJwY19hcmdwCT0gZmhhbmRsZSwNCisJCS5ycGNfcmVzcAk9 IGluZm8sDQorCX07DQogCWludAlzdGF0dXM7DQogDQogCWRwcmludGsoIiVzOiBjYWxsICBmc2lu Zm9cbiIsIF9fRlVOQ1RJT05fXyk7DQogCWluZm8tPmZhdHRyLT52YWxpZCA9IDA7DQotCXN0YXR1 cyA9IHJwY19jYWxsKHNlcnZlci0+Y2xpZW50X3N5cywgTkZTM1BST0NfRlNJTkZPLCBmaGFuZGxl LCBpbmZvLCAwKTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhzZXJ2ZXItPmNsaWVudF9zeXMs ICZtc2csIDApOw0KIAlkcHJpbnRrKCIlczogcmVwbHkgZnNpbmZvICVkXG4iLCBfX0ZVTkNUSU9O X18sIHN0YXR1cyk7DQogCWlmICghKGluZm8tPmZhdHRyLT52YWxpZCAmIE5GU19BVFRSX0ZBVFRS KSkgew0KLQkJc3RhdHVzID0gcnBjX2NhbGwoc2VydmVyLT5jbGllbnRfc3lzLCBORlMzUFJPQ19H RVRBVFRSLCBmaGFuZGxlLCBpbmZvLT5mYXR0ciwgMCk7DQorCQltc2cucnBjX3Byb2MgPSAmbmZz M19wcm9jZWR1cmVzW05GUzNQUk9DX0dFVEFUVFJdOw0KKwkJbXNnLnJwY19yZXNwID0gaW5mby0+ ZmF0dHI7DQorCQlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKHNlcnZlci0+Y2xpZW50X3N5cywgJm1z ZywgMCk7DQogCQlkcHJpbnRrKCIlczogcmVwbHkgZ2V0YXR0ciAlZFxuIiwgX19GVU5DVElPTl9f LCBzdGF0dXMpOw0KIAl9DQogCXJldHVybiBzdGF0dXM7DQpAQCAtMTA2LDEyICsxMDAsMTcgQEAg bmZzM19wcm9jX2dldF9yb290KHN0cnVjdCBuZnNfc2VydmVyICpzZQ0KIHN0YXRpYyBpbnQNCiBu ZnMzX3Byb2NfZ2V0YXR0cihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgbmZzX2ZhdHRyICpm YXR0cikNCiB7DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAm bmZzM19wcm9jZWR1cmVzW05GUzNQUk9DX0dFVEFUVFJdLA0KKwkJLnJwY19hcmdwCT0gTkZTX0ZI KGlub2RlKSwNCisJCS5ycGNfcmVzcAk9IGZhdHRyLA0KKwkJLnJwY190YWxwCT0gTkZTX1NFUlZF Uihpbm9kZSktPnRhbGx5LA0KKwl9Ow0KIAlpbnQJc3RhdHVzOw0KIA0KIAlkcHJpbnRrKCJORlMg Y2FsbCAgZ2V0YXR0clxuIik7DQogCWZhdHRyLT52YWxpZCA9IDA7DQotCXN0YXR1cyA9IHJwY19j YWxsKE5GU19DTElFTlQoaW5vZGUpLCBORlMzUFJPQ19HRVRBVFRSLA0KLQkJCSAgTkZTX0ZIKGlu b2RlKSwgZmF0dHIsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoaW5v ZGUpLCAmbXNnLCAwKTsNCiAJZHByaW50aygiTkZTIHJlcGx5IGdldGF0dHJcbiIpOw0KIAlyZXR1 cm4gc3RhdHVzOw0KIH0NCkBAIC0xMjUsMTEgKzEyNCwxNyBAQCBuZnMzX3Byb2Nfc2V0YXR0cihz dHJ1Y3QgZGVudHJ5ICpkZW50cnksDQogCQkuZmgJCT0gTkZTX0ZIKGlub2RlKSwNCiAJCS5zYXR0 cgkJPSBzYXR0ciwNCiAJfTsNCisJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCisJCS5ycGNf cHJvYwk9ICZuZnMzX3Byb2NlZHVyZXNbTkZTM1BST0NfU0VUQVRUUl0sDQorCQkucnBjX2FyZ3AJ PSAmYXJnLA0KKwkJLnJwY19yZXNwCT0gZmF0dHIsDQorCQkucnBjX3RhbHAJPSBORlNfU0VSVkVS KGlub2RlKS0+dGFsbHksDQorCX07DQogCWludAlzdGF0dXM7DQogDQogCWRwcmludGsoIk5GUyBj YWxsICBzZXRhdHRyXG4iKTsNCiAJZmF0dHItPnZhbGlkID0gMDsNCi0Jc3RhdHVzID0gcnBjX2Nh bGwoTkZTX0NMSUVOVChpbm9kZSksIE5GUzNQUk9DX1NFVEFUVFIsICZhcmcsIGZhdHRyLCAwKTsN CisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhORlNfQ0xJRU5UKGlub2RlKSwgJm1zZywgMCk7DQog CWRwcmludGsoIk5GUyByZXBseSBzZXRhdHRyXG4iKTsNCiAJcmV0dXJuIHN0YXR1czsNCiB9DQpA QCAtMTQ5LDE1ICsxNTQsMjQgQEAgbmZzM19wcm9jX2xvb2t1cChzdHJ1Y3QgaW5vZGUgKmRpciwg c3RydQ0KIAkJLmZoCQk9IGZoYW5kbGUsDQogCQkuZmF0dHIJCT0gZmF0dHINCiAJfTsNCisJc3Ry dWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCisJCS5ycGNfcHJvYwk9ICZuZnMzX3Byb2NlZHVyZXNb TkZTM1BST0NfTE9PS1VQXSwNCisJCS5ycGNfYXJncAk9ICZhcmcsDQorCQkucnBjX3Jlc3AJPSAm cmVzLA0KKwkJLnJwY190YWxwCT0gTkZTX1NFUlZFUihkaXIpLT50YWxseSwNCisJfTsNCiAJaW50 CQkJc3RhdHVzOw0KIA0KIAlkcHJpbnRrKCJORlMgY2FsbCAgbG9va3VwICVzXG4iLCBuYW1lLT5u YW1lKTsNCiAJZGlyX2F0dHIudmFsaWQgPSAwOw0KIAlmYXR0ci0+dmFsaWQgPSAwOw0KLQlzdGF0 dXMgPSBycGNfY2FsbChORlNfQ0xJRU5UKGRpciksIE5GUzNQUk9DX0xPT0tVUCwgJmFyZywgJnJl cywgMCk7DQotCWlmIChzdGF0dXMgPj0gMCAmJiAhKGZhdHRyLT52YWxpZCAmIE5GU19BVFRSX0ZB VFRSKSkNCi0JCXN0YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoZGlyKSwgTkZTM1BST0NfR0VU QVRUUiwNCi0JCQkgZmhhbmRsZSwgZmF0dHIsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5j KE5GU19DTElFTlQoZGlyKSwgJm1zZywgMCk7DQorCWlmIChzdGF0dXMgPj0gMCAmJiAhKGZhdHRy LT52YWxpZCAmIE5GU19BVFRSX0ZBVFRSKSkgew0KKwkJbXNnLnJwY19wcm9jID0gJm5mczNfcHJv Y2VkdXJlc1tORlMzUFJPQ19HRVRBVFRSXTsNCisJCW1zZy5ycGNfYXJncCA9IGZoYW5kbGU7DQor CQltc2cucnBjX3Jlc3AgPSBmYXR0cjsNCisJCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoTkZTX0NM SUVOVChkaXIpLCAmbXNnLCAwKTsNCisJfQ0KIAlkcHJpbnRrKCJORlMgcmVwbHkgbG9va3VwOiAl ZFxuIiwgc3RhdHVzKTsNCiAJaWYgKHN0YXR1cyA+PSAwKQ0KIAkJc3RhdHVzID0gbmZzX3JlZnJl c2hfaW5vZGUoZGlyLCAmZGlyX2F0dHIpOw0KQEAgLTE3NCw3ICsxODgsNyBAQCBuZnMzX3Byb2Nf YWNjZXNzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0DQogCXN0cnVjdCBuZnMzX2FjY2Vzc3Jlcwly ZXMgPSB7DQogCQkuZmF0dHIJCT0gJmZhdHRyLA0KIAl9Ow0KLQlzdHJ1Y3QgcnBjX21lc3NhZ2Ug bXNnID0gew0KKwlzdHJ1Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KIAkJLnJwY19wcm9jCT0gJm5m czNfcHJvY2VkdXJlc1tORlMzUFJPQ19BQ0NFU1NdLA0KIAkJLnJwY19hcmdwCT0gJmFyZywNCiAJ CS5ycGNfcmVzcAk9ICZyZXMsDQpAQCAtMjE3LDEyICsyMzEsMTcgQEAgbmZzM19wcm9jX3JlYWRs aW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIA0KIAkJLmNvdW50CQk9IFBBR0VfQ0FDSEVfU0laRSwN CiAJCS5wYWdlcwkJPSAmcGFnZQ0KIAl9Ow0KKwlzdHJ1Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0K KwkJLnJwY19wcm9jCT0gJm5mczNfcHJvY2VkdXJlc1tORlMzUFJPQ19SRUFETElOS10sDQorCQku cnBjX2FyZ3AJPSAmYXJncywNCisJCS5ycGNfcmVzcAk9ICZmYXR0ciwNCisJCS5ycGNfdGFscAk9 IE5GU19TRVJWRVIoaW5vZGUpLT50YWxseSwNCisJfTsNCiAJaW50CQkJc3RhdHVzOw0KIA0KIAlk cHJpbnRrKCJORlMgY2FsbCAgcmVhZGxpbmtcbiIpOw0KIAlmYXR0ci52YWxpZCA9IDA7DQotCXN0 YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoaW5vZGUpLCBORlMzUFJPQ19SRUFETElOSywNCi0J CQkgICZhcmdzLCAmZmF0dHIsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElF TlQoaW5vZGUpLCAmbXNnLCAwKTsNCiAJbmZzX3JlZnJlc2hfaW5vZGUoaW5vZGUsICZmYXR0cik7 DQogCWRwcmludGsoIk5GUyByZXBseSByZWFkbGluazogJWRcbiIsIHN0YXR1cyk7DQogCXJldHVy biBzdGF0dXM7DQpAQCAtMzI0LDYgKzM0MywxMiBAQCBuZnMzX3Byb2NfY3JlYXRlKHN0cnVjdCBp bm9kZSAqZGlyLCBzdHJ1DQogCQkuZmgJCT0gJmZoYW5kbGUsDQogCQkuZmF0dHIJCT0gJmZhdHRy DQogCX07DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAmbmZz M19wcm9jZWR1cmVzW05GUzNQUk9DX0NSRUFURV0sDQorCQkucnBjX2FyZ3AJPSAmYXJnLA0KKwkJ LnJwY19yZXNwCT0gJnJlcywNCisJCS5ycGNfdGFscAk9IE5GU19TRVJWRVIoZGlyKS0+dGFsbHks DQorCX07DQogCWludAkJCXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIGNyZWF0ZSAl c1xuIiwgbmFtZS0+bmFtZSk7DQpAQCAtMzM3LDcgKzM2Miw3IEBAIG5mczNfcHJvY19jcmVhdGUo c3RydWN0IGlub2RlICpkaXIsIHN0cnUNCiBhZ2FpbjoNCiAJZGlyX2F0dHIudmFsaWQgPSAwOw0K IAlmYXR0ci52YWxpZCA9IDA7DQotCXN0YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoZGlyKSwg TkZTM1BST0NfQ1JFQVRFLCAmYXJnLCAmcmVzLCAwKTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3lu YyhORlNfQ0xJRU5UKGRpciksICZtc2csIDApOw0KIAluZnNfcmVmcmVzaF9pbm9kZShkaXIsICZk aXJfYXR0cik7DQogDQogCS8qIElmIHRoZSBzZXJ2ZXIgZG9lc24ndCBzdXBwb3J0IHRoZSBleGNs dXNpdmUgY3JlYXRpb24gc2VtYW50aWNzLA0KQEAgLTM4Miw4ICs0MDcsMTAgQEAgZXhpdDoNCiAJ CSAqIG5vdCBzdXJlIHRoaXMgYnV5cyB1cyBhbnl0aGluZyAoYW5kIEknZCBoYXZlDQogCQkgKiB0 byByZXZhbXAgdGhlIE5GU3YzIFhEUiBjb2RlKSAqLw0KIAkJZmF0dHIudmFsaWQgPSAwOw0KLQkJ c3RhdHVzID0gcnBjX2NhbGwoTkZTX0NMSUVOVChkaXIpLCBORlMzUFJPQ19TRVRBVFRSLA0KLQkJ CQkJCSZhcmcsICZmYXR0ciwgMCk7DQorCQltc2cucnBjX3Byb2MgPSAmbmZzM19wcm9jZWR1cmVz W05GUzNQUk9DX1NFVEFUVFJdOw0KKwkJbXNnLnJwY19hcmdwID0gJmFyZzsNCisJCW1zZy5ycGNf cmVzcCA9ICZmYXR0cjsNCisJCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoTkZTX0NMSUVOVChkaXIp LCAmbXNnLCAwKTsNCiAJCWRwcmludGsoIk5GUyByZXBseSBzZXRhdHRyIChwb3N0LWNyZWF0ZSk6 ICVkXG4iLCBzdGF0dXMpOw0KIAl9DQogCWlmIChzdGF0dXMgPT0gMCkgew0KQEAgLTQ3NiwxMiAr NTAzLDE4IEBAIG5mczNfcHJvY19yZW5hbWUoc3RydWN0IGlub2RlICpvbGRfZGlyLCANCiAJCS5m cm9tYXR0cgk9ICZvbGRfZGlyX2F0dHIsDQogCQkudG9hdHRyCQk9ICZuZXdfZGlyX2F0dHINCiAJ fTsNCisJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCisJCS5ycGNfcHJvYwk9ICZuZnMzX3By b2NlZHVyZXNbTkZTM1BST0NfUkVOQU1FXSwNCisJCS5ycGNfYXJncAk9ICZhcmcsDQorCQkucnBj X3Jlc3AJPSAmcmVzLA0KKwkJLnJwY190YWxwCT0gTkZTX1NFUlZFUihvbGRfZGlyKS0+dGFsbHks DQorCX07DQogCWludAkJCXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIHJlbmFtZSAl cyAtPiAlc1xuIiwgb2xkX25hbWUtPm5hbWUsIG5ld19uYW1lLT5uYW1lKTsNCiAJb2xkX2Rpcl9h dHRyLnZhbGlkID0gMDsNCiAJbmV3X2Rpcl9hdHRyLnZhbGlkID0gMDsNCi0Jc3RhdHVzID0gcnBj X2NhbGwoTkZTX0NMSUVOVChvbGRfZGlyKSwgTkZTM1BST0NfUkVOQU1FLCAmYXJnLCAmcmVzLCAw KTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhORlNfQ0xJRU5UKG9sZF9kaXIpLCAmbXNnLCAw KTsNCiAJbmZzX3JlZnJlc2hfaW5vZGUob2xkX2RpciwgJm9sZF9kaXJfYXR0cik7DQogCW5mc19y ZWZyZXNoX2lub2RlKG5ld19kaXIsICZuZXdfZGlyX2F0dHIpOw0KIAlkcHJpbnRrKCJORlMgcmVw bHkgcmVuYW1lOiAlZFxuIiwgc3RhdHVzKTsNCkBAIC01MDIsMTIgKzUzNSwxOCBAQCBuZnMzX3By b2NfbGluayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1DQogCQkuZGlyX2F0dHIJPSAmZGlyX2F0 dHIsDQogCQkuZmF0dHIJCT0gJmZhdHRyDQogCX07DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cg PSB7DQorCQkucnBjX3Byb2MJPSAmbmZzM19wcm9jZWR1cmVzW05GUzNQUk9DX0xJTktdLA0KKwkJ LnJwY19hcmdwCT0gJmFyZywNCisJCS5ycGNfcmVzcAk9ICZyZXMsDQorCQkucnBjX3RhbHAJPSBO RlNfU0VSVkVSKGlub2RlKS0+dGFsbHksDQorCX07DQogCWludAkJCXN0YXR1czsNCiANCiAJZHBy aW50aygiTkZTIGNhbGwgIGxpbmsgJXNcbiIsIG5hbWUtPm5hbWUpOw0KIAlkaXJfYXR0ci52YWxp ZCA9IDA7DQogCWZhdHRyLnZhbGlkID0gMDsNCi0Jc3RhdHVzID0gcnBjX2NhbGwoTkZTX0NMSUVO VChpbm9kZSksIE5GUzNQUk9DX0xJTkssICZhcmcsICZyZXMsIDApOw0KKwlzdGF0dXMgPSBycGNf Y2FsbF9zeW5jKE5GU19DTElFTlQoaW5vZGUpLCAmbXNnLCAwKTsNCiAJbmZzX3JlZnJlc2hfaW5v ZGUoZGlyLCAmZGlyX2F0dHIpOw0KIAluZnNfcmVmcmVzaF9pbm9kZShpbm9kZSwgJmZhdHRyKTsN CiAJZHByaW50aygiTkZTIHJlcGx5IGxpbms6ICVkXG4iLCBzdGF0dXMpOw0KQEAgLTUzMywxMiAr NTcyLDE4IEBAIG5mczNfcHJvY19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHINCiAJCS5m aAkJPSBmaGFuZGxlLA0KIAkJLmZhdHRyCQk9IGZhdHRyDQogCX07DQorCXN0cnVjdCBycGNfbWVz c2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAmbmZzM19wcm9jZWR1cmVzW05GUzNQUk9DX1NZ TUxJTktdLA0KKwkJLnJwY19hcmdwCT0gJmFyZywNCisJCS5ycGNfcmVzcAk9ICZyZXMsDQorCQku cnBjX3RhbHAJPSBORlNfU0VSVkVSKGRpciktPnRhbGx5LA0KKwl9Ow0KIAlpbnQJCQlzdGF0dXM7 DQogDQogCWRwcmludGsoIk5GUyBjYWxsICBzeW1saW5rICVzIC0+ICVzXG4iLCBuYW1lLT5uYW1l LCBwYXRoLT5uYW1lKTsNCiAJZGlyX2F0dHIudmFsaWQgPSAwOw0KIAlmYXR0ci0+dmFsaWQgPSAw Ow0KLQlzdGF0dXMgPSBycGNfY2FsbChORlNfQ0xJRU5UKGRpciksIE5GUzNQUk9DX1NZTUxJTkss ICZhcmcsICZyZXMsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoZGly KSwgJm1zZywgMCk7DQogCW5mc19yZWZyZXNoX2lub2RlKGRpciwgJmRpcl9hdHRyKTsNCiAJZHBy aW50aygiTkZTIHJlcGx5IHN5bWxpbms6ICVkXG4iLCBzdGF0dXMpOw0KIAlyZXR1cm4gc3RhdHVz Ow0KQEAgLTU2MCwxMiArNjA1LDE4IEBAIG5mczNfcHJvY19ta2RpcihzdHJ1Y3QgaW5vZGUgKmRp ciwgc3RydWMNCiAJCS5maAkJPSBmaGFuZGxlLA0KIAkJLmZhdHRyCQk9IGZhdHRyDQogCX07DQor CXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAmbmZzM19wcm9jZWR1 cmVzW05GUzNQUk9DX01LRElSXSwNCisJCS5ycGNfYXJncAk9ICZhcmcsDQorCQkucnBjX3Jlc3AJ PSAmcmVzLA0KKwkJLnJwY190YWxwCT0gTkZTX1NFUlZFUihkaXIpLT50YWxseSwNCisJfTsNCiAJ aW50CQkJc3RhdHVzOw0KIA0KIAlkcHJpbnRrKCJORlMgY2FsbCAgbWtkaXIgJXNcbiIsIG5hbWUt Pm5hbWUpOw0KIAlkaXJfYXR0ci52YWxpZCA9IDA7DQogCWZhdHRyLT52YWxpZCA9IDA7DQotCXN0 YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoZGlyKSwgTkZTM1BST0NfTUtESVIsICZhcmcsICZy ZXMsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoZGlyKSwgJm1zZywg MCk7DQogCW5mc19yZWZyZXNoX2lub2RlKGRpciwgJmRpcl9hdHRyKTsNCiAJZHByaW50aygiTkZT IHJlcGx5IG1rZGlyOiAlZFxuIiwgc3RhdHVzKTsNCiAJcmV0dXJuIHN0YXR1czsNCkBAIC01ODAs MTEgKzYzMSwxNyBAQCBuZnMzX3Byb2Nfcm1kaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjDQog CQkubmFtZQkJPSBuYW1lLT5uYW1lLA0KIAkJLmxlbgkJPSBuYW1lLT5sZW4NCiAJfTsNCisJc3Ry dWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCisJCS5ycGNfcHJvYwk9ICZuZnMzX3Byb2NlZHVyZXNb TkZTM1BST0NfUk1ESVJdLA0KKwkJLnJwY19hcmdwCT0gJmFyZywNCisJCS5ycGNfcmVzcAk9ICZk aXJfYXR0ciwNCisJCS5ycGNfdGFscAk9IE5GU19TRVJWRVIoZGlyKS0+dGFsbHksDQorCX07DQog CWludAkJCXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIHJtZGlyICVzXG4iLCBuYW1l LT5uYW1lKTsNCiAJZGlyX2F0dHIudmFsaWQgPSAwOw0KLQlzdGF0dXMgPSBycGNfY2FsbChORlNf Q0xJRU5UKGRpciksIE5GUzNQUk9DX1JNRElSLCAmYXJnLCAmZGlyX2F0dHIsIDApOw0KKwlzdGF0 dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoZGlyKSwgJm1zZywgMCk7DQogCW5mc19yZWZy ZXNoX2lub2RlKGRpciwgJmRpcl9hdHRyKTsNCiAJZHByaW50aygiTkZTIHJlcGx5IHJtZGlyOiAl ZFxuIiwgc3RhdHVzKTsNCiAJcmV0dXJuIHN0YXR1czsNCkBAIC02NjEsNiArNzE4LDEyIEBAIG5m czNfcHJvY19ta25vZChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWMNCiAJCS5maAkJPSBmaCwNCiAJ CS5mYXR0cgkJPSBmYXR0cg0KIAl9Ow0KKwlzdHJ1Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KKwkJ LnJwY19wcm9jCT0gJm5mczNfcHJvY2VkdXJlc1tORlMzUFJPQ19NS05PRF0sDQorCQkucnBjX2Fy Z3AJPSAmYXJnLA0KKwkJLnJwY19yZXNwCT0gJnJlcywNCisJCS5ycGNfdGFscAk9IE5GU19TRVJW RVIoZGlyKS0+dGFsbHksDQorCX07DQogCWludAkJCXN0YXR1czsNCiANCiAJc3dpdGNoIChzYXR0 ci0+aWFfbW9kZSAmIFNfSUZNVCkgew0KQEAgLTY3NSw3ICs3MzgsNyBAQCBuZnMzX3Byb2NfbWtu b2Qoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjDQogCQkJTUFKT1IocmRldiksIE1JTk9SKHJkZXYp KTsNCiAJZGlyX2F0dHIudmFsaWQgPSAwOw0KIAlmYXR0ci0+dmFsaWQgPSAwOw0KLQlzdGF0dXMg PSBycGNfY2FsbChORlNfQ0xJRU5UKGRpciksIE5GUzNQUk9DX01LTk9ELCAmYXJnLCAmcmVzLCAw KTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhORlNfQ0xJRU5UKGRpciksICZtc2csIDApOw0K IAluZnNfcmVmcmVzaF9pbm9kZShkaXIsICZkaXJfYXR0cik7DQogCWRwcmludGsoIk5GUyByZXBs eSBta25vZDogJWRcbiIsIHN0YXR1cyk7DQogCXJldHVybiBzdGF0dXM7DQpAQCAtNjg1LDExICs3 NDgsMTcgQEAgc3RhdGljIGludA0KIG5mczNfcHJvY19zdGF0ZnMoc3RydWN0IG5mc19zZXJ2ZXIg KnNlcnZlciwgc3RydWN0IG5mc19maCAqZmhhbmRsZSwNCiAJCSBzdHJ1Y3QgbmZzX2Zzc3RhdCAq c3RhdCkNCiB7DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAm bmZzM19wcm9jZWR1cmVzW05GUzNQUk9DX0ZTU1RBVF0sDQorCQkucnBjX2FyZ3AJPSBmaGFuZGxl LA0KKwkJLnJwY19yZXNwCT0gc3RhdCwNCisJCS5ycGNfdGFscAk9IHNlcnZlci0+dGFsbHksDQor CX07DQogCWludAlzdGF0dXM7DQogDQogCWRwcmludGsoIk5GUyBjYWxsICBmc3N0YXRcbiIpOw0K IAlzdGF0LT5mYXR0ci0+dmFsaWQgPSAwOw0KLQlzdGF0dXMgPSBycGNfY2FsbChzZXJ2ZXItPmNs aWVudCwgTkZTM1BST0NfRlNTVEFULCBmaGFuZGxlLCBzdGF0LCAwKTsNCisJc3RhdHVzID0gcnBj X2NhbGxfc3luYyhzZXJ2ZXItPmNsaWVudCwgJm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBs eSBzdGF0ZnM6ICVkXG4iLCBzdGF0dXMpOw0KIAlyZXR1cm4gc3RhdHVzOw0KIH0NCkBAIC02OTgs MTEgKzc2NywxNyBAQCBzdGF0aWMgaW50DQogbmZzM19wcm9jX2ZzaW5mbyhzdHJ1Y3QgbmZzX3Nl cnZlciAqc2VydmVyLCBzdHJ1Y3QgbmZzX2ZoICpmaGFuZGxlLA0KIAkJIHN0cnVjdCBuZnNfZnNp bmZvICppbmZvKQ0KIHsNCisJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCisJCS5ycGNfcHJv Ywk9ICZuZnMzX3Byb2NlZHVyZXNbTkZTM1BST0NfRlNJTkZPXSwNCisJCS5ycGNfYXJncAk9IGZo YW5kbGUsDQorCQkucnBjX3Jlc3AJPSBpbmZvLA0KKwkJLnJwY190YWxwCT0gc2VydmVyLT50YWxs eSwNCisJfTsNCiAJaW50CXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIGZzaW5mb1xu Iik7DQogCWluZm8tPmZhdHRyLT52YWxpZCA9IDA7DQotCXN0YXR1cyA9IHJwY19jYWxsKHNlcnZl ci0+Y2xpZW50X3N5cywgTkZTM1BST0NfRlNJTkZPLCBmaGFuZGxlLCBpbmZvLCAwKTsNCisJc3Rh dHVzID0gcnBjX2NhbGxfc3luYyhzZXJ2ZXItPmNsaWVudF9zeXMsICZtc2csIDApOw0KIAlkcHJp bnRrKCJORlMgcmVwbHkgZnNpbmZvOiAlZFxuIiwgc3RhdHVzKTsNCiAJcmV0dXJuIHN0YXR1czsN CiB9DQpAQCAtNzExLDExICs3ODYsMTcgQEAgc3RhdGljIGludA0KIG5mczNfcHJvY19wYXRoY29u ZihzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyLCBzdHJ1Y3QgbmZzX2ZoICpmaGFuZGxlLA0KIAkJ ICAgc3RydWN0IG5mc19wYXRoY29uZiAqaW5mbykNCiB7DQorCXN0cnVjdCBycGNfbWVzc2FnZQlt c2cgPSB7DQorCQkucnBjX3Byb2MJPSAmbmZzM19wcm9jZWR1cmVzW05GUzNQUk9DX1BBVEhDT05G XSwNCisJCS5ycGNfYXJncAk9IGZoYW5kbGUsDQorCQkucnBjX3Jlc3AJPSBpbmZvLA0KKwkJLnJw Y190YWxwCT0gc2VydmVyLT50YWxseSwNCisJfTsNCiAJaW50CXN0YXR1czsNCiANCiAJZHByaW50 aygiTkZTIGNhbGwgIHBhdGhjb25mXG4iKTsNCiAJaW5mby0+ZmF0dHItPnZhbGlkID0gMDsNCi0J c3RhdHVzID0gcnBjX2NhbGwoc2VydmVyLT5jbGllbnQsIE5GUzNQUk9DX1BBVEhDT05GLCBmaGFu ZGxlLCBpbmZvLCAwKTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhzZXJ2ZXItPmNsaWVudCwg Jm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBseSBwYXRoY29uZjogJWRcbiIsIHN0YXR1cyk7 DQogCXJldHVybiBzdGF0dXM7DQogfQ0KZGlmZiAtWCAuLi8uLi9kb250LWRpZmYgLU5hdXJwIDA3 LW5mcy1pb3N0YXQvZnMvbmZzL3Byb2MuYyAwOC1ycGNfY2FsbC9mcy9uZnMvcHJvYy5jDQotLS0g MDctbmZzLWlvc3RhdC9mcy9uZnMvcHJvYy5jCTIwMDQtMDMtMjkgMTg6MDA6NTkuNTk2MjQwMDAw IC0wNTAwDQorKysgMDgtcnBjX2NhbGwvZnMvbmZzL3Byb2MuYwkyMDA0LTAzLTMwIDA5OjIxOjQx LjA2NjI0MjAwMCAtMDUwMA0KQEAgLTQ3LDcgKzQ3LDcgQEANCiANCiAjZGVmaW5lIE5GU0RCR19G QUNJTElUWQkJTkZTREJHX1BST0MNCiANCi1leHRlcm4gc3RydWN0IHJwY19wcm9jaW5mbyBuZnNf cHJvY2VkdXJlc1tdOw0KK2V4dGVybiBzdHJ1Y3QgcnBjX3Byb2NpbmZvIG5mczJfcHJvY2VkdXJl c1tdOw0KIA0KIHN0YXRpYyBzdHJ1Y3QgcnBjX2NyZWQgKg0KIG5mc19jcmVkKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQ0KQEAgLTcxLDE4ICs3MSwyNyBAQCBuZnNfcHJv Y19nZXRfcm9vdChzdHJ1Y3QgbmZzX3NlcnZlciAqc2VyDQogCXN0cnVjdCBuZnNfZmF0dHIgKmZh dHRyID0gaW5mby0+ZmF0dHI7DQogCXN0cnVjdCBuZnMyX2Zzc3RhdCBmc2luZm87DQogCWludCBz dGF0dXM7DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX2FyZ3AJPSBmaGFu ZGxlLA0KKwl9Ow0KIA0KIAlkcHJpbnRrKCIlczogY2FsbCBnZXRhdHRyXG4iLCBfX0ZVTkNUSU9O X18pOw0KIAlmYXR0ci0+dmFsaWQgPSAwOw0KLQlzdGF0dXMgPSBycGNfY2FsbChzZXJ2ZXItPmNs aWVudF9zeXMsIE5GU1BST0NfR0VUQVRUUiwgZmhhbmRsZSwgZmF0dHIsIDApOw0KKwltc2cucnBj X3Byb2MgPSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfR0VUQVRUUl07DQorCW1zZy5ycGNfcmVz cCA9IGZhdHRyOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKHNlcnZlci0+Y2xpZW50X3N5cywg Jm1zZywgMCk7DQogCWRwcmludGsoIiVzOiByZXBseSBnZXRhdHRyICVkXG4iLCBfX0ZVTkNUSU9O X18sIHN0YXR1cyk7DQogCWlmIChzdGF0dXMpDQogCQlyZXR1cm4gc3RhdHVzOw0KKw0KIAlkcHJp bnRrKCIlczogY2FsbCBzdGF0ZnNcbiIsIF9fRlVOQ1RJT05fXyk7DQotCXN0YXR1cyA9IHJwY19j YWxsKHNlcnZlci0+Y2xpZW50X3N5cywgTkZTUFJPQ19TVEFURlMsIGZoYW5kbGUsICZmc2luZm8s IDApOw0KKwltc2cucnBjX3Byb2MgPSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfU1RBVEZTXTsN CisJbXNnLnJwY19yZXNwID0gJmZzaW5mbzsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhzZXJ2 ZXItPmNsaWVudF9zeXMsICZtc2csIDApOw0KIAlkcHJpbnRrKCIlczogcmVwbHkgc3RhdGZzICVk XG4iLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7DQogCWlmIChzdGF0dXMpDQogCQlyZXR1cm4gc3Rh dHVzOw0KKw0KIAlpbmZvLT5ydG1heCAgPSBORlNfTUFYREFUQTsNCiAJaW5mby0+cnRwcmVmID0g ZnNpbmZvLnRzaXplOw0KIAlpbmZvLT5ydG11bHQgPSBmc2luZm8uYnNpemU7DQpAQCAtMTAyLDEx ICsxMTEsMTYgQEAgc3RhdGljIGludA0KIG5mc19wcm9jX2dldGF0dHIoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IG5mc19mYXR0ciAqZmF0dHIpDQogew0KIAlpbnQJc3RhdHVzOw0KKwlzdHJ1 Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KKwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tO RlNQUk9DX0dFVEFUVFJdLA0KKwkJLnJwY19hcmdwCT0gTkZTX0ZIKGlub2RlKSwNCisJCS5ycGNf cmVzcAk9IGZhdHRyLA0KKwkJLnJwY190YWxwCT0gTkZTX1NFUlZFUihpbm9kZSktPnRhbGx5LA0K Kwl9Ow0KIA0KIAlkcHJpbnRrKCJORlMgY2FsbCAgZ2V0YXR0clxuIik7DQogCWZhdHRyLT52YWxp ZCA9IDA7DQotCXN0YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoaW5vZGUpLCBORlNQUk9DX0dF VEFUVFIsDQotCQkJCU5GU19GSChpbm9kZSksIGZhdHRyLCAwKTsNCisJc3RhdHVzID0gcnBjX2Nh bGxfc3luYyhORlNfQ0xJRU5UKGlub2RlKSwgJm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBs eSBnZXRhdHRyXG4iKTsNCiAJcmV0dXJuIHN0YXR1czsNCiB9DQpAQCAtMTIwLDExICsxMzQsMTcg QEAgbmZzX3Byb2Nfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIA0KIAkJLmZoCT0gTkZT X0ZIKGlub2RlKSwNCiAJCS5zYXR0cgk9IHNhdHRyDQogCX07DQorCXN0cnVjdCBycGNfbWVzc2Fn ZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfU0VUQVRU Ul0sDQorCQkucnBjX2FyZ3AJPSAmYXJnLA0KKwkJLnJwY19yZXNwCT0gZmF0dHIsDQorCQkucnBj X3RhbHAJPSBORlNfU0VSVkVSKGlub2RlKS0+dGFsbHksDQorCX07DQogCWludAlzdGF0dXM7DQog DQogCWRwcmludGsoIk5GUyBjYWxsICBzZXRhdHRyXG4iKTsNCiAJZmF0dHItPnZhbGlkID0gMDsN Ci0Jc3RhdHVzID0gcnBjX2NhbGwoTkZTX0NMSUVOVChpbm9kZSksIE5GU1BST0NfU0VUQVRUUiwg JmFyZywgZmF0dHIsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoaW5v ZGUpLCAmbXNnLCAwKTsNCiAJZHByaW50aygiTkZTIHJlcGx5IHNldGF0dHJcbiIpOw0KIAlyZXR1 cm4gc3RhdHVzOw0KIH0NCkBAIC0xNDIsMTEgKzE2MiwxNyBAQCBuZnNfcHJvY19sb29rdXAoc3Ry dWN0IGlub2RlICpkaXIsIHN0cnVjDQogCQkuZmgJCT0gZmhhbmRsZSwNCiAJCS5mYXR0cgkJPSBm YXR0cg0KIAl9Ow0KKwlzdHJ1Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KKwkJLnJwY19wcm9jCT0g Jm5mczJfcHJvY2VkdXJlc1tORlNQUk9DX0xPT0tVUF0sDQorCQkucnBjX2FyZ3AJPSAmYXJnLA0K KwkJLnJwY19yZXNwCT0gJnJlcywNCisJCS5ycGNfdGFscAk9IE5GU19TRVJWRVIoZGlyKS0+dGFs bHksDQorCX07DQogCWludAkJCXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIGxvb2t1 cCAlc1xuIiwgbmFtZS0+bmFtZSk7DQogCWZhdHRyLT52YWxpZCA9IDA7DQotCXN0YXR1cyA9IHJw Y19jYWxsKE5GU19DTElFTlQoZGlyKSwgTkZTUFJPQ19MT09LVVAsICZhcmcsICZyZXMsIDApOw0K KwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoZGlyKSwgJm1zZywgMCk7DQogCWRw cmludGsoIk5GUyByZXBseSBsb29rdXA6ICVkXG4iLCBzdGF0dXMpOw0KIAlyZXR1cm4gc3RhdHVz Ow0KIH0NCkBAIC0xNTksMTAgKzE4NSwxNSBAQCBuZnNfcHJvY19yZWFkbGluayhzdHJ1Y3QgaW5v ZGUgKmlub2RlLCBzDQogCQkuY291bnQJCT0gUEFHRV9DQUNIRV9TSVpFLA0KIAkJLnBhZ2VzCQk9 ICZwYWdlDQogCX07DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJ PSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfUkVBRExJTktdLA0KKwkJLnJwY19hcmdwCT0gJmFy Z3MsDQorCQkucnBjX3RhbHAJPSBORlNfU0VSVkVSKGlub2RlKS0+dGFsbHksDQorCX07DQogCWlu dAkJCXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIHJlYWRsaW5rXG4iKTsNCi0Jc3Rh dHVzID0gcnBjX2NhbGwoTkZTX0NMSUVOVChpbm9kZSksIE5GU1BST0NfUkVBRExJTkssICZhcmdz LCBOVUxMLCAwKTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhORlNfQ0xJRU5UKGlub2RlKSwg Jm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBseSByZWFkbGluazogJWRcbiIsIHN0YXR1cyk7 DQogCXJldHVybiBzdGF0dXM7DQogfQ0KQEAgLTE3NCw3ICsyMDUsNyBAQCBuZnNfcHJvY19yZWFk KHN0cnVjdCBuZnNfcmVhZF9kYXRhICpyZGF0DQogCXN0cnVjdCBpbm9kZSAqCQlpbm9kZSA9IHJk YXRhLT5pbm9kZTsNCiAJc3RydWN0IG5mc19mYXR0ciAqCWZhdHRyID0gcmRhdGEtPnJlcy5mYXR0 cjsNCiAJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsNCi0JCS5ycGNfcHJvYwk9ICZuZnNfcHJv Y2VkdXJlc1tORlNQUk9DX1JFQURdLA0KKwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tO RlNQUk9DX1JFQURdLA0KIAkJLnJwY19hcmdwCT0gJnJkYXRhLT5hcmdzLA0KIAkJLnJwY19yZXNw CT0gJnJkYXRhLT5yZXMsDQogCQkucnBjX3RhbHAJPSBORlNfU0VSVkVSKGlub2RlKS0+dGFsbHks DQpAQCAtMjA2LDcgKzIzNyw3IEBAIG5mc19wcm9jX3dyaXRlKHN0cnVjdCBuZnNfd3JpdGVfZGF0 YSAqd2QNCiAJc3RydWN0IGlub2RlICoJCWlub2RlID0gd2RhdGEtPmlub2RlOw0KIAlzdHJ1Y3Qg bmZzX2ZhdHRyICoJZmF0dHIgPSB3ZGF0YS0+cmVzLmZhdHRyOw0KIAlzdHJ1Y3QgcnBjX21lc3Nh Z2UJbXNnID0gew0KLQkJLnJwY19wcm9jCT0gJm5mc19wcm9jZWR1cmVzW05GU1BST0NfV1JJVEVd LA0KKwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tORlNQUk9DX1dSSVRFXSwNCiAJCS5y cGNfYXJncAk9ICZ3ZGF0YS0+YXJncywNCiAJCS5ycGNfcmVzcAk9ICZ3ZGF0YS0+cmVzLA0KIAkJ LnJwY190YWxwCT0gTkZTX1NFUlZFUihpbm9kZSktPnRhbGx5LA0KQEAgLTI0MywxMSArMjc0LDE3 IEBAIG5mc19wcm9jX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWMNCiAJCS5maAkJPSAm ZmhhbmRsZSwNCiAJCS5mYXR0cgkJPSAmZmF0dHINCiAJfTsNCisJc3RydWN0IHJwY19tZXNzYWdl CW1zZyA9IHsNCisJCS5ycGNfcHJvYwk9ICZuZnMyX3Byb2NlZHVyZXNbTkZTUFJPQ19DUkVBVEVd LA0KKwkJLnJwY19hcmdwCT0gJmFyZywNCisJCS5ycGNfcmVzcAk9ICZyZXMsDQorCQkucnBjX3Rh bHAJPSBORlNfU0VSVkVSKGRpciktPnRhbGx5LA0KKwl9Ow0KIAlpbnQJCQlzdGF0dXM7DQogDQog CWZhdHRyLnZhbGlkID0gMDsNCiAJZHByaW50aygiTkZTIGNhbGwgIGNyZWF0ZSAlc1xuIiwgbmFt ZS0+bmFtZSk7DQotCXN0YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoZGlyKSwgTkZTUFJPQ19D UkVBVEUsICZhcmcsICZyZXMsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElF TlQoZGlyKSwgJm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBseSBjcmVhdGU6ICVkXG4iLCBz dGF0dXMpOw0KIAlpZiAoc3RhdHVzID09IDApIHsNCiAJCXN0cnVjdCBpbm9kZSAqaW5vZGU7DQpA QCAtMjc2LDYgKzMxMywxMiBAQCBuZnNfcHJvY19ta25vZChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0DQogCQkuZmgJCT0gZmhhbmRsZSwNCiAJCS5mYXR0cgkJPSBmYXR0cg0KIAl9Ow0KKwlzdHJ1 Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KKwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tO RlNQUk9DX0NSRUFURV0sDQorCQkucnBjX2FyZ3AJPSAmYXJnLA0KKwkJLnJwY19yZXNwCT0gJnJl cywNCisJCS5ycGNfdGFscAk9IE5GU19TRVJWRVIoZGlyKS0+dGFsbHksDQorCX07DQogCWludAkJ CXN0YXR1cywgbW9kZTsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIG1rbm9kICVzXG4iLCBuYW1l LT5uYW1lKTsNCkBAIC0yOTAsMTIgKzMzMywxMiBAQCBuZnNfcHJvY19ta25vZChzdHJ1Y3QgaW5v ZGUgKmRpciwgc3RydWN0DQogCX0NCiANCiAJZmF0dHItPnZhbGlkID0gMDsNCi0Jc3RhdHVzID0g cnBjX2NhbGwoTkZTX0NMSUVOVChkaXIpLCBORlNQUk9DX0NSRUFURSwgJmFyZywgJnJlcywgMCk7 DQorCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoTkZTX0NMSUVOVChkaXIpLCAmbXNnLCAwKTsNCiAN CiAJaWYgKHN0YXR1cyA9PSAtRUlOVkFMICYmIFNfSVNGSUZPKG1vZGUpKSB7DQogCQlzYXR0ci0+ aWFfbW9kZSA9IG1vZGU7DQogCQlmYXR0ci0+dmFsaWQgPSAwOw0KLQkJc3RhdHVzID0gcnBjX2Nh bGwoTkZTX0NMSUVOVChkaXIpLCBORlNQUk9DX0NSRUFURSwgJmFyZywgJnJlcywgMCk7DQorCQlz dGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQoZGlyKSwgJm1zZywgMCk7DQogCX0NCiAJ ZHByaW50aygiTkZTIHJlcGx5IG1rbm9kOiAlZFxuIiwgc3RhdHVzKTsNCiAJcmV0dXJuIHN0YXR1 czsNCkBAIC0zMTAsMTAgKzM1Myw4IEBAIG5mc19wcm9jX3JlbW92ZShzdHJ1Y3QgaW5vZGUgKmRp ciwgc3RydWMNCiAJCS5sZW4JCT0gbmFtZS0+bGVuDQogCX07DQogCXN0cnVjdCBycGNfbWVzc2Fn ZQltc2cgPSB7IA0KLQkJLnJwY19wcm9jCT0gJm5mc19wcm9jZWR1cmVzW05GU1BST0NfUkVNT1ZF XSwNCisJCS5ycGNfcHJvYwk9ICZuZnMyX3Byb2NlZHVyZXNbTkZTUFJPQ19SRU1PVkVdLA0KIAkJ LnJwY19hcmdwCT0gJmFyZywNCi0JCS5ycGNfcmVzcAk9IE5VTEwsDQotCQkucnBjX2NyZWQJPSBO VUxMLA0KIAkJLnJwY190YWxwCT0gTkZTX1NFUlZFUihkaXIpLT50YWxseSwNCiAJfTsNCiAJaW50 CQkJc3RhdHVzOw0KQEAgLTMzNiw3ICszNzcsNyBAQCBuZnNfcHJvY191bmxpbmtfc2V0dXAoc3Ry dWN0IHJwY19tZXNzYWdlDQogCWFyZy0+ZmggPSBORlNfRkgoZGlyLT5kX2lub2RlKTsNCiAJYXJn LT5uYW1lID0gbmFtZS0+bmFtZTsNCiAJYXJnLT5sZW4gPSBuYW1lLT5sZW47DQotCW1zZy0+cnBj X3Byb2MgPSAmbmZzX3Byb2NlZHVyZXNbTkZTUFJPQ19SRU1PVkVdOw0KKwltc2ctPnJwY19wcm9j ID0gJm5mczJfcHJvY2VkdXJlc1tORlNQUk9DX1JFTU9WRV07DQogCW1zZy0+cnBjX2FyZ3AgPSBh cmc7DQogCW1zZy0+cnBjX3RhbHAgPSBORlNfU0VSVkVSKGRpci0+ZF9pbm9kZSktPnRhbGx5Ow0K IAlyZXR1cm4gMDsNCkBAIC0zNjQsMTAgKzQwNSwxNSBAQCBuZnNfcHJvY19yZW5hbWUoc3RydWN0 IGlub2RlICpvbGRfZGlyLCBzDQogCQkudG9uYW1lCQk9IG5ld19uYW1lLT5uYW1lLA0KIAkJLnRv bGVuCQk9IG5ld19uYW1lLT5sZW4NCiAJfTsNCisJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsg DQorCQkucnBjX3Byb2MJPSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfUkVOQU1FXSwNCisJCS5y cGNfYXJncAk9ICZhcmcsDQorCQkucnBjX3RhbHAJPSBORlNfU0VSVkVSKG9sZF9kaXIpLT50YWxs eSwNCisJfTsNCiAJaW50CQkJc3RhdHVzOw0KIA0KIAlkcHJpbnRrKCJORlMgY2FsbCAgcmVuYW1l ICVzIC0+ICVzXG4iLCBvbGRfbmFtZS0+bmFtZSwgbmV3X25hbWUtPm5hbWUpOw0KLQlzdGF0dXMg PSBycGNfY2FsbChORlNfQ0xJRU5UKG9sZF9kaXIpLCBORlNQUk9DX1JFTkFNRSwgJmFyZywgTlVM TCwgMCk7DQorCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoTkZTX0NMSUVOVChvbGRfZGlyKSwgJm1z ZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBseSByZW5hbWU6ICVkXG4iLCBzdGF0dXMpOw0KIAly ZXR1cm4gc3RhdHVzOw0KIH0NCkBAIC0zODEsMTAgKzQyNywxNSBAQCBuZnNfcHJvY19saW5rKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjDQogCQkudG9uYW1lCQk9IG5hbWUtPm5hbWUsDQogCQku dG9sZW4JCT0gbmFtZS0+bGVuDQogCX07DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7IA0K KwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tORlNQUk9DX0xJTktdLA0KKwkJLnJwY19h cmdwCT0gJmFyZywNCisJCS5ycGNfdGFscAk9IE5GU19TRVJWRVIoZGlyKS0+dGFsbHksDQorCX07 DQogCWludAkJCXN0YXR1czsNCiANCiAJZHByaW50aygiTkZTIGNhbGwgIGxpbmsgJXNcbiIsIG5h bWUtPm5hbWUpOw0KLQlzdGF0dXMgPSBycGNfY2FsbChORlNfQ0xJRU5UKGlub2RlKSwgTkZTUFJP Q19MSU5LLCAmYXJnLCBOVUxMLCAwKTsNCisJc3RhdHVzID0gcnBjX2NhbGxfc3luYyhORlNfQ0xJ RU5UKGlub2RlKSwgJm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBseSBsaW5rOiAlZFxuIiwg c3RhdHVzKTsNCiAJcmV0dXJuIHN0YXR1czsNCiB9DQpAQCAtNDAyLDExICs0NTMsMTYgQEAgbmZz X3Byb2Nfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydQ0KIAkJLnRvbGVuCQk9IHBhdGgt PmxlbiwNCiAJCS5zYXR0cgkJPSBzYXR0cg0KIAl9Ow0KKwlzdHJ1Y3QgcnBjX21lc3NhZ2UJbXNn ID0geyANCisJCS5ycGNfcHJvYwk9ICZuZnMyX3Byb2NlZHVyZXNbTkZTUFJPQ19TWU1MSU5LXSwN CisJCS5ycGNfYXJncAk9ICZhcmcsDQorCQkucnBjX3RhbHAJPSBORlNfU0VSVkVSKGRpciktPnRh bGx5LA0KKwl9Ow0KIAlpbnQJCQlzdGF0dXM7DQogDQogCWRwcmludGsoIk5GUyBjYWxsICBzeW1s aW5rICVzIC0+ICVzXG4iLCBuYW1lLT5uYW1lLCBwYXRoLT5uYW1lKTsNCiAJZmF0dHItPnZhbGlk ID0gMDsNCi0Jc3RhdHVzID0gcnBjX2NhbGwoTkZTX0NMSUVOVChkaXIpLCBORlNQUk9DX1NZTUxJ TkssICZhcmcsIE5VTEwsIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKE5GU19DTElFTlQo ZGlyKSwgJm1zZywgMCk7DQogCWRwcmludGsoIk5GUyByZXBseSBzeW1saW5rOiAlZFxuIiwgc3Rh dHVzKTsNCiAJcmV0dXJuIHN0YXR1czsNCiB9DQpAQCAtNDI1LDExICs0ODEsMTcgQEAgbmZzX3By b2NfbWtkaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdA0KIAkJLmZoCQk9IGZoYW5kbGUsDQog CQkuZmF0dHIJCT0gZmF0dHINCiAJfTsNCisJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsgDQor CQkucnBjX3Byb2MJPSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfTUtESVJdLA0KKwkJLnJwY19h cmdwCT0gJmFyZywNCisJCS5ycGNfcmVzcAk9ICZyZXMsDQorCQkucnBjX3RhbHAJPSBORlNfU0VS VkVSKGRpciktPnRhbGx5LA0KKwl9Ow0KIAlpbnQJCQlzdGF0dXM7DQogDQogCWRwcmludGsoIk5G UyBjYWxsICBta2RpciAlc1xuIiwgbmFtZS0+bmFtZSk7DQogCWZhdHRyLT52YWxpZCA9IDA7DQot CXN0YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoZGlyKSwgTkZTUFJPQ19NS0RJUiwgJmFyZywg JnJlcywgMCk7DQorCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoTkZTX0NMSUVOVChkaXIpLCAmbXNn LCAwKTsNCiAJZHByaW50aygiTkZTIHJlcGx5IG1rZGlyOiAlZFxuIiwgc3RhdHVzKTsNCiAJcmV0 dXJuIHN0YXR1czsNCiB9DQpAQCAtNDQyLDEwICs1MDQsMTUgQEAgbmZzX3Byb2Nfcm1kaXIoc3Ry dWN0IGlub2RlICpkaXIsIHN0cnVjdA0KIAkJLm5hbWUJCT0gbmFtZS0+bmFtZSwNCiAJCS5sZW4J CT0gbmFtZS0+bGVuDQogCX07DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7IA0KKwkJLnJw Y19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tORlNQUk9DX1JNRElSXSwNCisJCS5ycGNfYXJncAk9 ICZhcmcsDQorCQkucnBjX3RhbHAJPSBORlNfU0VSVkVSKGRpciktPnRhbGx5LA0KKwl9Ow0KIAlp bnQJCQlzdGF0dXM7DQogDQogCWRwcmludGsoIk5GUyBjYWxsICBybWRpciAlc1xuIiwgbmFtZS0+ bmFtZSk7DQotCXN0YXR1cyA9IHJwY19jYWxsKE5GU19DTElFTlQoZGlyKSwgTkZTUFJPQ19STURJ UiwgJmFyZywgTlVMTCwgMCk7DQorCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoTkZTX0NMSUVOVChk aXIpLCAmbXNnLCAwKTsNCiAJZHByaW50aygiTkZTIHJlcGx5IHJtZGlyOiAlZFxuIiwgc3RhdHVz KTsNCiAJcmV0dXJuIHN0YXR1czsNCiB9DQpAQCAtNDY5LDcgKzUzNiw3IEBAIG5mc19wcm9jX3Jl YWRkaXIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCANCiAJCS5wYWdlcwkJPSAmcGFnZQ0KIAl9Ow0K IAlzdHJ1Y3QgcnBjX21lc3NhZ2UJbXNnID0gew0KLQkJLnJwY19wcm9jCT0gJm5mc19wcm9jZWR1 cmVzW05GU1BST0NfUkVBRERJUl0sDQorCQkucnBjX3Byb2MJPSAmbmZzMl9wcm9jZWR1cmVzW05G U1BST0NfUkVBRERJUl0sDQogCQkucnBjX2FyZ3AJPSAmYXJnLA0KIAkJLnJwY19yZXNwCT0gTlVM TCwNCiAJCS5ycGNfY3JlZAk9IGNyZWQsDQpAQCAtNDkyLDExICs1NTksMTcgQEAgbmZzX3Byb2Nf c3RhdGZzKHN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZQ0KIAkJCXN0cnVjdCBuZnNfZnNzdGF0ICpz dGF0KQ0KIHsNCiAJc3RydWN0IG5mczJfZnNzdGF0IGZzaW5mbzsNCisJc3RydWN0IHJwY19tZXNz YWdlCW1zZyA9IHsgDQorCQkucnBjX3Byb2MJPSAmbmZzMl9wcm9jZWR1cmVzW05GU1BST0NfU1RB VEZTXSwNCisJCS5ycGNfYXJncAk9IGZoYW5kbGUsDQorCQkucnBjX3Jlc3AJPSAmZnNpbmZvLA0K KwkJLnJwY190YWxwCT0gc2VydmVyLT50YWxseSwNCisJfTsNCiAJaW50CXN0YXR1czsNCiANCiAJ ZHByaW50aygiTkZTIGNhbGwgIHN0YXRmc1xuIik7DQogCXN0YXQtPmZhdHRyLT52YWxpZCA9IDA7 DQotCXN0YXR1cyA9IHJwY19jYWxsKHNlcnZlci0+Y2xpZW50LCBORlNQUk9DX1NUQVRGUywgZmhh bmRsZSwgJmZzaW5mbywgMCk7DQorCXN0YXR1cyA9IHJwY19jYWxsX3N5bmMoc2VydmVyLT5jbGll bnQsICZtc2csIDApOw0KIAlkcHJpbnRrKCJORlMgcmVwbHkgc3RhdGZzOiAlZFxuIiwgc3RhdHVz KTsNCiAJaWYgKHN0YXR1cykNCiAJCWdvdG8gb3V0Ow0KQEAgLTUxNSwxMSArNTg4LDE3IEBAIG5m c19wcm9jX2ZzaW5mbyhzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmUNCiAJCQlzdHJ1Y3QgbmZzX2Zz aW5mbyAqaW5mbykNCiB7DQogCXN0cnVjdCBuZnMyX2Zzc3RhdCBmc2luZm87DQorCXN0cnVjdCBy cGNfbWVzc2FnZQltc2cgPSB7IA0KKwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tORlNQ Uk9DX1NUQVRGU10sDQorCQkucnBjX2FyZ3AJPSBmaGFuZGxlLA0KKwkJLnJwY19yZXNwCT0gJmZz aW5mbywNCisJCS5ycGNfdGFscAk9IHNlcnZlci0+dGFsbHksDQorCX07DQogCWludAlzdGF0dXM7 DQogDQogCWRwcmludGsoIk5GUyBjYWxsICBmc2luZm9cbiIpOw0KIAlpbmZvLT5mYXR0ci0+dmFs aWQgPSAwOw0KLQlzdGF0dXMgPSBycGNfY2FsbChzZXJ2ZXItPmNsaWVudCwgTkZTUFJPQ19TVEFU RlMsIGZoYW5kbGUsICZmc2luZm8sIDApOw0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKHNlcnZl ci0+Y2xpZW50LCAmbXNnLCAwKTsNCiAJZHByaW50aygiTkZTIHJlcGx5IGZzaW5mbzogJWRcbiIs IHN0YXR1cyk7DQogCWlmIChzdGF0dXMpDQogCQlnb3RvIG91dDsNCkBAIC01NzAsNyArNjQ5LDcg QEAgbmZzX3Byb2NfcmVhZF9zZXR1cChzdHJ1Y3QgbmZzX3JlYWRfZGF0YQ0KIAlzdHJ1Y3QgaW5v ZGUJCSppbm9kZSA9IGRhdGEtPmlub2RlOw0KIAlpbnQJCQlmbGFnczsNCiAJc3RydWN0IHJwY19t ZXNzYWdlCW1zZyA9IHsNCi0JCS5ycGNfcHJvYwk9ICZuZnNfcHJvY2VkdXJlc1tORlNQUk9DX1JF QURdLA0KKwkJLnJwY19wcm9jCT0gJm5mczJfcHJvY2VkdXJlc1tORlNQUk9DX1JFQURdLA0KIAkJ LnJwY19hcmdwCT0gJmRhdGEtPmFyZ3MsDQogCQkucnBjX3Jlc3AJPSAmZGF0YS0+cmVzLA0KIAkJ LnJwY19jcmVkCT0gZGF0YS0+Y3JlZCwNCkBAIC02MDIsNyArNjgxLDcgQEAgbmZzX3Byb2Nfd3Jp dGVfc2V0dXAoc3RydWN0IG5mc193cml0ZV9kYQ0KIAlzdHJ1Y3QgaW5vZGUJCSppbm9kZSA9IGRh dGEtPmlub2RlOw0KIAlpbnQJCQlmbGFnczsNCiAJc3RydWN0IHJwY19tZXNzYWdlCW1zZyA9IHsN Ci0JCS5ycGNfcHJvYwk9ICZuZnNfcHJvY2VkdXJlc1tORlNQUk9DX1dSSVRFXSwNCisJCS5ycGNf cHJvYwk9ICZuZnMyX3Byb2NlZHVyZXNbTkZTUFJPQ19XUklURV0sDQogCQkucnBjX2FyZ3AJPSAm ZGF0YS0+YXJncywNCiAJCS5ycGNfcmVzcAk9ICZkYXRhLT5yZXMsDQogCQkucnBjX2NyZWQJPSBk YXRhLT5jcmVkLA0KZGlmZiAtWCAuLi8uLi9kb250LWRpZmYgLU5hdXJwIDA3LW5mcy1pb3N0YXQv aW5jbHVkZS9saW51eC9zdW5ycGMvY2xudC5oIDA4LXJwY19jYWxsL2luY2x1ZGUvbGludXgvc3Vu cnBjL2NsbnQuaA0KLS0tIDA3LW5mcy1pb3N0YXQvaW5jbHVkZS9saW51eC9zdW5ycGMvY2xudC5o CTIwMDQtMDMtMjkgMTU6MTY6NDEuNTgwMjQwMDAwIC0wNTAwDQorKysgMDgtcnBjX2NhbGwvaW5j bHVkZS9saW51eC9zdW5ycGMvY2xudC5oCTIwMDQtMDMtMjkgMTc6NDA6MzAuNzI4MjQwMDAwIC0w NTAwDQpAQCAtMTMxLDE4ICsxMzEsNiBAQCB2b2lkCQlycGNfY2xudF9zaWdtYXNrKHN0cnVjdCBy cGNfY2xudCAqDQogdm9pZAkJcnBjX2NsbnRfc2lndW5tYXNrKHN0cnVjdCBycGNfY2xudCAqY2xu dCwgc2lnc2V0X3QgKm9sZHNldCk7DQogdm9pZAkJcnBjX3NldGJ1ZnNpemUoc3RydWN0IHJwY19j bG50ICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsNCiANCi1zdGF0aWMgX19pbmxpbmVf Xw0KLWludCBycGNfY2FsbChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQsIHUzMiBwcm9jLCB2b2lkICph cmdwLCB2b2lkICpyZXNwLCBpbnQgZmxhZ3MpDQotew0KLQlzdHJ1Y3QgcnBjX21lc3NhZ2UgbXNn ID0gew0KLQkJLnJwY19wcm9jCT0gJmNsbnQtPmNsX3Byb2NpbmZvW3Byb2NdLA0KLQkJLnJwY19h cmdwCT0gYXJncCwNCi0JCS5ycGNfcmVzcAk9IHJlc3AsDQotCQkucnBjX2NyZWQJPSBOVUxMDQot CX07DQotCXJldHVybiBycGNfY2FsbF9zeW5jKGNsbnQsICZtc2csIGZsYWdzKTsNCi19DQotCQkN CiBleHRlcm4gdm9pZCBycGNpb2Rfd2FrZV91cCh2b2lkKTsNCiANCiAvKg0KZGlmZiAtWCAuLi8u Li9kb250LWRpZmYgLU5hdXJwIDA3LW5mcy1pb3N0YXQvbmV0L3N1bnJwYy9wbWFwX2NsbnQuYyAw OC1ycGNfY2FsbC9uZXQvc3VucnBjL3BtYXBfY2xudC5jDQotLS0gMDctbmZzLWlvc3RhdC9uZXQv c3VucnBjL3BtYXBfY2xudC5jCTIwMDQtMDMtMjYgMTQ6MjI6MTIuNjQwMjQwMDAwIC0wNTAwDQor KysgMDgtcnBjX2NhbGwvbmV0L3N1bnJwYy9wbWFwX2NsbnQuYwkyMDA0LTAzLTMwIDA5OjQ1OjA5 LjM4MzI0MjAwMCAtMDUwMA0KQEAgLTk4LDE0ICs5OCwxOSBAQCBiYWlsb3V0Og0KIGludA0KIHJw Y19nZXRwb3J0X2V4dGVybmFsKHN0cnVjdCBzb2NrYWRkcl9pbiAqc2luLCBfX3UzMiBwcm9nLCBf X3UzMiB2ZXJzLCBpbnQgcHJvdCkNCiB7DQorCXN0cnVjdCBycGNfY2xudAkqcG1hcF9jbG50Ow0K KwljaGFyCQlob3N0bmFtZVszMl07DQogCXN0cnVjdCBycGNfcG9ydG1hcCBtYXAgPSB7DQogCQku cG1fcHJvZwk9IHByb2csDQogCQkucG1fdmVycwk9IHZlcnMsDQogCQkucG1fcHJvdAk9IHByb3Qs DQogCQkucG1fcG9ydAk9IDANCiAJfTsNCi0Jc3RydWN0IHJwY19jbG50CSpwbWFwX2NsbnQ7DQot CWNoYXIJCWhvc3RuYW1lWzMyXTsNCisJc3RydWN0IHJwY19tZXNzYWdlIG1zZyA9IHsNCisJCS5y cGNfcHJvYwk9ICZwbWFwX3Byb2NlZHVyZXNbUE1BUF9HRVRQT1JUXSwNCisJCS5ycGNfYXJncAk9 ICZtYXAsDQorCQkucnBjX3Jlc3AJPSAmbWFwLnBtX3BvcnQsDQorCX07DQogCWludAkJc3RhdHVz Ow0KIA0KIAlkcHJpbnRrKCJSUEM6ICAgICAgcnBjX2dldHBvcnRfZXh0ZXJuYWwoJXUuJXUuJXUu JXUsICVkLCAlZCwgJWQpXG4iLA0KQEAgLTExNiw5ICsxMjEsNyBAQCBycGNfZ2V0cG9ydF9leHRl cm5hbChzdHJ1Y3Qgc29ja2FkZHJfaW4gDQogCWlmIChJU19FUlIocG1hcF9jbG50KSkNCiAJCXJl dHVybiBQVFJfRVJSKHBtYXBfY2xudCk7DQogDQotCS8qIFNldHVwIHRoZSBjYWxsIGluZm8gc3Ry dWN0ICovDQotCXN0YXR1cyA9IHJwY19jYWxsKHBtYXBfY2xudCwgUE1BUF9HRVRQT1JULCAmbWFw LCAmbWFwLnBtX3BvcnQsIDApOw0KLQ0KKwlzdGF0dXMgPSBycGNfY2FsbF9zeW5jKHBtYXBfY2xu dCwgJm1zZywgMCk7DQogCWlmIChzdGF0dXMgPj0gMCkgew0KIAkJaWYgKG1hcC5wbV9wb3J0ICE9 IDApDQogCQkJcmV0dXJuIG1hcC5wbV9wb3J0Ow0KQEAgLTE2NCw2ICsxNjcsMTEgQEAgcnBjX3Jl Z2lzdGVyKHUzMiBwcm9nLCB1MzIgdmVycywgaW50IHBybw0KIAlzdHJ1Y3Qgc29ja2FkZHJfaW4J c2luOw0KIAlzdHJ1Y3QgcnBjX3BvcnRtYXAJbWFwOw0KIAlzdHJ1Y3QgcnBjX2NsbnQJCSpwbWFw X2NsbnQ7DQorCXN0cnVjdCBycGNfbWVzc2FnZQltc2cgPSB7DQorCQkucnBjX3Byb2MJPSAmcG1h cF9wcm9jZWR1cmVzW3BvcnQ/IFBNQVBfU0VUIDogUE1BUF9VTlNFVF0sDQorCQkucnBjX2FyZ3AJ PSAmbWFwLA0KKwkJLnJwY19yZXNwCT0gb2theSwNCisJfTsNCiAJaW50IGVycm9yID0gMDsNCiAN CiAJZHByaW50aygiUlBDOiByZWdpc3RlcmluZyAoJWQsICVkLCAlZCwgJWQpIHdpdGggcG9ydG1h cHBlci5cbiIsDQpAQCAtMTgzLDggKzE5MSw3IEBAIHJwY19yZWdpc3Rlcih1MzIgcHJvZywgdTMy IHZlcnMsIGludCBwcm8NCiAJbWFwLnBtX3Byb3QgPSBwcm90Ow0KIAltYXAucG1fcG9ydCA9IHBv cnQ7DQogDQotCWVycm9yID0gcnBjX2NhbGwocG1hcF9jbG50LCBwb3J0PyBQTUFQX1NFVCA6IFBN QVBfVU5TRVQsDQotCQkJCQkmbWFwLCBva2F5LCAwKTsNCisJZXJyb3IgPSBycGNfY2FsbF9zeW5j KHBtYXBfY2xudCwgJm1zZywgMCk7DQogDQogCWlmIChlcnJvciA8IDApIHsNCiAJCXByaW50ayhL RVJOX1dBUk5JTkcNCg== ------_=_NextPart_001_01C4173E.196C817A-- ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs