From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933178Ab3BLNRW (ORCPT ); Tue, 12 Feb 2013 08:17:22 -0500 Received: from mail-lb0-f174.google.com ([209.85.217.174]:59034 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932915Ab3BLNRV (ORCPT ); Tue, 12 Feb 2013 08:17:21 -0500 MIME-Version: 1.0 X-Originating-IP: [188.6.195.195] In-Reply-To: References: <1360113112.17267.1.camel@fli24-HP-Compaq-8100-Elite-CMT-PC> <2964781.rPUOipNRNb@vostro.rjw.lan> <1660768.prnx6s70rD@vostro.rjw.lan> <20130212104608.GA24042@amd.pavel.ucw.cz> Date: Tue, 12 Feb 2013 14:17:19 +0100 Message-ID: Subject: Re: Getting rid of freezer for suspend [was Re: [fuse-devel] [PATCH] fuse: make fuse daemon frozen along with kernel threads] From: Miklos Szeredi To: Pavel Machek Cc: "Rafael J. Wysocki" , Goswin von Brederlow , Li Fei , len.brown@intel.com, mingo@redhat.com, peterz@infradead.org, biao.wang@intel.com, linux-pm@vger.kernel.org, fuse-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, chuansheng.liu@intel.com Content-Type: multipart/mixed; boundary=f46d0401f78d63be6c04d586d81d Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --f46d0401f78d63be6c04d586d81d Content-Type: text/plain; charset=UTF-8 On Tue, Feb 12, 2013 at 2:13 PM, Miklos Szeredi wrote: > On Tue, Feb 12, 2013 at 11:46 AM, Pavel Machek wrote: > >> (After all, with FUSE, filesystem clients are just doing IPC. In ideal >> world, that would be freezeable and killable with -9). > > Exactly. > > Attaching a patch And this time for real... Sorry for not sending it inline, I'm having a Mail Client Crisis. Thanks, Miklos --f46d0401f78d63be6c04d586d81d Content-Type: application/octet-stream; name="make-fuse-freezable.patch" Content-Disposition: attachment; filename="make-fuse-freezable.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hd32raob0 LS0tCiBmcy9mdXNlL2Rldi5jICAgICAgICAgICAgICB8ICAgMTIgKysrKy0tLQogZnMvZnVzZS9m aWxlLmMgICAgICAgICAgICAgfCAgICA0ICstCiBmcy9mdXNlL2lub2RlLmMgICAgICAgICAgICB8 ICAgIDMgKwogaW5jbHVkZS9saW51eC9mcmVlemVyLmggICAgfCAgIDE5ICsrKysrKysrKysrKwog aW5jbHVkZS9saW51eC9nZnAuaCAgICAgICAgfCAgICA0ICstCiBpbmNsdWRlL2xpbnV4L211dGV4 LmggICAgICB8ICAgIDIgKwogaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmggfCAgICAyICsKIGlu Y2x1ZGUvbGludXgvcGFnZW1hcC5oICAgIHwgICAgOCArKystLQoga2VybmVsL2ZyZWV6ZXIuYyAg ICAgICAgICAgfCAgICAyIC0KIGtlcm5lbC9tdXRleC5jICAgICAgICAgICAgIHwgICAxMCArKysr Ky0KIG1tL2ZpbGVtYXAuYyAgICAgICAgICAgICAgIHwgICA3MCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0KIG1tL3BhZ2VfYWxsb2MuYyAgICAgICAgICAgIHwg ICAgNiArKysKIDEyIGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKCi0tLSBhL2ZzL2Z1c2UvZGV2LmMKKysrIGIvZnMvZnVzZS9kZXYuYwpAQCAtMTksNiAr MTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BpcGVfZnNfaS5oPgogI2luY2x1ZGUgPGxpbnV4L3N3 YXAuaD4KICNpbmNsdWRlIDxsaW51eC9zcGxpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9mcmVlemVy Lmg+CiAKIE1PRFVMRV9BTElBU19NSVNDREVWKEZVU0VfTUlOT1IpOwogTU9EVUxFX0FMSUFTKCJk ZXZuYW1lOmZ1c2UiKTsKQEAgLTEwNiw3ICsxMDcsNyBAQCBzdHJ1Y3QgZnVzZV9yZXEgKmZ1c2Vf Z2V0X3JlcShzdHJ1Y3QgZnVzCiAKIAlhdG9taWNfaW5jKCZmYy0+bnVtX3dhaXRpbmcpOwogCWJs b2NrX3NpZ3MoJm9sZHNldCk7Ci0JaW50ciA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShmYy0+ YmxvY2tlZF93YWl0cSwgIWZjLT5ibG9ja2VkKTsKKwlpbnRyID0gd2FpdF9ldmVudF9mcmVlemVf aW50cihmYy0+YmxvY2tlZF93YWl0cSwgIWZjLT5ibG9ja2VkKTsKIAlyZXN0b3JlX3NpZ3MoJm9s ZHNldCk7CiAJZXJyID0gLUVJTlRSOwogCWlmIChpbnRyKQpAQCAtMTQzLDcgKzE0NCw4IEBAIHN0 YXRpYyBzdHJ1Y3QgZnVzZV9yZXEgKmdldF9yZXNlcnZlZF9yZXEKIAlzdHJ1Y3QgZnVzZV9maWxl ICpmZiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCWRvIHsKLQkJd2FpdF9ldmVudChmYy0+cmVz ZXJ2ZWRfcmVxX3dhaXRxLCBmZi0+cmVzZXJ2ZWRfcmVxKTsKKwkJd2FpdF9ldmVudF9mcmVlemVf bm9uaW50cihmYy0+cmVzZXJ2ZWRfcmVxX3dhaXRxLAorCQkJCQkgIGZmLT5yZXNlcnZlZF9yZXEp OwogCQlzcGluX2xvY2soJmZjLT5sb2NrKTsKIAkJaWYgKGZmLT5yZXNlcnZlZF9yZXEpIHsKIAkJ CXJlcSA9IGZmLT5yZXNlcnZlZF9yZXE7CkBAIC0xOTEsNyArMTkzLDcgQEAgc3RydWN0IGZ1c2Vf cmVxICpmdXNlX2dldF9yZXFfbm9mYWlsKHN0cgogCXN0cnVjdCBmdXNlX3JlcSAqcmVxOwogCiAJ YXRvbWljX2luYygmZmMtPm51bV93YWl0aW5nKTsKLQl3YWl0X2V2ZW50KGZjLT5ibG9ja2VkX3dh aXRxLCAhZmMtPmJsb2NrZWQpOworCXdhaXRfZXZlbnRfZnJlZXplX25vbmludHIoZmMtPmJsb2Nr ZWRfd2FpdHEsICFmYy0+YmxvY2tlZCk7CiAJcmVxID0gZnVzZV9yZXF1ZXN0X2FsbG9jKCk7CiAJ aWYgKCFyZXEpCiAJCXJlcSA9IGdldF9yZXNlcnZlZF9yZXEoZmMsIGZpbGUpOwpAQCAtMzMwLDcg KzMzMiw3IEBAIF9fYWNxdWlyZXMoZmMtPmxvY2spCiAJCXJldHVybjsKIAogCXNwaW5fdW5sb2Nr KCZmYy0+bG9jayk7Ci0Jd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHJlcS0+d2FpdHEsIHJlcS0+ c3RhdGUgPT0gRlVTRV9SRVFfRklOSVNIRUQpOworCXdhaXRfZXZlbnRfZnJlZXplX2ludHIocmVx LT53YWl0cSwgcmVxLT5zdGF0ZSA9PSBGVVNFX1JFUV9GSU5JU0hFRCk7CiAJc3Bpbl9sb2NrKCZm Yy0+bG9jayk7CiB9CiAKQEAgLTM4Niw3ICszODgsNyBAQCBfX2FjcXVpcmVzKGZjLT5sb2NrKQog CSAqIFdhaXQgaXQgb3V0LgogCSAqLwogCXNwaW5fdW5sb2NrKCZmYy0+bG9jayk7Ci0Jd2FpdF9l dmVudChyZXEtPndhaXRxLCByZXEtPnN0YXRlID09IEZVU0VfUkVRX0ZJTklTSEVEKTsKKwl3YWl0 X2V2ZW50X2ZyZWV6ZV9ub25pbnRyKHJlcS0+d2FpdHEsIHJlcS0+c3RhdGUgPT0gRlVTRV9SRVFf RklOSVNIRUQpOwogCXNwaW5fbG9jaygmZmMtPmxvY2spOwogCiAJaWYgKCFyZXEtPmFib3J0ZWQp Ci0tLSBhL2ZzL2Z1c2UvZmlsZS5jCisrKyBiL2ZzL2Z1c2UvZmlsZS5jCkBAIC0xNSw2ICsxNSw3 IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+ CiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZyZWV6ZXIuaD4KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZnVzZV9kaXJlY3RfaW9fZmlsZV9v cGVyYXRpb25zOwogCkBAIC0zNDksNyArMzUwLDggQEAgc3RhdGljIGludCBmdXNlX3dhaXRfb25f cGFnZV93cml0ZWJhY2socwogewogCXN0cnVjdCBmdXNlX2lub2RlICpmaSA9IGdldF9mdXNlX2lu b2RlKGlub2RlKTsKIAotCXdhaXRfZXZlbnQoZmktPnBhZ2Vfd2FpdHEsICFmdXNlX3BhZ2VfaXNf d3JpdGViYWNrKGlub2RlLCBpbmRleCkpOworCXdhaXRfZXZlbnRfZnJlZXplX25vbmludHIoZmkt PnBhZ2Vfd2FpdHEsCisJCQkJICAhZnVzZV9wYWdlX2lzX3dyaXRlYmFjayhpbm9kZSwgaW5kZXgp KTsKIAlyZXR1cm4gMDsKIH0KIAotLS0gYS9mcy9mdXNlL2lub2RlLmMKKysrIGIvZnMvZnVzZS9p bm9kZS5jCkBAIC0yOTAsNiArMjkwLDggQEAgc3RydWN0IGlub2RlICpmdXNlX2lnZXQoc3RydWN0 IHN1cGVyX2JsbwogCQlpbm9kZS0+aV9mbGFncyB8PSBTX05PQVRJTUV8U19OT0NNVElNRTsKIAkJ aW5vZGUtPmlfZ2VuZXJhdGlvbiA9IGdlbmVyYXRpb247CiAJCWlub2RlLT5pX2RhdGEuYmFja2lu Z19kZXZfaW5mbyA9ICZmYy0+YmRpOworCQlpbm9kZS0+aV9kYXRhLmZsYWdzIHw9IF9fR0ZQX0ZS RUVaQUJMRTsKKwkJaW5vZGUtPmlfbXV0ZXguZnJlZXphYmxlID0gdHJ1ZTsKIAkJZnVzZV9pbml0 X2lub2RlKGlub2RlLCBhdHRyKTsKIAkJdW5sb2NrX25ld19pbm9kZShpbm9kZSk7CiAJfSBlbHNl IGlmICgoaW5vZGUtPmlfbW9kZSBeIGF0dHItPm1vZGUpICYgU19JRk1UKSB7CkBAIC0xMDU1LDYg KzEwNTcsNyBAQCBzdGF0aWMgaW50IGZ1c2VfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfCiAKIAls aXN0X2FkZF90YWlsKCZmYy0+ZW50cnksICZmdXNlX2Nvbm5fbGlzdCk7CiAJc2ItPnNfcm9vdCA9 IHJvb3RfZGVudHJ5OworCXNiLT5zX3Zmc19yZW5hbWVfbXV0ZXguZnJlZXphYmxlID0gdHJ1ZTsK IAlmYy0+Y29ubmVjdGVkID0gMTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBmdXNlX2Nvbm5fZ2V0 KGZjKTsKIAltdXRleF91bmxvY2soJmZ1c2VfbXV0ZXgpOwotLS0gYS9pbmNsdWRlL2xpbnV4L2Zy ZWV6ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ZyZWV6ZXIuaApAQCAtMTYzLDYgKzE2MywyMiBA QCBzdGF0aWMgaW5saW5lIGJvb2wgZnJlZXplcl9zaG91bGRfc2tpcChzCiAgKiBkZWZpbmVkIGlu IDxsaW51eC93YWl0Lmg+CiAgKi8KIAorI2RlZmluZSB3YWl0X2V2ZW50X2ZyZWV6ZV9ub25pbnRy KHdxLCBjb25kaXRpb24pCQkJXAorKHsJCQkJCQkJCQlcCisJZnJlZXplcl9kb19ub3RfY291bnQo KTsJCQkJCQlcCisJd2FpdF9ldmVudCh3cSwgKGNvbmRpdGlvbikpOwkJCQkJXAorCWZyZWV6ZXJf Y291bnQoKTsJCQkJCQlcCit9KQorCisjZGVmaW5lIHdhaXRfZXZlbnRfZnJlZXplX2ludHIod3Es IGNvbmRpdGlvbikJCQkJXAorKHsJCQkJCQkJCQlcCisJaW50IF9fcmV0dmFsOwkJCQkJCQlcCisJ ZnJlZXplcl9kb19ub3RfY291bnQoKTsJCQkJCQlcCisJX19yZXR2YWwgPSB3YWl0X2V2ZW50X2lu dGVycnVwdGlibGUod3EsIChjb25kaXRpb24pKTsJCVwKKwlmcmVlemVyX2NvdW50KCk7CQkJCQkJ XAorCV9fcmV0dmFsOwkJCQkJCQlcCit9KQorCiAjZGVmaW5lIHdhaXRfZXZlbnRfZnJlZXpla2ls bGFibGUod3EsIGNvbmRpdGlvbikJCQlcCiAoewkJCQkJCQkJCVwKIAlpbnQgX19yZXR2YWw7CQkJ CQkJCVwKQEAgLTIzMiw2ICsyNDgsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X2ZyZWV6YWJs ZSh2b2lkKSB7CiAjZGVmaW5lIHdhaXRfZXZlbnRfZnJlZXpla2lsbGFibGUod3EsIGNvbmRpdGlv bikJCVwKIAkJd2FpdF9ldmVudF9raWxsYWJsZSh3cSwgY29uZGl0aW9uKQogCisjZGVmaW5lIHdh aXRfZXZlbnRfZnJlZXplX25vbmludHIod3EsIGNvbmRpdGlvbikJCVwKKwkJd2FpdF9ldmVudCh3 cSwgY29uZGl0aW9uKQorCiAjZW5kaWYgLyogIUNPTkZJR19GUkVFWkVSICovCiAKICNlbmRpZgkv KiBGUkVFWkVSX0hfSU5DTFVERUQgKi8KLS0tIGEvaW5jbHVkZS9saW51eC9nZnAuaAorKysgYi9p bmNsdWRlL2xpbnV4L2dmcC5oCkBAIC0zNSw2ICszNSw3IEBAIHN0cnVjdCB2bV9hcmVhX3N0cnVj dDsKICNkZWZpbmUgX19fR0ZQX05PX0tTV0FQRAkweDQwMDAwMHUKICNkZWZpbmUgX19fR0ZQX09U SEVSX05PREUJMHg4MDAwMDB1CiAjZGVmaW5lIF9fX0dGUF9XUklURQkJMHgxMDAwMDAwdQorI2Rl ZmluZSBfX19HRlBfRlJFRVpBQkxFCTB4MjAwMDAwMHUKIC8qIElmIHRoZSBhYm92ZSBhcmUgbW9k aWZpZWQsIF9fR0ZQX0JJVFNfU0hJRlQgbWF5IG5lZWQgdXBkYXRpbmcgKi8KIAogLyoKQEAgLTky LDYgKzkzLDcgQEAgc3RydWN0IHZtX2FyZWFfc3RydWN0OwogI2RlZmluZSBfX0dGUF9PVEhFUl9O T0RFICgoX19mb3JjZSBnZnBfdClfX19HRlBfT1RIRVJfTk9ERSkgLyogT24gYmVoYWxmIG9mIG90 aGVyIG5vZGUgKi8KICNkZWZpbmUgX19HRlBfS01FTUNHCSgoX19mb3JjZSBnZnBfdClfX19HRlBf S01FTUNHKSAvKiBBbGxvY2F0aW9uIGNvbWVzIGZyb20gYSBtZW1jZy1hY2NvdW50ZWQgcmVzb3Vy Y2UgKi8KICNkZWZpbmUgX19HRlBfV1JJVEUJKChfX2ZvcmNlIGdmcF90KV9fX0dGUF9XUklURSkJ LyogQWxsb2NhdG9yIGludGVuZHMgdG8gZGlydHkgcGFnZSAqLworI2RlZmluZSBfX0dGUF9GUkVF WkFCTEUJKChfX2ZvcmNlIGdmcF90KV9fX0dGUF9GUkVFWkFCTEUpIC8qIEFsbG9jYXRlIGZyZWV6 YWJsZSBwYWdlICovCiAKIC8qCiAgKiBUaGlzIG1heSBzZWVtIHJlZHVuZGFudCwgYnV0IGl0J3Mg YSB3YXkgb2YgYW5ub3RhdGluZyBmYWxzZSBwb3NpdGl2ZXMgdnMuCkBAIC05OSw3ICsxMDEsNyBA QCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CiAgKi8KICNkZWZpbmUgX19HRlBfTk9UUkFDS19GQUxT RV9QT1NJVElWRSAoX19HRlBfTk9UUkFDSykKIAotI2RlZmluZSBfX0dGUF9CSVRTX1NISUZUIDI1 CS8qIFJvb20gZm9yIE4gX19HRlBfRk9PIGJpdHMgKi8KKyNkZWZpbmUgX19HRlBfQklUU19TSElG VCAyNgkvKiBSb29tIGZvciBOIF9fR0ZQX0ZPTyBiaXRzICovCiAjZGVmaW5lIF9fR0ZQX0JJVFNf TUFTSyAoKF9fZm9yY2UgZ2ZwX3QpKCgxIDw8IF9fR0ZQX0JJVFNfU0hJRlQpIC0gMSkpCiAKIC8q IFRoaXMgZXF1YWxzIDAsIGJ1dCB1c2UgY29uc3RhbnRzIGluIGNhc2UgdGhleSBldmVyIGNoYW5n ZSAqLwotLS0gYS9pbmNsdWRlL2xpbnV4L211dGV4LmgKKysrIGIvaW5jbHVkZS9saW51eC9tdXRl eC5oCkBAIC01MCw2ICs1MCw3IEBAIHN0cnVjdCBtdXRleCB7CiAJYXRvbWljX3QJCWNvdW50Owog CXNwaW5sb2NrX3QJCXdhaXRfbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFkCXdhaXRfbGlzdDsKKwli b29sCQkJZnJlZXphYmxlOwogI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX01VVEVYRVMpIHx8IGRl ZmluZWQoQ09ORklHX1NNUCkKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QJKm93bmVyOwogI2VuZGlmCkBA IC0xMDYsNiArMTA3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG11dGV4X2Rlc3Ryb3koc3RydWN0 CiAJCXsgLmNvdW50ID0gQVRPTUlDX0lOSVQoMSkgXAogCQksIC53YWl0X2xvY2sgPSBfX1NQSU5f TE9DS19VTkxPQ0tFRChsb2NrbmFtZS53YWl0X2xvY2spIFwKIAkJLCAud2FpdF9saXN0ID0gTElT VF9IRUFEX0lOSVQobG9ja25hbWUud2FpdF9saXN0KSBcCisJCSwgLmZyZWV6YWJsZSA9IGZhbHNl IFwKIAkJX19ERUJVR19NVVRFWF9JTklUSUFMSVpFUihsb2NrbmFtZSkgXAogCQlfX0RFUF9NQVBf TVVURVhfSU5JVElBTElaRVIobG9ja25hbWUpIH0KIAotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2Ut ZmxhZ3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaApAQCAtMTA5LDYgKzEwOSw3 IEBAIGVudW0gcGFnZWZsYWdzIHsKICNpZmRlZiBDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0UK IAlQR19jb21wb3VuZF9sb2NrLAogI2VuZGlmCisJUEdfZnJlZXphYmxlLAogCV9fTlJfUEFHRUZM QUdTLAogCiAJLyogRmlsZXN5c3RlbXMgKi8KQEAgLTIwOCw2ICsyMDksNyBAQCBQQUdFRkxBRyhQ aW5uZWQsIHBpbm5lZCkgVEVTVFNDRkxBRyhQaW5uCiBQQUdFRkxBRyhTYXZlUGlubmVkLCBzYXZl cGlubmVkKTsJCQkvKiBYZW4gKi8KIFBBR0VGTEFHKFJlc2VydmVkLCByZXNlcnZlZCkgX19DTEVB UlBBR0VGTEFHKFJlc2VydmVkLCByZXNlcnZlZCkKIFBBR0VGTEFHKFN3YXBCYWNrZWQsIHN3YXBi YWNrZWQpIF9fQ0xFQVJQQUdFRkxBRyhTd2FwQmFja2VkLCBzd2FwYmFja2VkKQorUEFHRUZMQUco RnJlZXphYmxlLCBmcmVlemFibGUpCiAKIF9fUEFHRUZMQUcoU2xvYkZyZWUsIHNsb2JfZnJlZSkK IAotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BhZ2Vt YXAuaApAQCAtMzgyLDEyICszODIsMTQgQEAgc3RhdGljIGlubGluZSBpbnQgbG9ja19wYWdlX29y X3JldHJ5KHN0cgogICovCiBleHRlcm4gdm9pZCB3YWl0X29uX3BhZ2VfYml0KHN0cnVjdCBwYWdl ICpwYWdlLCBpbnQgYml0X25yKTsKIAotZXh0ZXJuIGludCB3YWl0X29uX3BhZ2VfYml0X2tpbGxh YmxlKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgYml0X25yKTsKK2V4dGVybiB2b2lkIF9fd2FpdF9v bl9wYWdlX2xvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSk7CisKK2V4dGVybiBpbnQgX193YWl0X29u X3BhZ2VfbG9ja2VkX2tpbGxhYmxlKHN0cnVjdCBwYWdlICpwYWdlKTsKIAogc3RhdGljIGlubGlu ZSBpbnQgd2FpdF9vbl9wYWdlX2xvY2tlZF9raWxsYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsK IAlpZiAoUGFnZUxvY2tlZChwYWdlKSkKLQkJcmV0dXJuIHdhaXRfb25fcGFnZV9iaXRfa2lsbGFi bGUocGFnZSwgUEdfbG9ja2VkKTsKKwkJcmV0dXJuIF9fd2FpdF9vbl9wYWdlX2xvY2tlZF9raWxs YWJsZShwYWdlKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDAxLDcgKzQwMyw3IEBAIHN0YXRpYyBp bmxpbmUgaW50IHdhaXRfb25fcGFnZV9sb2NrZWRfa2kKIHN0YXRpYyBpbmxpbmUgdm9pZCB3YWl0 X29uX3BhZ2VfbG9ja2VkKHN0cnVjdCBwYWdlICpwYWdlKQogewogCWlmIChQYWdlTG9ja2VkKHBh Z2UpKQotCQl3YWl0X29uX3BhZ2VfYml0KHBhZ2UsIFBHX2xvY2tlZCk7CisJCV9fd2FpdF9vbl9w YWdlX2xvY2tlZChwYWdlKTsKIH0KIAogLyogCi0tLSBhL2tlcm5lbC9mcmVlemVyLmMKKysrIGIv a2VybmVsL2ZyZWV6ZXIuYwpAQCAtMTExLDcgKzExMSw3IEBAIGJvb2wgZnJlZXplX3Rhc2soc3Ry dWN0IHRhc2tfc3RydWN0ICpwKQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlzcGluX2xvY2tf aXJxc2F2ZSgmZnJlZXplcl9sb2NrLCBmbGFncyk7Ci0JaWYgKCFmcmVlemluZyhwKSB8fCBmcm96 ZW4ocCkpIHsKKwlpZiAoIWZyZWV6aW5nKHApIHx8IGZyb3plbihwKSB8fCBmcmVlemVyX3Nob3Vs ZF9za2lwKHApKSB7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZyZWV6ZXJfbG9jaywgZmxh Z3MpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQotLS0gYS9rZXJuZWwvbXV0ZXguYworKysgYi9rZXJu ZWwvbXV0ZXguYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAj aW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KKyNpbmNs dWRlIDxsaW51eC9mcmVlemVyLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNs dWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9kZWJ1Z19sb2Nrcy5oPgpA QCAtNDMsNiArNDQsNyBAQCBfX211dGV4X2luaXQoc3RydWN0IG11dGV4ICpsb2NrLCBjb25zdCBj CiAJc3Bpbl9sb2NrX2luaXQoJmxvY2stPndhaXRfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJmxv Y2stPndhaXRfbGlzdCk7CiAJbXV0ZXhfY2xlYXJfb3duZXIobG9jayk7CisJbG9jay0+ZnJlZXph YmxlID0gZmFsc2U7CiAKIAlkZWJ1Z19tdXRleF9pbml0KGxvY2ssIG5hbWUsIGtleSk7CiB9CkBA IC0yNDAsNyArMjQyLDEzIEBAIF9fbXV0ZXhfbG9ja19jb21tb24oc3RydWN0IG11dGV4ICpsb2Nr LAogCiAJCS8qIGRpZG4ndCBnZXQgdGhlIGxvY2ssIGdvIHRvIHNsZWVwOiAqLwogCQlzcGluX3Vu bG9ja19tdXRleCgmbG9jay0+d2FpdF9sb2NrLCBmbGFncyk7Ci0JCXNjaGVkdWxlX3ByZWVtcHRf ZGlzYWJsZWQoKTsKKwkJaWYgKGxpa2VseSghbG9jay0+ZnJlZXphYmxlKSkgeworCQkJc2NoZWR1 bGVfcHJlZW1wdF9kaXNhYmxlZCgpOworCQl9IGVsc2UgeworCQkJc2NoZWRfcHJlZW1wdF9lbmFi bGVfbm9fcmVzY2hlZCgpOworCQkJZnJlZXphYmxlX3NjaGVkdWxlKCk7CisJCQlwcmVlbXB0X2Rp c2FibGUoKTsKKwkJfQogCQlzcGluX2xvY2tfbXV0ZXgoJmxvY2stPndhaXRfbG9jaywgZmxhZ3Mp OwogCX0KIAotLS0gYS9tbS9maWxlbWFwLmMKKysrIGIvbW0vZmlsZW1hcC5jCkBAIC0zMyw2ICsz Myw3IEBACiAjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPiAvKiBmb3IgQlVHX09OKCFpbl9hdG9t aWMoKSkgb25seSAqLwogI2luY2x1ZGUgPGxpbnV4L21lbWNvbnRyb2wuaD4KICNpbmNsdWRlIDxs aW51eC9jbGVhbmNhY2hlLmg+CisjaW5jbHVkZSA8bGludXgvZnJlZXplci5oPgogI2luY2x1ZGUg ImludGVybmFsLmgiCiAKIC8qCkBAIC01NDQsMTUgKzU0NSw0NiBAQCB2b2lkIHdhaXRfb25fcGFn ZV9iaXQoc3RydWN0IHBhZ2UgKnBhZ2UsCiB9CiBFWFBPUlRfU1lNQk9MKHdhaXRfb25fcGFnZV9i aXQpOwogCi1pbnQgd2FpdF9vbl9wYWdlX2JpdF9raWxsYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSwg aW50IGJpdF9ucikKK3ZvaWQgX193YWl0X29uX3BhZ2VfbG9ja2VkKHN0cnVjdCBwYWdlICpwYWdl KQogewotCURFRklORV9XQUlUX0JJVCh3YWl0LCAmcGFnZS0+ZmxhZ3MsIGJpdF9ucik7CisJREVG SU5FX1dBSVRfQklUKHdhaXQsICZwYWdlLT5mbGFncywgUEdfbG9ja2VkKTsKKworCWlmIChQYWdl TG9ja2VkKHBhZ2UpKSB7CisJCWlmIChsaWtlbHkoIVBhZ2VGcmVlemFibGUocGFnZSkpKSB7CisJ CQlfX3dhaXRfb25fYml0KHBhZ2Vfd2FpdHF1ZXVlKHBhZ2UpLCAmd2FpdCwKKwkJCQkgICAgICBz bGVlcF9vbl9wYWdlLAorCQkJCSAgICAgIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKwkJfSBlbHNl IHsKKwkJCWZyZWV6ZXJfZG9fbm90X2NvdW50KCk7CisJCQlfX3dhaXRfb25fYml0KHBhZ2Vfd2Fp dHF1ZXVlKHBhZ2UpLCAmd2FpdCwKKwkJCQkgICAgICBzbGVlcF9vbl9wYWdlLAorCQkJCSAgICAg IFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKwkJCWZyZWV6ZXJfY291bnQoKTsKKwkJfQorCX0KK30K K0VYUE9SVF9TWU1CT0woX193YWl0X29uX3BhZ2VfbG9ja2VkKTsKKworaW50IF9fd2FpdF9vbl9w YWdlX2xvY2tlZF9raWxsYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlERUZJTkVfV0FJVF9C SVQod2FpdCwgJnBhZ2UtPmZsYWdzLCBQR19sb2NrZWQpOwogCi0JaWYgKCF0ZXN0X2JpdChiaXRf bnIsICZwYWdlLT5mbGFncykpCisJaWYgKCFQYWdlTG9ja2VkKHBhZ2UpKQogCQlyZXR1cm4gMDsK IAotCXJldHVybiBfX3dhaXRfb25fYml0KHBhZ2Vfd2FpdHF1ZXVlKHBhZ2UpLCAmd2FpdCwKLQkJ CSAgICAgc2xlZXBfb25fcGFnZV9raWxsYWJsZSwgVEFTS19LSUxMQUJMRSk7CisJaWYgKGxpa2Vs eSghUGFnZUZyZWV6YWJsZShwYWdlKSkpIHsKKwkJcmV0dXJuIF9fd2FpdF9vbl9iaXQocGFnZV93 YWl0cXVldWUocGFnZSksICZ3YWl0LAorCQkJCSAgICAgc2xlZXBfb25fcGFnZV9raWxsYWJsZSwg VEFTS19LSUxMQUJMRSk7CisJfSBlbHNlIHsKKwkJaW50IHJldDsKKworCQlmcmVlemVyX2RvX25v dF9jb3VudCgpOworCQlyZXQgPSBfX3dhaXRfb25fYml0KHBhZ2Vfd2FpdHF1ZXVlKHBhZ2UpLCAm d2FpdCwKKwkJCQkgICAgIHNsZWVwX29uX3BhZ2Vfa2lsbGFibGUsIFRBU0tfS0lMTEFCTEUpOwor CQlmcmVlemVyX2NvdW50KCk7CisKKwkJcmV0dXJuIHJldDsKKwl9CiB9CiAKIC8qKgpAQCAtNjE5 LDggKzY1MSwxNSBAQCB2b2lkIF9fbG9ja19wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQogewogCURF RklORV9XQUlUX0JJVCh3YWl0LCAmcGFnZS0+ZmxhZ3MsIFBHX2xvY2tlZCk7CiAKLQlfX3dhaXRf b25fYml0X2xvY2socGFnZV93YWl0cXVldWUocGFnZSksICZ3YWl0LCBzbGVlcF9vbl9wYWdlLAot CQkJCQkJCVRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKwlpZiAobGlrZWx5KCFQYWdlRnJlZXphYmxl KHBhZ2UpKSkgeworCQlfX3dhaXRfb25fYml0X2xvY2socGFnZV93YWl0cXVldWUocGFnZSksICZ3 YWl0LCBzbGVlcF9vbl9wYWdlLAorCQkJCSAgIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKKwl9IGVs c2UgeworCQlmcmVlemVyX2RvX25vdF9jb3VudCgpOworCQlfX3dhaXRfb25fYml0X2xvY2socGFn ZV93YWl0cXVldWUocGFnZSksICZ3YWl0LCBzbGVlcF9vbl9wYWdlLAorCQkJCSAgIFRBU0tfVU5J TlRFUlJVUFRJQkxFKTsKKwkJZnJlZXplcl9jb3VudCgpOworCX0KIH0KIEVYUE9SVF9TWU1CT0wo X19sb2NrX3BhZ2UpOwogCkBAIC02MjgsOCArNjY3LDIxIEBAIGludCBfX2xvY2tfcGFnZV9raWxs YWJsZShzdHJ1Y3QgcGFnZSAqcGEKIHsKIAlERUZJTkVfV0FJVF9CSVQod2FpdCwgJnBhZ2UtPmZs YWdzLCBQR19sb2NrZWQpOwogCi0JcmV0dXJuIF9fd2FpdF9vbl9iaXRfbG9jayhwYWdlX3dhaXRx dWV1ZShwYWdlKSwgJndhaXQsCi0JCQkJCXNsZWVwX29uX3BhZ2Vfa2lsbGFibGUsIFRBU0tfS0lM TEFCTEUpOworCWlmIChsaWtlbHkoIVBhZ2VGcmVlemFibGUocGFnZSkpKSB7CisJCXJldHVybiBf X3dhaXRfb25fYml0X2xvY2socGFnZV93YWl0cXVldWUocGFnZSksICZ3YWl0LAorCQkJCQkgIHNs ZWVwX29uX3BhZ2Vfa2lsbGFibGUsCisJCQkJCSAgVEFTS19LSUxMQUJMRSk7CisJfSBlbHNlIHsK KwkJaW50IHJldDsKKworCQlmcmVlemVyX2RvX25vdF9jb3VudCgpOworCQlyZXQgPSBfX3dhaXRf b25fYml0X2xvY2socGFnZV93YWl0cXVldWUocGFnZSksICZ3YWl0LAorCQkJCQkgIHNsZWVwX29u X3BhZ2Vfa2lsbGFibGUsCisJCQkJCSAgVEFTS19LSUxMQUJMRSk7CisJCWZyZWV6ZXJfY291bnQo KTsKKworCQlyZXR1cm4gcmV0OworCX0KIH0KIEVYUE9SVF9TWU1CT0xfR1BMKF9fbG9ja19wYWdl X2tpbGxhYmxlKTsKIAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9hbGxvYy5j CkBAIC01MzIsNiArNTMyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fZnJlZV9vbmVfcGFnZShz dHJ1YwogCXVuc2lnbmVkIGxvbmcgdW5pbml0aWFsaXplZF92YXIoYnVkZHlfaWR4KTsKIAlzdHJ1 Y3QgcGFnZSAqYnVkZHk7CiAKKwlpZiAodW5saWtlbHkoUGFnZUZyZWV6YWJsZShwYWdlKSkpCisJ CUNsZWFyUGFnZUZyZWV6YWJsZShwYWdlKTsKKwogCWlmICh1bmxpa2VseShQYWdlQ29tcG91bmQo cGFnZSkpKQogCQlpZiAodW5saWtlbHkoZGVzdHJveV9jb21wb3VuZF9wYWdlKHBhZ2UsIG9yZGVy KSkpCiAJCQlyZXR1cm47CkBAIC0yNjI4LDYgKzI2MzEsOCBAQCBfX2FsbG9jX3BhZ2VzX25vZGVt YXNrKGdmcF90IGdmcF9tYXNrLCB1CiAJCWdvdG8gcmV0cnlfY3B1c2V0OwogCiAJbWVtY2dfa21l bV9jb21taXRfY2hhcmdlKHBhZ2UsIG1lbWNnLCBvcmRlcik7CisJaWYgKHVubGlrZWx5KGdmcF9t YXNrICYgX19HRlBfRlJFRVpBQkxFKSkKKwkJU2V0UGFnZUZyZWV6YWJsZShwYWdlKTsKIAogCXJl dHVybiBwYWdlOwogfQpAQCAtNjEwNyw2ICs2MTEyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0 cmFjZV9wcmludF9mbGFncyBwYQogI2lmZGVmIENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRQog CXsxVUwgPDwgUEdfY29tcG91bmRfbG9jaywJImNvbXBvdW5kX2xvY2siCX0sCiAjZW5kaWYKKwl7 MVVMIDw8IFBHX2ZyZWV6YWJsZSwJCSJmcmVlemFibGUiCX0sCiB9OwogCiBzdGF0aWMgdm9pZCBk dW1wX3BhZ2VfZmxhZ3ModW5zaWduZWQgbG9uZyBmbGFncykK --f46d0401f78d63be6c04d586d81d--