From owner-svn-src-head@freebsd.org Sun Feb 5 18:59:06 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7E01CD27EB; Sun, 5 Feb 2017 18:59:06 +0000 (UTC) (envelope-from jason.harmening@gmail.com) Received: from mail-ot0-x243.google.com (mail-ot0-x243.google.com [IPv6:2607:f8b0:4003:c0f::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9253117D; Sun, 5 Feb 2017 18:59:06 +0000 (UTC) (envelope-from jason.harmening@gmail.com) Received: by mail-ot0-x243.google.com with SMTP id 65so8085641otq.2; Sun, 05 Feb 2017 10:59:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=YOsWwwnUpNul4B1X0J/EorgqK2kCN9Zt6pRCnysFF2I=; b=vajO0pzKWxgAZNFS99eYkhyw4oIweyNw090vRUjFNnMUaY2rBwROo+I6Gp40mMpL5f iOuhYcEVdeBMk9xN2kRVV5x6jLAHVbmltR4MqAJWA/SCQsO6tme+2ERENJCGnmjarA8A hmXFphpBw/OWFQj3fwcA+vtQf4QZIZ8f6R3o4eDv3dkk+Hj/tewi+AqXO9nP8+bsY+dr 2BApT3pN6s5+RVFwKsfy3BZxMkuNRyfi+mMIBIvPce0Toxx9KY6yaPkO17ansf19KzJa 3/9g8vaImkaN0x/Ou+9tPGYds/cDJSeqSvaOgLCBMQg/6zj4rh3ycpzmy1jTTU9zCKre M0zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=YOsWwwnUpNul4B1X0J/EorgqK2kCN9Zt6pRCnysFF2I=; b=OpWjyND3xURHt1sAMKvptgBKetKoDqZwq1vK1kdmHBDsCMfRiCbX1c4d65EihliLMP TJsOJYibT3L/BfMv4uLLlpfQtJ0CVHNRCLR5Pp93vCSKA83ODtHlV4CghuYaxvSa95Kw RE5LrVcmaFOBniqVoyMd5u6g00wlbU/Ntjxi9F4eOlwLdTvBvdWpB1A/uFiqWlbyiZao n0z7zvamuASaszvc3GISEzUTXNqrXfBzCeg97ULsv/m9VL+cNcD/245WEUy7r9l+jR0v RlbUE95yDz1H/pyjRn+LOFMfYnXtX5ZQ0RY2gI4Bn55aNZEruoyRI3S65iaMYIbCZNXQ WY8g== X-Gm-Message-State: AIkVDXLbwqkHGXx9SwvULs51sYjzNWAahwbJ3BqjrhVbLCr0e3P9mumZBDZDEaBWBFdGDhKaHJXvkmbOzT7sFg== X-Received: by 10.157.27.208 with SMTP id v16mr3066558otv.200.1486321145841; Sun, 05 Feb 2017 10:59:05 -0800 (PST) MIME-Version: 1.0 Received: by 10.157.51.7 with HTTP; Sun, 5 Feb 2017 10:59:05 -0800 (PST) In-Reply-To: References: <201702010332.v113WnYf041362@repo.freebsd.org> <20170203231238.0675c289@kan> <8523aaa5-6c30-9f9f-40f0-fdf82cdf1669@pix.net> <6bf86e46-9714-c7e9-8d47-845761e2de24@FreeBSD.org> <8a2f7f7d-14c3-8e75-e060-fc41213ce389@FreeBSD.org> From: Jason Harmening Date: Sun, 5 Feb 2017 10:59:05 -0800 Message-ID: Subject: Re: svn commit: r313037 - in head/sys: amd64/include kern mips/include net powerpc/include sparc64/include To: Svatopluk Kraus Cc: Andreas Tobler , Kurt Lidl , Alexander Kabaev , "Jason A. Harmening" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Ed Maste , Justin Hibbits Content-Type: multipart/mixed; boundary=001a1141481aebafb20547cd1b65 X-Mailman-Approved-At: Mon, 06 Feb 2017 00:34:57 +0000 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Feb 2017 18:59:07 -0000 --001a1141481aebafb20547cd1b65 Content-Type: text/plain; charset=UTF-8 Actually attaching the patch this time (**** gmail client) On Sun, Feb 5, 2017 at 10:58 AM, Jason Harmening wrote: > Hmm, it's a good idea to consider the possibility of a barrier issue. It > wouldn't be the first time we've had such a problem on a weakly-ordered > architecture. That said, I don't see a problem in this case. > smp_rendezvous_cpus() takes a spinlock and then issues > atomic_store_rel_int() to ensure the rendezvous params are visible to > other cpus. The latter corresponds to lwsync on powerpc, which AFAIK > should be sufficient to ensure visibility of prior stores. > > For now I'm going with the simpler explanation that I made a bad > assumption in the powerpc get_pcpu() and there is some context in which > the read of sprg0 doesn't return a consistent pointer value. Unfortunately > I don't see where that might be right now. > > On the mips side, Kurt/Alexander can you test the attached patch? It > contains a simple fix to ensure get_pcpu() returns the consistent per-cpu > pointer. > > On Sat, Feb 4, 2017 at 1:34 PM, Svatopluk Kraus wrote: > >> Probably not related. But when I took short look to the patch to see >> what could go wrong, I walked into the following comment in >> _rm_wlock(): "Assumes rm->rm_writecpus update is visible on other CPUs >> before rm_cleanIPI is called." There is no explicit barrier to ensure >> it. However, there might be some barriers inside of >> smp_rendezvous_cpus(). I have no idea what could happened if this >> assumption is not met. Note that rm_cleanIPI() is affected by the >> patch. >> >> >> >> On Sat, Feb 4, 2017 at 9:39 PM, Jason Harmening >> wrote: >> > Can you post an example of such panic? Only 2 MI pieces were changed, >> > netisr and rmlock. I haven't seen problems on my own amd64/i386/arm >> testing >> > of this, so a backtrace might help to narrow down the cause. >> > >> > On Sat, Feb 4, 2017 at 12:22 PM, Andreas Tobler >> > wrote: >> >> >> >> On 04.02.17 20:54, Jason Harmening wrote: >> >>> >> >>> I suspect this broke rmlocks for mips because the rmlock >> implementation >> >>> takes the address of the per-CPU pc_rm_queue when building tracker >> >>> lists. That address may be later accessed from another CPU and will >> >>> then translate to the wrong physical region if the address was taken >> >>> relative to the globally-constant pcpup VA used on mips. >> >>> >> >>> Regardless, for mips get_pcpup() should be implemented as >> >>> pcpu_find(curcpu) since returning an address that may mean something >> >>> different depending on the CPU seems like a big POLA violation if >> >>> nothing else. >> >>> >> >>> I'm more concerned about the report of powerpc breakage. For powerpc >> we >> >>> simply take each pcpu pointer from the pc_allcpu list (which is the >> same >> >>> value stored in the cpuid_to_pcpu array) and pass it through the >> ap_pcpu >> >>> global to each AP's startup code, which then stores it in sprg0. It >> >>> should be globally unique and won't have the variable-translation >> issues >> >>> seen on mips. Andreas, are you certain this change was responsible >> the >> >>> breakage you saw, and was it the same sort of hang observed on mips? >> >> >> >> >> >> I'm really sure. 313036 booted fine, allowed me to execute heavy >> >> compilation jobs, np. 313037 on the other side gave me various >> patterns of >> >> panics. During startup, but I also succeeded to get into multiuser and >> then >> >> the panic happend during port building. >> >> >> >> I have no deeper inside where pcpu data is used. Justin mentioned >> netisr? >> >> >> >> Andreas >> >> >> > >> > > --001a1141481aebafb20547cd1b65 Content-Type: text/plain; charset=US-ASCII; name="patch_get_pcpu.txt" Content-Disposition: attachment; filename="patch_get_pcpu.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iyt18bxx0 SW5kZXg6IHN5cy9hbWQ2NC9pbmNsdWRlL3BjcHUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYW1kNjQv aW5jbHVkZS9wY3B1LmgJKHJldmlzaW9uIDMxMzE5MykKKysrIHN5cy9hbWQ2NC9pbmNsdWRlL3Bj cHUuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsNyBAQAogCiBleHRlcm4gc3RydWN0IHBj cHUgKnBjcHVwOwogCisjZGVmaW5lCWdldF9wY3B1KCkJCShwY3B1cCkKICNkZWZpbmUJUENQVV9H RVQobWVtYmVyKQkocGNwdXAtPnBjXyAjIyBtZW1iZXIpCiAjZGVmaW5lCVBDUFVfQUREKG1lbWJl ciwgdmFsKQkocGNwdXAtPnBjXyAjIyBtZW1iZXIgKz0gKHZhbCkpCiAjZGVmaW5lCVBDUFVfSU5D KG1lbWJlcikJUENQVV9BREQobWVtYmVyLCAxKQpAQCAtMjAzLDYgKzIwNCwxNSBAQAogCX0JCQkJ CQkJCVwKIH0KIAorI2RlZmluZQlnZXRfcGNwdSgpIF9fZXh0ZW5zaW9uX18gKHsJCQkJCVwKKwlz dHJ1Y3QgcGNwdSAqX19wYzsJCQkJCQlcCisJCQkJCQkJCQlcCisJX19hc20gX192b2xhdGlsZSgi bW92cSAlJWdzOiUxLCUwIgkJCQlcCisJICAgIDogIj1yIiAoX19wYykJCQkJCQlcCisJICAgIDog Im0iICgqKHN0cnVjdCBwY3B1ICopKF9fcGNwdV9vZmZzZXQocGNfcHJ2c3BhY2UpKSkpOwlcCisJ X19wYzsJCQkJCQkJCVwKK30pCisKICNkZWZpbmUJUENQVV9HRVQobWVtYmVyKQlfX1BDUFVfR0VU KHBjXyAjIyBtZW1iZXIpCiAjZGVmaW5lCVBDUFVfQUREKG1lbWJlciwgdmFsKQlfX1BDUFVfQURE KHBjXyAjIyBtZW1iZXIsIHZhbCkKICNkZWZpbmUJUENQVV9JTkMobWVtYmVyKQlfX1BDUFVfSU5D KHBjXyAjIyBtZW1iZXIpCkluZGV4OiBzeXMva2Vybi9rZXJuX3JtbG9jay5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy9rZXJuL2tlcm5fcm1sb2NrLmMJKHJldmlzaW9uIDMxMzE5MykKKysrIHN5cy9rZXJu L2tlcm5fcm1sb2NrLmMJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCQkgKi8K IAkJY3JpdGljYWxfZW50ZXIoKTsKIAkJdGQgPSBjdXJ0aHJlYWQ7Ci0JCXBjID0gcGNwdV9maW5k KGN1cmNwdSk7CisJCXBjID0gZ2V0X3BjcHUoKTsKIAkJZm9yIChxdWV1ZSA9IHBjLT5wY19ybV9x dWV1ZS5ybXFfbmV4dDsKIAkJICAgIHF1ZXVlICE9ICZwYy0+cGNfcm1fcXVldWU7IHF1ZXVlID0g cXVldWUtPnJtcV9uZXh0KSB7CiAJCQl0cmFja2VyID0gKHN0cnVjdCBybV9wcmlvdHJhY2tlciAq KXF1ZXVlOwpAQCAtMjU4LDcgKzI1OCw3IEBACiAJc3RydWN0IHJtbG9jayAqcm0gPSBhcmc7CiAJ c3RydWN0IHJtX3ByaW90cmFja2VyICp0cmFja2VyOwogCXN0cnVjdCBybV9xdWV1ZSAqcXVldWU7 Ci0JcGMgPSBwY3B1X2ZpbmQoY3VyY3B1KTsKKwlwYyA9IGdldF9wY3B1KCk7CiAKIAlmb3IgKHF1 ZXVlID0gcGMtPnBjX3JtX3F1ZXVlLnJtcV9uZXh0OyBxdWV1ZSAhPSAmcGMtPnBjX3JtX3F1ZXVl OwogCSAgICBxdWV1ZSA9IHF1ZXVlLT5ybXFfbmV4dCkgewpAQCAtMzU1LDcgKzM1NSw3IEBACiAJ c3RydWN0IHBjcHUgKnBjOwogCiAJY3JpdGljYWxfZW50ZXIoKTsKLQlwYyA9IHBjcHVfZmluZChj dXJjcHUpOworCXBjID0gZ2V0X3BjcHUoKTsKIAogCS8qIENoZWNrIGlmIHdlIGp1c3QgbmVlZCB0 byBkbyBhIHByb3BlciBjcml0aWNhbF9leGl0LiAqLwogCWlmICghQ1BVX0lTU0VUKHBjLT5wY19j cHVpZCwgJnJtLT5ybV93cml0ZWNwdXMpKSB7CkBAIC00MTYsNyArNDE2LDcgQEAKIAl9CiAKIAlj cml0aWNhbF9lbnRlcigpOwotCXBjID0gcGNwdV9maW5kKGN1cmNwdSk7CisJcGMgPSBnZXRfcGNw dSgpOwogCUNQVV9DTFIocGMtPnBjX2NwdWlkLCAmcm0tPnJtX3dyaXRlY3B1cyk7CiAJcm1fdHJh Y2tlcl9hZGQocGMsIHRyYWNrZXIpOwogCXNjaGVkX3BpbigpOwpAQCAtNjQxLDcgKzY0MSw3IEBA CiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmICghKHJtLT5sb2NrX29iamVjdC5sb19mbGFncyAmIExP X1JFQ1VSU0FCTEUpICYmICF0cnlsb2NrKSB7CiAJCWNyaXRpY2FsX2VudGVyKCk7Ci0JCUtBU1NF UlQocm1fdHJhY2tlcnNfcHJlc2VudChwY3B1X2ZpbmQoY3VyY3B1KSwgcm0sCisJCUtBU1NFUlQo cm1fdHJhY2tlcnNfcHJlc2VudChnZXRfcGNwdSgpLCBybSwKIAkJICAgIGN1cnRocmVhZCkgPT0g MCwKIAkJICAgICgicm1fcmxvY2s6IHJlY3Vyc2VkIG9uIG5vbi1yZWN1cnNpdmUgcm1sb2NrICVz IEAgJXM6JWRcbiIsCiAJCSAgICBybS0+bG9ja19vYmplY3QubG9fbmFtZSwgZmlsZSwgbGluZSkp OwpAQCAtNzcxLDcgKzc3MSw3IEBACiAJCX0KIAogCQljcml0aWNhbF9lbnRlcigpOwotCQljb3Vu dCA9IHJtX3RyYWNrZXJzX3ByZXNlbnQocGNwdV9maW5kKGN1cmNwdSksIHJtLCBjdXJ0aHJlYWQp OworCQljb3VudCA9IHJtX3RyYWNrZXJzX3ByZXNlbnQoZ2V0X3BjcHUoKSwgcm0sIGN1cnRocmVh ZCk7CiAJCWNyaXRpY2FsX2V4aXQoKTsKIAogCQlpZiAoY291bnQgPT0gMCkKQEAgLTc5Nyw3ICs3 OTcsNyBAQAogCQkJICAgIHJtLT5sb2NrX29iamVjdC5sb19uYW1lLCBmaWxlLCBsaW5lKTsKIAog CQljcml0aWNhbF9lbnRlcigpOwotCQljb3VudCA9IHJtX3RyYWNrZXJzX3ByZXNlbnQocGNwdV9m aW5kKGN1cmNwdSksIHJtLCBjdXJ0aHJlYWQpOworCQljb3VudCA9IHJtX3RyYWNrZXJzX3ByZXNl bnQoZ2V0X3BjcHUoKSwgcm0sIGN1cnRocmVhZCk7CiAJCWNyaXRpY2FsX2V4aXQoKTsKIAogCQlp ZiAoY291bnQgIT0gMCkKSW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvcGNwdS5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHN5cy9taXBzL2luY2x1ZGUvcGNwdS5oCShyZXZpc2lvbiAzMTMxOTMpCisrKyBzeXMvbWlw cy9pbmNsdWRlL3BjcHUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE3IEBACiAJc3Ry dWN0CXBtYXAJKnBjX2N1cnBtYXA7CQkvKiBwbWFwIG9mIGN1cnRocmVhZCAqLwlcCiAJdV9pbnQz Ml90CXBjX25leHRfYXNpZDsJCS8qIG5leHQgQVNJRCB0byBhbGxvYyAqLyBcCiAJdV9pbnQzMl90 CXBjX2FzaWRfZ2VuZXJhdGlvbjsJLyogY3VycmVudCBBU0lEIGdlbmVyYXRpb24gKi8gXAotCXVf aW50CQlwY19wZW5kaW5nX2lwaXM7CS8qIElQSXMgcGVuZGluZyB0byB0aGlzIENQVSAqLworCXVf aW50CQlwY19wZW5kaW5nX2lwaXM7CS8qIElQSXMgcGVuZGluZyB0byB0aGlzIENQVSAqLyBcCisJ c3RydWN0CXBjcHUJKnBjX3NlbGY7CQkvKiBnbG9iYWxseS11bmlxZSBzZWxmIHBvaW50ZXIgKi8K IAogI2lmZGVmCV9fbWlwc19uNjQKICNkZWZpbmUJUENQVV9NRF9NSVBTNjRfRklFTERTCQkJCQkJ XAogCVBDUFVfTURfQ09NTU9OX0ZJRUxEUwkJCQkJCVwKLQljaGFyCQlfX3BhZFs2MV0KKwljaGFy CQlfX3BhZFs1M10KICNlbHNlCiAjZGVmaW5lCVBDUFVfTURfTUlQUzMyX0ZJRUxEUwkJCQkJCVwK IAlQQ1BVX01EX0NPTU1PTl9GSUVMRFMJCQkJCQlcCi0JY2hhcgkJX19wYWRbMTkzXQorCWNoYXIJ CV9fcGFkWzE4OV0KICNlbmRpZgogCiAjaWZkZWYJX19taXBzX242NApAQCAtNjUsNiArNjYsMTMg QEAKIGV4dGVybiBzdHJ1Y3QgcGNwdSAqcGNwdXA7CiAjZGVmaW5lCVBDUFVQCXBjcHVwCiAKKy8q CisgKiBTaW5jZSB3ZSB1c2UgYSB3aXJlZCBUTEIgZW50cnkgdG8gbWFwIHRoZSBzYW1lIFZBIHRv IGEgZGlmZmVyZW50CisgKiBwaHlzaWNhbCBwYWdlIGZvciBlYWNoIENQVSwgZ2V0X3BjcHUoKSBt dXN0IHVzZSB0aGUgcGNfc2VsZgorICogZmllbGQgdG8gb2J0YWluIGEgZ2xvYmFsbHktdW5pcXVl IHBvaW50ZXIuCisgKi8KKyNkZWZpbmUJZ2V0X3BjcHUoKQkJKFBDUFVQLT5wY19zZWxmKQorCiAj ZGVmaW5lCVBDUFVfQUREKG1lbWJlciwgdmFsdWUpCShQQ1BVUC0+cGNfICMjIG1lbWJlciArPSAo dmFsdWUpKQogI2RlZmluZQlQQ1BVX0dFVChtZW1iZXIpCShQQ1BVUC0+cGNfICMjIG1lbWJlcikK ICNkZWZpbmUJUENQVV9JTkMobWVtYmVyKQlQQ1BVX0FERChtZW1iZXIsIDEpCkluZGV4OiBzeXMv bWlwcy9taXBzL21hY2hkZXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBzL21hY2hkZXAu YwkocmV2aXNpb24gMzEzMTkzKQorKysgc3lzL21pcHMvbWlwcy9tYWNoZGVwLmMJKHdvcmtpbmcg Y29weSkKQEAgLTQ3NSw2ICs0NzUsNyBAQAogCiAJcGNwdS0+cGNfbmV4dF9hc2lkID0gMTsKIAlw Y3B1LT5wY19hc2lkX2dlbmVyYXRpb24gPSAxOworCXBjcHUtPnBjX3NlbGYgPSBwY3B1OwogI2lm ZGVmIFNNUAogCWlmICgodm1fb2Zmc2V0X3QpcGNwdXAgPj0gVk1fTUlOX0tFUk5FTF9BRERSRVNT ICYmCiAJICAgICh2bV9vZmZzZXRfdClwY3B1cCA8PSBWTV9NQVhfS0VSTkVMX0FERFJFU1MpIHsK SW5kZXg6IHN5cy9uZXQvbmV0aXNyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldC9uZXRpc3IuYwko cmV2aXNpb24gMzEzMTkzKQorKysgc3lzL25ldC9uZXRpc3IuYwkod29ya2luZyBjb3B5KQpAQCAt MTI2OCw5ICsxMjY4LDcgQEAKIHN0YXRpYyB2b2lkCiBuZXRpc3JfaW5pdCh2b2lkICphcmcpCiB7 Ci0jaWZkZWYgRUFSTFlfQVBfU1RBUlRVUAogCXN0cnVjdCBwY3B1ICpwYzsKLSNlbmRpZgogCiAJ TkVUSVNSX0xPQ0tfSU5JVCgpOwogCWlmIChuZXRpc3JfbWF4dGhyZWFkcyA9PSAwIHx8IG5ldGlz cl9tYXh0aHJlYWRzIDwgLTEgKQpAQCAtMTMwOCw3ICsxMzA2LDggQEAKIAkJbmV0aXNyX3N0YXJ0 X3N3aShwYy0+cGNfY3B1aWQsIHBjKTsKIAl9CiAjZWxzZQotCW5ldGlzcl9zdGFydF9zd2koY3Vy Y3B1LCBwY3B1X2ZpbmQoY3VyY3B1KSk7CisJcGMgPSBnZXRfcGNwdSgpOworCW5ldGlzcl9zdGFy dF9zd2kocGMtPnBjX2NwdWlkLCBwYyk7CiAjZW5kaWYKIH0KIFNZU0lOSVQobmV0aXNyX2luaXQs IFNJX1NVQl9TT0ZUSU5UUiwgU0lfT1JERVJfRklSU1QsIG5ldGlzcl9pbml0LCBOVUxMKTsKSW5k ZXg6IHN5cy9wb3dlcnBjL2luY2x1ZGUvY3B1ZnVuYy5oCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9wb3dl cnBjL2luY2x1ZGUvY3B1ZnVuYy5oCShyZXZpc2lvbiAzMTMxOTMpCisrKyBzeXMvcG93ZXJwYy9p bmNsdWRlL2NwdWZ1bmMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw3IEBACiB9CiAK IHN0YXRpYyBfX2lubGluZSBzdHJ1Y3QgcGNwdSAqCi1wb3dlcnBjX2dldF9wY3B1cCh2b2lkKQor Z2V0X3BjcHUodm9pZCkKIHsKIAlzdHJ1Y3QgcGNwdSAqcmV0OwogCkluZGV4OiBzeXMvcG93ZXJw Yy9pbmNsdWRlL3BjcHUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvcG93ZXJwYy9pbmNsdWRlL3BjcHUu aAkocmV2aXNpb24gMzEzMTkzKQorKysgc3lzL3Bvd2VycGMvaW5jbHVkZS9wY3B1LmgJKHdvcmtp bmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQAogCiAjaWZkZWYgX0tFUk5FTAogCi0jZGVmaW5l IHBjcHVwCSgoc3RydWN0IHBjcHUgKikgcG93ZXJwY19nZXRfcGNwdXAoKSkKKyNkZWZpbmUgcGNw dXAJKGdldF9wY3B1KCkpCiAKIHN0YXRpYyBfX2lubGluZSBfX3B1cmUyIHN0cnVjdCB0aHJlYWQg KgogX19jdXJ0aHJlYWQodm9pZCkKSW5kZXg6IHN5cy9zcGFyYzY0L2luY2x1ZGUvcGNwdS5oCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHN5cy9zcGFyYzY0L2luY2x1ZGUvcGNwdS5oCShyZXZpc2lvbiAzMTMxOTMp CisrKyBzeXMvc3BhcmM2NC9pbmNsdWRlL3BjcHUuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiAr NzQsNyBAQAogcmVnaXN0ZXIgc3RydWN0IHBjYiAqY3VycGNiIF9fYXNtX18oX19YU1RSSU5HKFBD Ql9SRUcpKTsKIHJlZ2lzdGVyIHN0cnVjdCBwY3B1ICpwY3B1cCBfX2FzbV9fKF9fWFNUUklORyhQ Q1BVX1JFRykpOwogCisjZGVmaW5lCWdldF9wY3B1KCkJCShwY3B1cCkKICNkZWZpbmUJUENQVV9H RVQobWVtYmVyKQkocGNwdXAtPnBjXyAjIyBtZW1iZXIpCiAKIHN0YXRpYyBfX2lubGluZSBfX3B1 cmUyIHN0cnVjdCB0aHJlYWQgKgo= --001a1141481aebafb20547cd1b65--