From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC v2] locking/lockdep: Don't bunch up all flush_workqueue callers into a single completion cross-release context Date: Fri, 13 Oct 2017 16:42:28 +0100 Message-ID: <20171013154228.25884-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 786776EB60 for ; Fri, 13 Oct 2017 15:42:37 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id l1so1136441wrc.1 for ; Fri, 13 Oct 2017 08:42:37 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Peter Zijlstra , Daniel Vetter , boqun.feng@gmail.com, david@fromorbit.com, linux-kernel@vger.kernel.org, byungchul.park@lge.com, oleg@redhat.com, Tejun Heo , Thomas Gleixner , Linus Torvalds , johannes@sipsolutions.net List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkl0IGxvb2tz IGxpa2UgYWxsIGNvbXBsZXRpb25zIGFzIGNyZWF0ZWQgYnkgZmx1c2hfd29ya3F1ZXVlIG1hcApp bnRvIGEgc2luZ2xlIGxvY2sgY2xhc3Mgd2hpY2ggY3JlYXRlcyBsb2NrZGVwIGZhbHNlIHBvc2l0 aXZlcy4KCkV4YW1wbGUgb2YgYSBmYWxzZSBwb3NpdGl2ZToKCiBbICAgMjAuODA1MzE1XSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIFsgICAy MC44MDUzMTZdIFdBUk5JTkc6IHBvc3NpYmxlIGNpcmN1bGFyIGxvY2tpbmcgZGVwZW5kZW5jeSBk ZXRlY3RlZAogWyAgIDIwLjgwNTMxOV0gNC4xNC4wLXJjNC1DSS1DSV9EUk1fMzIyNSsgIzEgVGFp bnRlZDogRyAgICAgVQogWyAgIDIwLjgwNTMyMF0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBbICAgMjAuODA1MzIyXSBrd29ya2VyLzY6MUgv MTQzOCBpcyB0cnlpbmcgdG8gYWNxdWlyZSBsb2NrOgogWyAgIDIwLjgwNTMyNF0gICgmbW0tPm1t YXBfc2VtKXsrKysrfSwgYXQ6IFs8ZmZmZmZmZmZhMDFjOGUwMT5dIF9faTkxNV9nZW1fdXNlcnB0 cl9nZXRfcGFnZXNfd29ya2VyKzB4MTQxLzB4MjQwIFtpOTE1XQogWyAgIDIwLjgwNTM1NV0gYnV0 IG5vdyBpbiByZWxlYXNlIGNvbnRleHQgb2YgYSBjcm9zc2xvY2sgYWNxdWlyZWQgYXQgdGhlIGZv bGxvd2luZzoKIFsgICAyMC44MDUzNTddICAoKGNvbXBsZXRlKSZ0aGlzX2ZsdXNoZXIuZG9uZSl7 Ky4rLn0sIGF0OiBbPGZmZmZmZmZmODE5MGIwNmQ+XSB3YWl0X2Zvcl9jb21wbGV0aW9uKzB4MWQv MHgyMAogWyAgIDIwLjgwNTM2M10gd2hpY2ggbG9jayBhbHJlYWR5IGRlcGVuZHMgb24gdGhlIG5l dyBsb2NrLgogWyAgIDIwLjgwNTM2NV0gIHRoZSBleGlzdGluZyBkZXBlbmRlbmN5IGNoYWluIChp biByZXZlcnNlIG9yZGVyKSBpczoKIFsgICAyMC44MDUzNjddIC0+ICMxICgoY29tcGxldGUpJnRo aXNfZmx1c2hlci5kb25lKXsrLisufToKIFsgICAyMC44MDUzNzJdICAgICAgICBfX2xvY2tfYWNx dWlyZSsweDE0MjAvMHgxNWUwCiBbICAgMjAuODA1Mzc0XSAgICAgICAgbG9ja19hY3F1aXJlKzB4 YjAvMHgyMDAKIFsgICAyMC44MDUzNzZdICAgICAgICB3YWl0X2Zvcl9jb21tb24rMHg1OC8weDIx MAogWyAgIDIwLjgwNTM3OF0gICAgICAgIHdhaXRfZm9yX2NvbXBsZXRpb24rMHgxZC8weDIwCiBb ICAgMjAuODA1MzgxXSAgICAgICAgZmx1c2hfd29ya3F1ZXVlKzB4MWFmLzB4NTQwCiBbICAgMjAu ODA1NDAwXSAgICAgICAgaTkxNV9nZW1fdXNlcnB0cl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0 KzB4MTNjLzB4MTUwIFtpOTE1XQogWyAgIDIwLjgwNTQwNF0gICAgICAgIF9fbW11X25vdGlmaWVy X2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQrMHg3Ni8weGMwCiBbICAgMjAuODA1NDA2XSAgICAgICAg dW5tYXBfdm1hcysweDdkLzB4YTAKIFsgICAyMC44MDU0MDhdICAgICAgICB1bm1hcF9yZWdpb24r MHhhZS8weDExMAogWyAgIDIwLjgwNTQxMF0gICAgICAgIGRvX211bm1hcCsweDI3Ni8weDNmMAog WyAgIDIwLjgwNTQxMV0gICAgICAgIHZtX211bm1hcCsweDY3LzB4OTAKIFsgICAyMC44MDU0MTNd ICAgICAgICBTeVNfbXVubWFwKzB4ZS8weDIwCiBbICAgMjAuODA1NDE1XSAgICAgICAgZW50cnlf U1lTQ0FMTF82NF9mYXN0cGF0aCsweDFjLzB4YjEKIFsgICAyMC44MDU0MTZdIC0+ICMwICgmbW0t Pm1tYXBfc2VtKXsrKysrfToKIFsgICAyMC44MDU0MTldICAgICAgICBkb3duX3JlYWQrMHgzZS8w eDcwCiBbICAgMjAuODA1NDM1XSAgICAgICAgX19pOTE1X2dlbV91c2VycHRyX2dldF9wYWdlc193 b3JrZXIrMHgxNDEvMHgyNDAgW2k5MTVdCiBbICAgMjAuODA1NDM4XSAgICAgICAgcHJvY2Vzc19v bmVfd29yaysweDIzMy8weDY2MAogWyAgIDIwLjgwNTQ0MF0gICAgICAgIHdvcmtlcl90aHJlYWQr MHg0ZS8weDNiMAogWyAgIDIwLjgwNTQ0MV0gICAgICAgIGt0aHJlYWQrMHgxNTIvMHgxOTAKIFsg ICAyMC44MDU0NDJdIG90aGVyIGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6CiBb ICAgMjAuODA1NDQ1XSAgUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW8gYnkgY3Jvc3Ns b2NrOgogWyAgIDIwLjgwNTQ0N10gICAgICAgIENQVTAgICAgICAgICAgICAgICAgICAgIENQVTEK IFsgICAyMC44MDU0NDhdICAgICAgICAtLS0tICAgICAgICAgICAgICAgICAgICAtLS0tCiBbICAg MjAuODA1NDQ5XSAgIGxvY2soJm1tLT5tbWFwX3NlbSk7CiBbICAgMjAuODA1NDUxXSAgIGxvY2so KGNvbXBsZXRlKSZ0aGlzX2ZsdXNoZXIuZG9uZSk7CiBbICAgMjAuODA1NDUzXSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9jaygmbW0tPm1tYXBfc2VtKTsKIFsgICAyMC44MDU0NTVd ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmxvY2soKGNvbXBsZXRlKSZ0aGlzX2Zs dXNoZXIuZG9uZSk7CiBbICAgMjAuODA1NDU3XSAqKiogREVBRExPQ0sgKioqCiBbICAgMjAuODA1 NDYwXSAyIGxvY2tzIGhlbGQgYnkga3dvcmtlci82OjFILzE0Mzg6CiBbICAgMjAuODA1NDYxXSAg IzA6ICAoJigmcG9vbC0+bG9jayktPnJsb2NrKXstLi0ufSwgYXQ6IFs8ZmZmZmZmZmY4MTA5Yzk0 Yz5dIHByb2Nlc3Nfb25lX3dvcmsrMHgyZGMvMHg2NjAKIFsgICAyMC44MDU0NjVdICAjMTogICgm eC0+d2FpdCMxMCl7Li4uLn0sIGF0OiBbPGZmZmZmZmZmODEwY2Q2OWQ+XSBjb21wbGV0ZSsweDFk LzB4NjAKIFsgICAyMC44MDU0NjldIHN0YWNrIGJhY2t0cmFjZToKIFsgICAyMC44MDU0NzJdIENQ VTogNiBQSUQ6IDE0MzggQ29tbToga3dvcmtlci82OjFIIFRhaW50ZWQ6IEcgICAgIFUgICAgICAg ICAgNC4xNC4wLXJjNC1DSS1DSV9EUk1fMzIyNSsgIzEKIFsgICAyMC44MDU0NzRdIEhhcmR3YXJl IG5hbWU6IE1TSSBNUy03OTI0L1o5N00tRzQzKE1TLTc5MjQpLCBCSU9TIFYxLjEyIDAyLzE1LzIw MTYKIFsgICAyMC44MDU0ODBdIENhbGwgVHJhY2U6CiBbICAgMjAuODA1NDgzXSAgZHVtcF9zdGFj aysweDY4LzB4OWYKIFsgICAyMC44MDU0ODZdICBwcmludF9jaXJjdWxhcl9idWcrMHgyMzUvMHgz YzAKIFsgICAyMC44MDU0ODhdICA/IEhBUkRJUlFfdmVyYm9zZSsweDEwLzB4MTAKIFsgICAyMC44 MDU0OTBdICBjaGVja19wcmV2X2FkZCsweDQzMC8weDg0MAogWyAgIDIwLjgwNTQ5Ml0gID8gcmV0 X2Zyb21fZm9yaysweDI3LzB4NDAKIFsgICAyMC44MDU0OTRdICBsb2NrX2NvbW1pdF9jcm9zc2xv Y2srMHgzZWUvMHg2NjAKIFsgICAyMC44MDU0OTZdICA/IGxvY2tfY29tbWl0X2Nyb3NzbG9jaysw eDNlZS8weDY2MAogWyAgIDIwLjgwNTQ5OF0gIGNvbXBsZXRlKzB4MjkvMHg2MAogWyAgIDIwLjgw NTUwMF0gIHB3cV9kZWNfbnJfaW5fZmxpZ2h0KzB4OWMvMHhhMAogWyAgIDIwLjgwNTUwMl0gID8g X3Jhd19zcGluX2xvY2tfaXJxKzB4NDAvMHg1MAogWyAgIDIwLjgwNTUwNF0gIHByb2Nlc3Nfb25l X3dvcmsrMHgzMzUvMHg2NjAKIFsgICAyMC44MDU1MDZdICB3b3JrZXJfdGhyZWFkKzB4NGUvMHgz YjAKIFsgICAyMC44MDU1MDhdICBrdGhyZWFkKzB4MTUyLzB4MTkwCiBbICAgMjAuODA1NTA5XSAg PyBwcm9jZXNzX29uZV93b3JrKzB4NjYwLzB4NjYwCiBbICAgMjAuODA1NTExXSAgPyBrdGhyZWFk X2NyZWF0ZV9vbl9ub2RlKzB4NDAvMHg0MAogWyAgIDIwLjgwNTUxM10gIHJldF9mcm9tX2Zvcmsr MHgyNy8weDQwCgpTb2x1dGlvbiBoZXJlIGlzIGlzIHRvIGNyZWF0ZSBhIGxvY2tkZXAgbWFwIGZv ciBjb21wbGV0aW9ucwp0b2dldGhlciB3aXRoIHRoZSB3b3JrcXVldWUgb2JqZWN0LCBhbmQgYWxs b3cgdGhlIGNvbXBsZXRpb25zIHRvCmJlIGluaXRpYWxpemVkIHdpdGggYW4gZXh0ZXJuYWwgKHBv aW50ZXIpIGxvY2tkZXAgbWFwLiBUaGlzIG1hcAppcyB0aGVuIHVzZWQgb3ZlciB0aGUgYnVpbHQt aW4gbG9ja2RlcF9tYXAgc3RydWN0dXJlLgoKVGhpcyB3YXkgdGhlIGNvbXBsZXRpb24gY3Jvc3Mt cmVsZWFzZSBjb250ZXh0IGlzIHRpZWQgd2l0aCBpdCdzCnBhcmVudCB3b3JrcXVldWUgYW5kIHNo b3VsZCBzdGlsbCBjYXRjaCBhbGwgaXNzdWVzIHdpdGhvdXQgYmVpbmcKc3VzY2VwdGlibGUgdG8g ZmFsc2UgcG9zaXRpdmVzLgoKdjI6IFNpbXBsaWZ5IGJ5IGFsd2F5cyBoYXZpbmcgYSB2YWxpZCBt YXAgcG9pbnRlci4gKENocmlzIFdpbHNvbikKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ CkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiBUZWp1biBIZW8gPHRqQGtlcm5l bC5vcmc+CkNjOiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+ CkNjOiBQZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CkNjOiBUaG9tYXMgR2xl aXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4KQ2M6IGJvcXVuLmZlbmdAZ21haWwuY29tCkNjOiBi eXVuZ2NodWwucGFya0BsZ2UuY29tCkNjOiBkYXZpZEBmcm9tb3JiaXQuY29tCkNjOiBqb2hhbm5l c0BzaXBzb2x1dGlvbnMubmV0CkNjOiBvbGVnQHJlZGhhdC5jb20KLS0KQm9ycm93ZWQgdGhlIENj IGxpc3QgZnJvbSBhIHJlY2VudCBmaXggaW4gdGhlIHNhbWUgYXJlYS4KQXBvbG9naWVzIGlmIGl0 IGlzIHRvbyB3aWRlLgotLS0KIGluY2x1ZGUvbGludXgvY29tcGxldGlvbi5oIHwgNDYgKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC93 b3JrcXVldWUuaCAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrLS0tLQoga2VybmVsL3dvcmtx dWV1ZS5jICAgICAgICAgfCAyMCArKysrKysrKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCA2NCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2NvbXBsZXRpb24uaCBiL2luY2x1ZGUvbGludXgvY29tcGxldGlvbi5oCmluZGV4IGNh ZTU0MDAwMjJhMy4uZGU0ZWUzMmVkZTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBs ZXRpb24uaAorKysgYi9pbmNsdWRlL2xpbnV4L2NvbXBsZXRpb24uaApAQCAtMjksMjQgKzI5LDQx IEBAIHN0cnVjdCBjb21wbGV0aW9uIHsKIAl1bnNpZ25lZCBpbnQgZG9uZTsKIAl3YWl0X3F1ZXVl X2hlYWRfdCB3YWl0OwogI2lmZGVmIENPTkZJR19MT0NLREVQX0NPTVBMRVRJT05TCisJc3RydWN0 IGxvY2tkZXBfbWFwX2Nyb3NzICpwbWFwOwogCXN0cnVjdCBsb2NrZGVwX21hcF9jcm9zcyBtYXA7 CiAjZW5kaWYKIH07CiAKKy8qKgorICogaW5pdF9jb21wbGV0aW9uIC0gSW5pdGlhbGl6ZSBhIGR5 bmFtaWNhbGx5IGFsbG9jYXRlZCBjb21wbGV0aW9uCisgKiBAeDogIHBvaW50ZXIgdG8gY29tcGxl dGlvbiBzdHJ1Y3R1cmUgdGhhdCBpcyB0byBiZSBpbml0aWFsaXplZAorICoKKyAqIFRoaXMgaW5s aW5lIGZ1bmN0aW9uIHdpbGwgaW5pdGlhbGl6ZSBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcGxl dGlvbgorICogc3RydWN0dXJlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0X2NvbXBs ZXRpb24oc3RydWN0IGNvbXBsZXRpb24gKngpCit7CisJeC0+ZG9uZSA9IDA7CisjaWZkZWYgQ09O RklHX0xPQ0tERVBfQ09NUExFVElPTlMKKwl4LT5wbWFwID0gJngtPm1hcDsKKyNlbmRpZgorCWlu aXRfd2FpdHF1ZXVlX2hlYWQoJngtPndhaXQpOworfQorCiAjaWZkZWYgQ09ORklHX0xPQ0tERVBf Q09NUExFVElPTlMKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb21wbGV0ZV9hY3F1aXJlKHN0cnVjdCBj b21wbGV0aW9uICp4KQogewotCWxvY2tfYWNxdWlyZV9leGNsdXNpdmUoKHN0cnVjdCBsb2NrZGVw X21hcCAqKSZ4LT5tYXAsIDAsIDAsIE5VTEwsIF9SRVRfSVBfKTsKKwlsb2NrX2FjcXVpcmVfZXhj bHVzaXZlKChzdHJ1Y3QgbG9ja2RlcF9tYXAgKil4LT5wbWFwLCAwLCAwLCBOVUxMLCBfUkVUX0lQ Xyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb21wbGV0ZV9yZWxlYXNlKHN0cnVjdCBjb21w bGV0aW9uICp4KQogewotCWxvY2tfcmVsZWFzZSgoc3RydWN0IGxvY2tkZXBfbWFwICopJngtPm1h cCwgMCwgX1JFVF9JUF8pOworCWxvY2tfcmVsZWFzZSgoc3RydWN0IGxvY2tkZXBfbWFwICopeC0+ cG1hcCwgMCwgX1JFVF9JUF8pOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgY29tcGxldGVfcmVs ZWFzZV9jb21taXQoc3RydWN0IGNvbXBsZXRpb24gKngpCiB7Ci0JbG9ja19jb21taXRfY3Jvc3Ns b2NrKChzdHJ1Y3QgbG9ja2RlcF9tYXAgKikmeC0+bWFwKTsKKwlsb2NrX2NvbW1pdF9jcm9zc2xv Y2soKHN0cnVjdCBsb2NrZGVwX21hcCAqKXgtPnBtYXApOwogfQogCiAjZGVmaW5lIGluaXRfY29t cGxldGlvbih4KQkJCQkJCVwKQEAgLTU3LDggKzc0LDE2IEBAIGRvIHsJCQkJCQkJCQlcCiAJCQkm X19rZXksIDApOwkJCQkJXAogCV9faW5pdF9jb21wbGV0aW9uKHgpOwkJCQkJCVwKIH0gd2hpbGUg KDApCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2NvbXBsZXRpb25fbWFwKHN0cnVjdCBjb21w bGV0aW9uICp4LAorCQkJCSAgICAgICBzdHJ1Y3QgbG9ja2RlcF9tYXBfY3Jvc3MgKm1hcCkKK3sK KwlfX2luaXRfY29tcGxldGlvbih4KTsKKwl4LT5wbWFwID0gbWFwOworfQogI2Vsc2UKICNkZWZp bmUgaW5pdF9jb21wbGV0aW9uKHgpIF9faW5pdF9jb21wbGV0aW9uKHgpCisjZGVmaW5lIGluaXRf Y29tcGxldGlvbl9tYXAoeCwgbSkgX19pbml0X2NvbXBsZXRpb24oeCkKIHN0YXRpYyBpbmxpbmUg dm9pZCBjb21wbGV0ZV9hY3F1aXJlKHN0cnVjdCBjb21wbGV0aW9uICp4KSB7fQogc3RhdGljIGlu bGluZSB2b2lkIGNvbXBsZXRlX3JlbGVhc2Uoc3RydWN0IGNvbXBsZXRpb24gKngpIHt9CiBzdGF0 aWMgaW5saW5lIHZvaWQgY29tcGxldGVfcmVsZWFzZV9jb21taXQoc3RydWN0IGNvbXBsZXRpb24g KngpIHt9CkBAIC02Niw3ICs5MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb21wbGV0ZV9yZWxl YXNlX2NvbW1pdChzdHJ1Y3QgY29tcGxldGlvbiAqeCkge30KIAogI2lmZGVmIENPTkZJR19MT0NL REVQX0NPTVBMRVRJT05TCiAjZGVmaW5lIENPTVBMRVRJT05fSU5JVElBTElaRVIod29yaykgXAot CXsgMCwgX19XQUlUX1FVRVVFX0hFQURfSU5JVElBTElaRVIoKHdvcmspLndhaXQpLCBcCisJeyAw LCBfX1dBSVRfUVVFVUVfSEVBRF9JTklUSUFMSVpFUigod29yaykud2FpdCksICYod29yaykubWFw LCBcCiAJU1RBVElDX0NST1NTX0xPQ0tERVBfTUFQX0lOSVQoIihjb21wbGV0ZSkiICN3b3JrLCAm KHdvcmspKSB9CiAjZWxzZQogI2RlZmluZSBDT01QTEVUSU9OX0lOSVRJQUxJWkVSKHdvcmspIFwK QEAgLTEwNywxOSArMTMyLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvbXBsZXRlX3JlbGVhc2Vf Y29tbWl0KHN0cnVjdCBjb21wbGV0aW9uICp4KSB7fQogI2VuZGlmCiAKIC8qKgotICogaW5pdF9j b21wbGV0aW9uIC0gSW5pdGlhbGl6ZSBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBjb21wbGV0aW9u Ci0gKiBAeDogIHBvaW50ZXIgdG8gY29tcGxldGlvbiBzdHJ1Y3R1cmUgdGhhdCBpcyB0byBiZSBp bml0aWFsaXplZAotICoKLSAqIFRoaXMgaW5saW5lIGZ1bmN0aW9uIHdpbGwgaW5pdGlhbGl6ZSBh IGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcGxldGlvbgotICogc3RydWN0dXJlLgotICovCi1zdGF0 aWMgaW5saW5lIHZvaWQgX19pbml0X2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24gKngpCi17 Ci0JeC0+ZG9uZSA9IDA7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmeC0+d2FpdCk7Ci19Ci0KLS8q KgogICogcmVpbml0X2NvbXBsZXRpb24gLSByZWluaXRpYWxpemUgYSBjb21wbGV0aW9uIHN0cnVj dHVyZQogICogQHg6ICBwb2ludGVyIHRvIGNvbXBsZXRpb24gc3RydWN0dXJlIHRoYXQgaXMgdG8g YmUgcmVpbml0aWFsaXplZAogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvd29ya3F1ZXVl LmggYi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oCmluZGV4IDFjNDk0MzFmMzEyMS4uYzZkODAx ZDQ3NTM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oCisrKyBiL2luY2x1 ZGUvbGludXgvd29ya3F1ZXVlLmgKQEAgLTM3Myw3ICszNzMsOSBAQCBleHRlcm4gc3RydWN0IHdv cmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9mcmVlemFibGVfcG93ZXJfZWZmaWNpZW50X3dxOwogCiBl eHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKgogX19hbGxvY193b3JrcXVldWVfa2V5KGNv bnN0IGNoYXIgKmZtdCwgdW5zaWduZWQgaW50IGZsYWdzLCBpbnQgbWF4X2FjdGl2ZSwKLQlzdHJ1 Y3QgbG9ja19jbGFzc19rZXkgKmtleSwgY29uc3QgY2hhciAqbG9ja19uYW1lLCAuLi4pIF9fcHJp bnRmKDEsIDYpOworCQkgICAgICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSwgY29uc3QgY2hh ciAqbG9ja19uYW1lLAorCQkgICAgICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmNfa2V5LCBjb25z dCBjaGFyICpjX2xvY2tfbmFtZSwKKwkJICAgICAgLi4uKSBfX3ByaW50ZigxLCA4KTsKIAogLyoq CiAgKiBhbGxvY193b3JrcXVldWUgLSBhbGxvY2F0ZSBhIHdvcmtxdWV1ZQpAQCAtMzkyLDcgKzM5 NCwyMSBAQCBfX2FsbG9jX3dvcmtxdWV1ZV9rZXkoY29uc3QgY2hhciAqZm10LCB1bnNpZ25lZCBp bnQgZmxhZ3MsIGludCBtYXhfYWN0aXZlLAogICogUkVUVVJOUzoKICAqIFBvaW50ZXIgdG8gdGhl IGFsbG9jYXRlZCB3b3JrcXVldWUgb24gc3VjY2VzcywgJU5VTEwgb24gZmFpbHVyZS4KICAqLwot I2lmZGVmIENPTkZJR19MT0NLREVQCisjaWYgZGVmaW5lZChDT05GSUdfTE9DS0RFUF9DT01QTEVU SU9OUykKKyNkZWZpbmUgYWxsb2Nfd29ya3F1ZXVlKGZtdCwgZmxhZ3MsIG1heF9hY3RpdmUsIGFy Z3MuLi4pCQlcCisoewkJCQkJCQkJCVwKKwlzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5IF9f a2V5LCBfX2Nfa2V5OwkJCVwKKwljb25zdCBjaGFyICpfX2xvY2tfbmFtZSwgKl9fY19sb2NrX25h bWU7CQkJXAorCQkJCQkJCQkJXAorCV9fbG9ja19uYW1lID0gI2ZtdCNhcmdzOwkJCQkJXAorCV9f Y19sb2NrX25hbWUgPSAjZm10I2FyZ3MiYyI7CQkJCQlcCisJCQkJCQkJCQlcCisJX19hbGxvY193 b3JrcXVldWVfa2V5KChmbXQpLCAoZmxhZ3MpLCAobWF4X2FjdGl2ZSksCQlcCisJCQkgICAgICAm X19rZXksIF9fbG9ja19uYW1lLAkJCVwKKwkJCSAgICAgICZfX2Nfa2V5LCBfX2NfbG9ja19uYW1l LAkJCVwKKwkJCSAgICAgICMjYXJncyk7CQkJCQlcCit9KQorI2VsaWYgZGVmaW5lZChDT05GSUdf TE9DS0RFUCkKICNkZWZpbmUgYWxsb2Nfd29ya3F1ZXVlKGZtdCwgZmxhZ3MsIG1heF9hY3RpdmUs IGFyZ3MuLi4pCQlcCiAoewkJCQkJCQkJCVwKIAlzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5 IF9fa2V5OwkJCQlcCkBAIC00MDEsMTIgKzQxNywxNCBAQCBfX2FsbG9jX3dvcmtxdWV1ZV9rZXko Y29uc3QgY2hhciAqZm10LCB1bnNpZ25lZCBpbnQgZmxhZ3MsIGludCBtYXhfYWN0aXZlLAogCV9f bG9ja19uYW1lID0gI2ZtdCNhcmdzOwkJCQkJXAogCQkJCQkJCQkJXAogCV9fYWxsb2Nfd29ya3F1 ZXVlX2tleSgoZm10KSwgKGZsYWdzKSwgKG1heF9hY3RpdmUpLAkJXAotCQkJICAgICAgJl9fa2V5 LCBfX2xvY2tfbmFtZSwgIyNhcmdzKTsJCVwKKwkJCSAgICAgICZfX2tleSwgX19sb2NrX25hbWUs CQkJXAorCQkJICAgICAgTlVMTCwgTlVMTCwJCQkJXAorCQkJICAgICAgIyNhcmdzKTsJCQkJCVwK IH0pCiAjZWxzZQogI2RlZmluZSBhbGxvY193b3JrcXVldWUoZm10LCBmbGFncywgbWF4X2FjdGl2 ZSwgYXJncy4uLikJCVwKIAlfX2FsbG9jX3dvcmtxdWV1ZV9rZXkoKGZtdCksIChmbGFncyksICht YXhfYWN0aXZlKSwJCVwKLQkJCSAgICAgIE5VTEwsIE5VTEwsICMjYXJncykKKwkJCSAgICAgIE5V TEwsIE5VTEwsIE5VTEwsIE5VTEwsICMjYXJncykKICNlbmRpZgogCiAvKioKZGlmZiAtLWdpdCBh L2tlcm5lbC93b3JrcXVldWUuYyBiL2tlcm5lbC93b3JrcXVldWUuYwppbmRleCA2NGQwZWRmNDI4 ZjguLmMyNjdmYTdhZDFlYyAxMDA2NDQKLS0tIGEva2VybmVsL3dvcmtxdWV1ZS5jCisrKyBiL2tl cm5lbC93b3JrcXVldWUuYwpAQCAtMjYzLDYgKzI2Myw5IEBAIHN0cnVjdCB3b3JrcXVldWVfc3Ry dWN0IHsKICNpZmRlZiBDT05GSUdfTE9DS0RFUAogCXN0cnVjdCBsb2NrZGVwX21hcAlsb2NrZGVw X21hcDsKICNlbmRpZgorI2lmZGVmIENPTkZJR19MT0NLREVQX0NPTVBMRVRJT05TCisJc3RydWN0 IGxvY2tkZXBfbWFwX2Nyb3NzIGNvbXBsZXRpb25fbG9ja2RlcF9tYXA7CisjZW5kaWYKIAljaGFy CQkJbmFtZVtXUV9OQU1FX0xFTl07IC8qIEk6IHdvcmtxdWV1ZSBuYW1lICovCiAKIAkvKgpAQCAt MjYxMSwxMyArMjYxNCwxNCBAQCB2b2lkIGZsdXNoX3dvcmtxdWV1ZShzdHJ1Y3Qgd29ya3F1ZXVl X3N0cnVjdCAqd3EpCiAJc3RydWN0IHdxX2ZsdXNoZXIgdGhpc19mbHVzaGVyID0gewogCQkubGlz dCA9IExJU1RfSEVBRF9JTklUKHRoaXNfZmx1c2hlci5saXN0KSwKIAkJLmZsdXNoX2NvbG9yID0g LTEsCi0JCS5kb25lID0gQ09NUExFVElPTl9JTklUSUFMSVpFUl9PTlNUQUNLKHRoaXNfZmx1c2hl ci5kb25lKSwKIAl9OwogCWludCBuZXh0X2NvbG9yOwogCiAJaWYgKFdBUk5fT04oIXdxX29ubGlu ZSkpCiAJCXJldHVybjsKIAorCWluaXRfY29tcGxldGlvbl9tYXAoJnRoaXNfZmx1c2hlci5kb25l LCAmd3EtPmNvbXBsZXRpb25fbG9ja2RlcF9tYXApOworCiAJbG9ja19tYXBfYWNxdWlyZSgmd3Et PmxvY2tkZXBfbWFwKTsKIAlsb2NrX21hcF9yZWxlYXNlKCZ3cS0+bG9ja2RlcF9tYXApOwogCkBA IC0zOTYyLDExICszOTY2LDExIEBAIHN0YXRpYyBpbnQgd3FfY2xhbXBfbWF4X2FjdGl2ZShpbnQg bWF4X2FjdGl2ZSwgdW5zaWduZWQgaW50IGZsYWdzLAogCXJldHVybiBjbGFtcF92YWwobWF4X2Fj dGl2ZSwgMSwgbGltKTsKIH0KIAotc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKl9fYWxsb2Nfd29y a3F1ZXVlX2tleShjb25zdCBjaGFyICpmbXQsCi0JCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MsCi0JCQkJCSAgICAgICBpbnQgbWF4X2FjdGl2ZSwKLQkJCQkJICAgICAgIHN0cnVjdCBsb2Nr X2NsYXNzX2tleSAqa2V5LAotCQkJCQkgICAgICAgY29uc3QgY2hhciAqbG9ja19uYW1lLCAuLi4p CitzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqCitfX2FsbG9jX3dvcmtxdWV1ZV9rZXkoY29uc3Qg Y2hhciAqZm10LCB1bnNpZ25lZCBpbnQgZmxhZ3MsIGludCBtYXhfYWN0aXZlLAorCQkgICAgICBz dHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSwgY29uc3QgY2hhciAqbG9ja19uYW1lLAorCQkgICAg ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmNfa2V5LCBjb25zdCBjaGFyICpjX2xvY2tfbmFtZSwK KwkJICAgICAgLi4uKQogewogCXNpemVfdCB0Ymxfc2l6ZSA9IDA7CiAJdmFfbGlzdCBhcmdzOwpA QCAtNDAwMSw3ICs0MDA1LDcgQEAgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKl9fYWxsb2Nfd29y a3F1ZXVlX2tleShjb25zdCBjaGFyICpmbXQsCiAJCQlnb3RvIGVycl9mcmVlX3dxOwogCX0KIAot CXZhX3N0YXJ0KGFyZ3MsIGxvY2tfbmFtZSk7CisJdmFfc3RhcnQoYXJncywgY19sb2NrX25hbWUp OwogCXZzbnByaW50Zih3cS0+bmFtZSwgc2l6ZW9mKHdxLT5uYW1lKSwgZm10LCBhcmdzKTsKIAl2 YV9lbmQoYXJncyk7CiAKQEAgLTQwMTksNiArNDAyMyw4IEBAIHN0cnVjdCB3b3JrcXVldWVfc3Ry dWN0ICpfX2FsbG9jX3dvcmtxdWV1ZV9rZXkoY29uc3QgY2hhciAqZm10LAogCUlOSVRfTElTVF9I RUFEKCZ3cS0+bWF5ZGF5cyk7CiAKIAlsb2NrZGVwX2luaXRfbWFwKCZ3cS0+bG9ja2RlcF9tYXAs IGxvY2tfbmFtZSwga2V5LCAwKTsKKwlsb2NrZGVwX2luaXRfbWFwX2Nyb3NzbG9jaygoc3RydWN0 IGxvY2tkZXBfbWFwICopJndxLT5jb21wbGV0aW9uX2xvY2tkZXBfbWFwLAorCQkJCSAgIGNfbG9j a19uYW1lLCBjX2tleSwgMCk7CiAJSU5JVF9MSVNUX0hFQUQoJndxLT5saXN0KTsKIAogCWlmIChh bGxvY19hbmRfbGlua19wd3FzKHdxKSA8IDApCi0tIAoyLjkuNQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==