From: Valerie Aurora Subject: [RFC PATCH 1/3] VFS: Fix s_umount thaw/write deadlock Date: Mon, 12 Sep 2011 19:57:11 -0700 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e656ad12ea69ab04acc9cc20 To: linux-fsdevel@vger.kernel.org, Jan Kara , Dave Chinner , Masayoshi MIZUMA , Greg Freemyer , linux Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:43622 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753070Ab1IMC5O (ORCPT ); Mon, 12 Sep 2011 22:57:14 -0400 In-Reply-To: Sender: linux-ext4-owner@vger.kernel.org List-ID: --0016e656ad12ea69ab04acc9cc20 Content-Type: text/plain; charset=ISO-8859-1 --0016e656ad12ea69ab04acc9cc20 Content-Type: application/octet-stream; name=1 Content-Disposition: attachment; filename=1 Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsiaiwxw1 Y29tbWl0IDA0M2IxMjg0YzExM2NmYmFhNmExNzVhZDIxZjM2OWNmNTkyMTVjNzEKQXV0aG9yOiBW YWxlcmllIEF1cm9yYSA8dmFsQHZhYWNvbnN1bHRpbmcuY29tPgpEYXRlOiAgIEZyaSBBdWcgMjYg MjA6MzI6NTcgMjAxMSAtMDQwMAoKICAgIFZGUzogRml4IHNfdW1vdW50IHRoYXcvd3JpdGUgZGVh ZGxvY2sKICAgIAogICAgRmlsZSBzeXN0ZW0gZnJlZXplL3RoYXcgcmVxdWlyZSB0aGUgc3VwZXJi bG9jaydzIHNfdW1vdW50IGxvY2suCiAgICBIb3dldmVyLCB3ZSB3cml0ZSB0byB0aGUgZmlsZSBz eXN0ZW0gd2hpbGUgaG9sZGluZyB0aGUgc191bW91bnQgbG9jawogICAgaW4gc2V2ZXJhbCBwbGFj ZXMgKGUuZy4sIHdyaXRlYmFjayBhbmQgcXVvdGFzKS4gIEFueSBvZiB0aGVzZSBjYW4KICAgIGJs b2NrIG9uIGEgZnJvemVuIGZpbGUgc3lzdGVtIHdoaWxlIGhvbGRpbmcgc191bW91bnQsIHByZXZl bnRpbmcgYW55CiAgICBsYXRlciB0aGF3IGZyb20gb2NjdXJyaW5nLCBzaW5jZSB0aGF3IHJlcXVp cmVzIHNfdW1vdW50LgogICAgCiAgICBUaGUgc29sdXRpb24gaXMgdG8gYWRkIGEgY2hlY2ssIHZm c19pc19mcm96ZW4oKSwgdG8gYWxsIGNvZGUgcGF0aHMKICAgIHRoYXQgd3JpdGUgd2hpbGUgaG9s ZGluZyBzYi0+c191bW91bnQgYW5kIHJldHVybiB3aXRob3V0IHdyaXRpbmcgaWYgaXQKICAgIGlz IHRydWUuCgpkaWZmIC0tZ2l0IGEvZnMvZHJvcF9jYWNoZXMuYyBiL2ZzL2Ryb3BfY2FjaGVzLmMK aW5kZXggYzAwZTA1NS4uOTBmOGY3ZSAxMDA2NDQKLS0tIGEvZnMvZHJvcF9jYWNoZXMuYworKysg Yi9mcy9kcm9wX2NhY2hlcy5jCkBAIC01Nyw2ICs1NywxNCBAQCBpbnQgZHJvcF9jYWNoZXNfc3lz Y3RsX2hhbmRsZXIoY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogCXJldCA9IHByb2NfZG9p bnR2ZWNfbWlubWF4KHRhYmxlLCB3cml0ZSwgYnVmZmVyLCBsZW5ndGgsIHBwb3MpOwogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIEFueSBmaWxlLXN5c3RlbSBzcGVjaWZpYyBy b3V0aW5lcyBldmVudHVhbGx5IGNhbGxlZCBieQorCSAqIGRyb3BfcGFnZWNhY2hlX3NiKCkgYW5k IGRyb3Bfc2xhYigpIG91Z2h0IHRvIGNoZWNrIGZvciBhCisJICogZnJvemVuIGZpbGUgc3lzdGVt IGJlZm9yZSB3cml0aW5nIHRvIHRoZSBkaXNrLiAgTW9zdCBmaWxlCisJICogc3lzdGVtcyB3b24n dCB3cml0ZSBpbiB0aGlzIGNhc2UgYnV0IFhGUyBpcyBhIG5vdGFibGUKKwkgKiBleGNlcHRpb24g aW4gY2VydGFpbiBjYXNlcy4KKwkgKi8KIAlpZiAod3JpdGUpIHsKIAkJaWYgKHN5c2N0bF9kcm9w X2NhY2hlcyAmIDEpCiAJCQlpdGVyYXRlX3N1cGVycyhkcm9wX3BhZ2VjYWNoZV9zYiwgTlVMTCk7 CmRpZmYgLS1naXQgYS9mcy9mcy13cml0ZWJhY2suYyBiL2ZzL2ZzLXdyaXRlYmFjay5jCmluZGV4 IDA0Y2YzYjkuLmQxZGNhMDMgMTAwNjQ0Ci0tLSBhL2ZzL2ZzLXdyaXRlYmFjay5jCisrKyBiL2Zz L2ZzLXdyaXRlYmFjay5jCkBAIC01MzcsNiArNTM3LDkgQEAgc3RhdGljIGxvbmcgd3JpdGViYWNr X3NiX2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCWxvbmcgd3JpdGVfY2h1bms7CiAJ bG9uZyB3cm90ZSA9IDA7ICAvKiBjb3VudCBib3RoIHBhZ2VzIGFuZCBpbm9kZXMgKi8KIAorCWlm ICh2ZnNfaXNfZnJvemVuKHNiKSkKKwkJcmV0dXJuIDA7CisKIAl3aGlsZSAoIWxpc3RfZW1wdHko JndiLT5iX2lvKSkgewogCQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gd2JfaW5vZGUod2ItPmJfaW8u cHJldik7CiAKQEAgLTEyMzgsMzkgKzEyNDEsNDMgQEAgRVhQT1JUX1NZTUJPTCh3cml0ZWJhY2tf aW5vZGVzX3NiKTsKICAqIHdyaXRlYmFja19pbm9kZXNfc2JfaWZfaWRsZQktCXN0YXJ0IHdyaXRl YmFjayBpZiBub25lIHVuZGVyd2F5CiAgKiBAc2I6IHRoZSBzdXBlcmJsb2NrCiAgKgotICogSW52 b2tlIHdyaXRlYmFja19pbm9kZXNfc2IgaWYgbm8gd3JpdGViYWNrIGlzIGN1cnJlbnRseSB1bmRl cndheS4KLSAqIFJldHVybnMgMSBpZiB3cml0ZWJhY2sgd2FzIHN0YXJ0ZWQsIDAgaWYgbm90Lgor ICogSW52b2tlIHdyaXRlYmFja19pbm9kZXNfc2IgaWYgbm8gd3JpdGViYWNrIGlzIGN1cnJlbnRs eSB1bmRlcndheQorICogYW5kIG5vIG9uZSBlbHNlIGhvbGRzIHRoZSBzX3Vtb3VudCBsb2NrLiAg UmV0dXJucyAxIGlmIHdyaXRlYmFjaworICogd2FzIHN0YXJ0ZWQsIDAgaWYgbm90LgogICovCiBp bnQgd3JpdGViYWNrX2lub2Rlc19zYl9pZl9pZGxlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7 CiAJaWYgKCF3cml0ZWJhY2tfaW5fcHJvZ3Jlc3Moc2ItPnNfYmRpKSkgewotCQlkb3duX3JlYWQo JnNiLT5zX3Vtb3VudCk7Ci0JCXdyaXRlYmFja19pbm9kZXNfc2Ioc2IpOwotCQl1cF9yZWFkKCZz Yi0+c191bW91bnQpOwotCQlyZXR1cm4gMTsKLQl9IGVsc2UKLQkJcmV0dXJuIDA7CisJCWlmIChk b3duX3JlYWRfdHJ5bG9jaygmc2ItPnNfdW1vdW50KSkgeworCQkJd3JpdGViYWNrX2lub2Rlc19z YihzYik7CisJCQl1cF9yZWFkKCZzYi0+c191bW91bnQpOworCQkJcmV0dXJuIDE7CisJCX0KKwl9 CisJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKHdyaXRlYmFja19pbm9kZXNfc2JfaWZfaWRs ZSk7CiAKIC8qKgotICogd3JpdGViYWNrX2lub2Rlc19zYl9pZl9pZGxlCS0Jc3RhcnQgd3JpdGVi YWNrIGlmIG5vbmUgdW5kZXJ3YXkKKyAqIHdyaXRlYmFja19pbm9kZXNfc2JfbnJfaWZfaWRsZQkt CXN0YXJ0IHdyaXRlYmFjayBpZiBub25lIHVuZGVyd2F5CiAgKiBAc2I6IHRoZSBzdXBlcmJsb2Nr CiAgKiBAbnI6IHRoZSBudW1iZXIgb2YgcGFnZXMgdG8gd3JpdGUKICAqCi0gKiBJbnZva2Ugd3Jp dGViYWNrX2lub2Rlc19zYiBpZiBubyB3cml0ZWJhY2sgaXMgY3VycmVudGx5IHVuZGVyd2F5Lgot ICogUmV0dXJucyAxIGlmIHdyaXRlYmFjayB3YXMgc3RhcnRlZCwgMCBpZiBub3QuCisgKiBJbnZv a2Ugd3JpdGViYWNrX2lub2Rlc19zYiBpZiBubyB3cml0ZWJhY2sgaXMgY3VycmVudGx5IHVuZGVy d2F5CisgKiBhbmQgbm8gb25lIGVsc2UgaG9sZHMgdGhlIHNfdW1vdW50IGxvY2suICBSZXR1cm5z IDEgaWYgd3JpdGViYWNrCisgKiB3YXMgc3RhcnRlZCwgMCBpZiBub3QuCiAgKi8KIGludCB3cml0 ZWJhY2tfaW5vZGVzX3NiX25yX2lmX2lkbGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCQkg ICB1bnNpZ25lZCBsb25nIG5yKQogewogCWlmICghd3JpdGViYWNrX2luX3Byb2dyZXNzKHNiLT5z X2JkaSkpIHsKLQkJZG93bl9yZWFkKCZzYi0+c191bW91bnQpOwotCQl3cml0ZWJhY2tfaW5vZGVz X3NiX25yKHNiLCBucik7Ci0JCXVwX3JlYWQoJnNiLT5zX3Vtb3VudCk7Ci0JCXJldHVybiAxOwot CX0gZWxzZQotCQlyZXR1cm4gMDsKKwkJaWYgKGRvd25fcmVhZF90cnlsb2NrKCZzYi0+c191bW91 bnQpKSB7CisJCQl3cml0ZWJhY2tfaW5vZGVzX3NiX25yKHNiLCBucik7CisJCQl1cF9yZWFkKCZz Yi0+c191bW91bnQpOworCQkJcmV0dXJuIDE7CisJCX0KKwl9CisJcmV0dXJuIDA7CiB9CiBFWFBP UlRfU1lNQk9MKHdyaXRlYmFja19pbm9kZXNfc2JfbnJfaWZfaWRsZSk7CiAKZGlmZiAtLWdpdCBh L2ZzL3F1b3RhL3F1b3RhLmMgYi9mcy9xdW90YS9xdW90YS5jCmluZGV4IGIzNGJkYjIuLjk5M2Nl MjIgMTAwNjQ0Ci0tLSBhL2ZzL3F1b3RhL3F1b3RhLmMKKysrIGIvZnMvcXVvdGEvcXVvdGEuYwpA QCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgaW50IGNoZWNrX3F1b3RhY3RsX3Blcm1pc3Npb24oc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHR5cGUsIGludCBjbWQsCiAKIHN0YXRpYyB2b2lkIHF1 b3RhX3N5bmNfb25lKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmFyZykKIHsKLQlpZiAo c2ItPnNfcWNvcCAmJiBzYi0+c19xY29wLT5xdW90YV9zeW5jKQorCWlmIChzYi0+c19xY29wICYm IHNiLT5zX3Fjb3AtPnF1b3RhX3N5bmMgJiYgIXZmc19pc19mcm96ZW4oc2IpKQogCQlzYi0+c19x Y29wLT5xdW90YV9zeW5jKHNiLCAqKGludCAqKWFyZywgMSk7CiB9CiAKQEAgLTM2Niw2ICszNjYs MTggQEAgU1lTQ0FMTF9ERUZJTkU0KHF1b3RhY3RsLCB1bnNpZ25lZCBpbnQsIGNtZCwgY29uc3Qg Y2hhciBfX3VzZXIgKiwgc3BlY2lhbCwKIAlpZiAoSVNfRVJSKHNiKSkKIAkJcmV0dXJuIFBUUl9F UlIoc2IpOwogCisJLyoKKwkgKiBJdCdzIG5vdCBjbGVhciB3aGljaCBxdW90YSBmdW5jdGlvbnMg bWF5IHdyaXRlIHRvIHRoZSBmaWxlCisJICogc3lzdGVtIChhbGw/KS4gIENoZWNrIGZvciBhIGZy b3plbiBmcyBhbmQgYmFpbCBvdXQgbm93LgorCSAqLworCWlmICh2ZnNfaXNfZnJvemVuKHNiKSkg eworCQlkcm9wX3N1cGVyKHNiKTsKKwkJLyogWFhYIFNob3VsZCBxdW90YWN0bF9ibG9jaygpIGVy cm9yIHBhdGggZG8gdGhpcyB0b28/ICovCisJCWlmIChwYXRocCAmJiAhSVNfRVJSKHBhdGhwKSkK KwkJCXBhdGhfcHV0KHBhdGhwKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisKIAlyZXQgPSBkb19x dW90YWN0bChzYiwgdHlwZSwgY21kcywgaWQsIGFkZHIsIHBhdGhwKTsKIAogCWRyb3Bfc3VwZXIo c2IpOwpkaWZmIC0tZ2l0IGEvZnMvc3VwZXIuYyBiL2ZzL3N1cGVyLmMKaW5kZXggM2Y1NmEyNi4u MTFlZjk3OCAxMDA2NDQKLS0tIGEvZnMvc3VwZXIuYworKysgYi9mcy9zdXBlci5jCkBAIC01MjYs NiArNTI2LDEwIEBAIHZvaWQgc3luY19zdXBlcnModm9pZCkKICAqCiAgKglTY2FucyB0aGUgc3Vw ZXJibG9jayBsaXN0IGFuZCBjYWxscyBnaXZlbiBmdW5jdGlvbiwgcGFzc2luZyBpdAogICoJbG9j a2VkIHN1cGVyYmxvY2sgYW5kIGdpdmVuIGFyZ3VtZW50LgorICoKKyAqCU5vdGU6IElmIEBmIGlz IGdvaW5nIHRvIHdyaXRlIHRvIHRoZSBzdXBlcmJsb2NrLCBpdCBtdXN0IGZpcnN0CisgKgljaGVj ayBpZiB0aGUgZmlsZSBzeXN0ZW0gaXMgZnJvemVuICh2aWEgdmZzX2lzX2Zyb3plbihzYikpIGFu ZAorICoJcmVmdXNlIHRvIHdyaXRlIGlmIHNvLgogICovCiB2b2lkIGl0ZXJhdGVfc3VwZXJzKHZv aWQgKCpmKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqKSwgdm9pZCAqYXJnKQogewpAQCAt NTYxLDYgKzU2NSwxMCBAQCB2b2lkIGl0ZXJhdGVfc3VwZXJzKHZvaWQgKCpmKShzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKiwgdm9pZCAqKSwgdm9pZCAqYXJnKQogICoKICAqCVNjYW5zIHRoZSBzdXBlcmJs b2NrIGxpc3QgYW5kIGNhbGxzIGdpdmVuIGZ1bmN0aW9uLCBwYXNzaW5nIGl0CiAgKglsb2NrZWQg c3VwZXJibG9jayBhbmQgZ2l2ZW4gYXJndW1lbnQuCisgKgorICoJTm90ZTogSWYgQGYgaXMgZ29p bmcgdG8gd3JpdGUgdG8gdGhlIHN1cGVyYmxvY2ssIGl0IG11c3QgZmlyc3QKKyAqCWNoZWNrIGlm IHRoZSBmaWxlIHN5c3RlbSBpcyBmcm96ZW4gKHZpYSB2ZnNfaXNfZnJvemVuKHNiKSkgYW5kCisg KglyZWZ1c2UgdG8gd3JpdGUgaWYgc28uCiAgKi8KIHZvaWQgaXRlcmF0ZV9zdXBlcnNfdHlwZShz dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwKIAl2b2lkICgqZikoc3RydWN0IHN1cGVyX2Js b2NrICosIHZvaWQgKiksIHZvaWQgKmFyZykKQEAgLTU5NSw2ICs2MDMsMTAgQEAgRVhQT1JUX1NZ TUJPTChpdGVyYXRlX3N1cGVyc190eXBlKTsKICAqCQogICoJU2NhbnMgdGhlIHN1cGVyYmxvY2sg bGlzdCBhbmQgZmluZHMgdGhlIHN1cGVyYmxvY2sgb2YgdGhlIGZpbGUgc3lzdGVtCiAgKgltb3Vu dGVkIG9uIHRoZSBkZXZpY2UgZ2l2ZW4uICVOVUxMIGlzIHJldHVybmVkIGlmIG5vIG1hdGNoIGlz IGZvdW5kLgorICoKKyAqCU5vdGU6IElmIGNhbGxlciBpcyBnb2luZyB0byB3cml0ZSB0byB0aGUg c3VwZXJibG9jaywgaXQgbXVzdCBmaXJzdAorICoJY2hlY2sgaWYgdGhlIGZpbGUgc3lzdGVtIGlz IGZyb3plbiAodmlhIHZmc19pc19mcm96ZW4oc2IpKSBhbmQKKyAqCXJlZnVzZSB0byB3cml0ZSBp ZiBzby4KICAqLwogCiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmdldF9zdXBlcihzdHJ1Y3QgYmxvY2tf ZGV2aWNlICpiZGV2KQpAQCAtMTEyNyw2ICsxMTM5LDIzIEBAIG91dDoKICAqIFN5bmNzIHRoZSBz dXBlciB0byBtYWtlIHN1cmUgdGhlIGZpbGVzeXN0ZW0gaXMgY29uc2lzdGVudCBhbmQgY2FsbHMg dGhlIGZzJ3MKICAqIGZyZWV6ZV9mcy4gIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhpcyB3aXRob3V0 IGZpcnN0IHRoYXdpbmcgdGhlIGZzIHdpbGwgcmV0dXJuCiAgKiAtRUJVU1kuCisgKgorICogRHVy aW5nIHRoaXMgZnVuY3Rpb24sIHNiLT5zX2Zyb3plbiBnb2VzIHRocm91Z2ggdGhlc2UgdmFsdWVz OgorICoKKyAqIFNCX1VORlJPWkVOOiBGaWxlIHN5c3RlbSBpcyBub3JtYWwsIGFsbCB3cml0ZXMg cHJvZ3Jlc3MgYXMgdXN1YWwuCisgKgorICogU0JfRlJFRVpFX1dSSVRFOiBUaGUgZmlsZSBzeXN0 ZW0gaXMgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgZnJvemVuCisgKiBhbmQgb3V0LXN0YW5kaW5n IHdyaXRlcyBhcmUgYmVpbmcgd3JpdHRlbiBvdXQuICBXcml0ZXMgdGhhdAorICogY29tcGxldGUg aW4tcHJvY2VzcyB3cml0ZXMgc2hvdWxkIGJlIHBlcm1pdHRlZCBidXQgbmV3IG9uZXMgc2hvdWxk CisgKiBiZSBibG9ja2VkLgorICoKKyAqIFNCX0ZSRUVaRV9UUkFOUzogVGhlIGZpbGUgc3lzdGVt IGlzIGZyb3plbi4gIE5vIHdyaXRlcyBhcmUKKyAqIHBlcm1pdHRlZCB0byBhbnkgcGFydC4KKyAq CisgKiBzYi0+c19mcm96ZW4gaXMgcHJvdGVjdGVkIGJ5IHNiLT5zX3Vtb3VudC4gIEFkZGl0aW9u YWxseSwKKyAqIFNCX0ZSRUVaRV9XUklURSBpcyBvbmx5IHRlbXBvcmFyaWx5IHNldCBkdXJpbmcg ZnJlZXplL3RoYXcgd2hpbGUKKyAqIGhvbGRpbmcgc2ItPnNfdW1vdW50IGZvciB3cml0aW5nLCBz byBhbnkgb3RoZXIgY2FsbGVycyBob2xkaW5nCisgKiBzYi0+c191bW91bnQgd2lsbCBuZXZlciBz ZWUgdGhpcyBzdGF0ZS4KICAqLwogaW50IGZyZWV6ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKQogewpkaWZmIC0tZ2l0IGEvZnMvc3luYy5jIGIvZnMvc3luYy5jCmluZGV4IGM5OGE3NDcu LmRiMTViMTEgMTAwNjQ0Ci0tLSBhL2ZzL3N5bmMuYworKysgYi9mcy9zeW5jLmMKQEAgLTY4LDcg KzY4LDcgQEAgaW50IHN5bmNfZmlsZXN5c3RlbShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCS8q CiAJICogTm8gcG9pbnQgaW4gc3luY2luZyBvdXQgYW55dGhpbmcgaWYgdGhlIGZpbGVzeXN0ZW0g aXMgcmVhZC1vbmx5LgogCSAqLwotCWlmIChzYi0+c19mbGFncyAmIE1TX1JET05MWSkKKwlpZiAo KHNiLT5zX2ZsYWdzICYgTVNfUkRPTkxZKSAmJiAhdmZzX2lzX2Zyb3plbihzYikpCiAJCXJldHVy biAwOwogCiAJcmV0ID0gX19zeW5jX2ZpbGVzeXN0ZW0oc2IsIDApOwpAQCAtODAsNyArODAsNyBA QCBFWFBPUlRfU1lNQk9MX0dQTChzeW5jX2ZpbGVzeXN0ZW0pOwogCiBzdGF0aWMgdm9pZCBzeW5j X29uZV9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICphcmcpCiB7Ci0JaWYgKCEoc2It PnNfZmxhZ3MgJiBNU19SRE9OTFkpKQorCWlmICghKHNiLT5zX2ZsYWdzICYgTVNfUkRPTkxZKSAm JiAhdmZzX2lzX2Zyb3plbihzYikpCiAJCV9fc3luY19maWxlc3lzdGVtKHNiLCAqKGludCAqKWFy Zyk7CiB9CiAvKgpAQCAtMTM2LDcgKzEzNiw3IEBAIFNZU0NBTExfREVGSU5FMShzeW5jZnMsIGlu dCwgZmQpCiB7CiAJc3RydWN0IGZpbGUgKmZpbGU7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYjsK LQlpbnQgcmV0OworCWludCByZXQgPSAwOwogCWludCBmcHV0X25lZWRlZDsKIAogCWZpbGUgPSBm Z2V0X2xpZ2h0KGZkLCAmZnB1dF9uZWVkZWQpOwpAQCAtMTQ1LDcgKzE0NSw4IEBAIFNZU0NBTExf REVGSU5FMShzeW5jZnMsIGludCwgZmQpCiAJc2IgPSBmaWxlLT5mX2RlbnRyeS0+ZF9zYjsKIAog CWRvd25fcmVhZCgmc2ItPnNfdW1vdW50KTsKLQlyZXQgPSBzeW5jX2ZpbGVzeXN0ZW0oc2IpOwor CWlmICghKHNiLT5zX2ZsYWdzICYgTVNfUkRPTkxZKSAmJiAhdmZzX2lzX2Zyb3plbihzYikpCisJ CXJldCA9IHN5bmNfZmlsZXN5c3RlbShzYik7CiAJdXBfcmVhZCgmc2ItPnNfdW1vdW50KTsKIAog CWZwdXRfbGlnaHQoZmlsZSwgZnB1dF9uZWVkZWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9mcy5oIGIvaW5jbHVkZS9saW51eC9mcy5oCmluZGV4IGYyM2JjYjcuLmQyM2FiNGYgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ZzLmgKQEAgLTE0 NTcsNyArMTQ1Nyw3IEBAIGV4dGVybiB2b2lkIHBydW5lX2RjYWNoZV9zYihzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCBpbnQgbnJfdG9fc2Nhbik7CiBleHRlcm4gc3RydWN0IHRpbWVzcGVjIGN1cnJl bnRfZnNfdGltZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIAogLyoKLSAqIFNuYXBzaG90dGlu ZyBzdXBwb3J0LgorICogU25hcHNob3R0aW5nIHN1cHBvcnQuICBTZWUgZnJlZXplX3N1cGVyKCkg Zm9yIGRvY3VtZW50YXRpb24uCiAgKi8KIGVudW0gewogCVNCX1VORlJPWkVOID0gMCwKQEAgLTE0 NjgsNiArMTQ2OCwxMCBAQCBlbnVtIHsKICNkZWZpbmUgdmZzX2NoZWNrX2Zyb3plbihzYiwgbGV2 ZWwpIFwKIAl3YWl0X2V2ZW50KChzYiktPnNfd2FpdF91bmZyb3plbiwgKChzYiktPnNfZnJvemVu IDwgKGxldmVsKSkpCiAKK3N0YXRpYyBpbmxpbmUgaW50IHZmc19pc19mcm96ZW4oc3RydWN0IHN1 cGVyX2Jsb2NrICpzYikgeworCXJldHVybiBzYi0+c19mcm96ZW4gPT0gU0JfRlJFRVpFX1RSQU5T OworfQorCiAvKgogICogdW50aWwgVkZTIHRyYWNrcyB1c2VyIG5hbWVzcGFjZXMgZm9yIGlub2Rl cywganVzdCBtYWtlIGFsbCBmaWxlcwogICogYmVsb25nIHRvIGluaXRfdXNlcl9ucwo= --0016e656ad12ea69ab04acc9cc20--