From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Martin Subject: [PATCH v7 08/27] arm64/sve: Enable SVE state tracking for non-task contexts Date: Fri, 29 Mar 2019 13:00:33 +0000 Message-ID: <1553864452-15080-9-git-send-email-Dave.Martin@arm.com> References: <1553864452-15080-1-git-send-email-Dave.Martin@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id D41D24A420 for ; Fri, 29 Mar 2019 09:02:00 -0400 (EDT) Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id inwcSQnJWhRx for ; Fri, 29 Mar 2019 09:01:59 -0400 (EDT) Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 733A94A49F for ; Fri, 29 Mar 2019 09:01:58 -0400 (EDT) In-Reply-To: <1553864452-15080-1-git-send-email-Dave.Martin@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu To: kvmarm@lists.cs.columbia.edu Cc: Okamoto Takayuki , Christoffer Dall , Ard Biesheuvel , Marc Zyngier , Catalin Marinas , Will Deacon , Zhang Lei , Julien Grall , linux-arm-kernel@lists.infradead.org List-Id: kvmarm@lists.cs.columbia.edu VGhlIGN1cnJlbnQgRlBTSU1EL1NWRSBjb250ZXh0IGhhbmRsaW5nIHN1cHBvcnQgZm9yIG5vbi10 YXNrIChpLmUuLApLVk0gdmNwdSkgY29udGV4dHMgZG9lcyBub3QgdGFrZSBTVkUgaW50byBhY2Nv dW50LiAgVGhpcyBtZWFucyB0aGF0Cm9ubHkgdGFzayBjb250ZXh0cyBjYW4gc2FmZWx5IHVzZSBT VkUgYXQgcHJlc2VudC4KCkluIHByZXBhcmF0aW9uIGZvciBlbmFibGluZyBLVk0gZ3Vlc3RzIHRv IHVzZSBTVkUsIGl0IGlzIG5lY2Vzc2FyeQp0byBrZWVwIHRyYWNrIG9mIFNWRSBzdGF0ZSBmb3Ig bm9uLXRhc2sgY29udGV4dHMgdG9vLgoKVGhpcyBwYXRjaCBhZGRzIHRoZSBuZWNlc3Nhcnkgc3Vw cG9ydCwgcmVtb3ZpbmcgYXNzdW1wdGlvbnMgZnJvbQp0aGUgY29udGV4dCBzd2l0Y2ggY29kZSBh Ym91dCB0aGUgbG9jYXRpb24gb2YgdGhlIFNWRSBjb250ZXh0CnN0b3JhZ2UuCgpXaGVuIGJpbmRp bmcgYSB2Y3B1IGNvbnRleHQsIGl0cyB2ZWN0b3IgbGVuZ3RoIGlzIGFyYml0cmFyaWx5CnNwZWNp ZmllZCBhcyBTVkVfVkxfTUlOIGZvciBub3cuICBJbiBhbnkgY2FzZSwgYmVjYXVzZSBUSUZfU1ZF IGlzCnByZXNlbnRseSBjbGVhcmVkIGF0IHZjcHUgY29udGV4dCBiaW5kIHRpbWUsIHRoZSBzcGVj aWZpZWQgdmVjdG9yCmxlbmd0aCB3aWxsIG5vdCBiZSB1c2VkIGZvciBhbnl0aGluZyB5ZXQuICBJ biBsYXRlciBwYXRjaGVzIFRJRl9TVkUKd2lsbCBiZSBzZXQgaGVyZSBhcyBhcHByb3ByaWF0ZSwg YW5kIHRoZSBhcHByb3ByaWF0ZSBtYXhpbXVtIHZlY3RvcgpsZW5ndGggZm9yIHRoZSB2Y3B1IHdp bGwgYmUgcGFzc2VkIHdoZW4gYmluZGluZy4KClNpZ25lZC1vZmYtYnk6IERhdmUgTWFydGluIDxE YXZlLk1hcnRpbkBhcm0uY29tPgpSZXZpZXdlZC1ieTogQWxleCBCZW5uw6llIDxhbGV4LmJlbm5l ZUBsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJt LmNvbT4KVGVzdGVkLWJ5OiB6aGFuZy5sZWkgPHpoYW5nLmxlaUBqcC5mdWppdHN1LmNvbT4KLS0t CiBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Zwc2ltZC5oIHwgIDMgKystCiBhcmNoL2FybTY0L2tl cm5lbC9mcHNpbWQuYyAgICAgIHwgMjAgKysrKysrKysrKysrKysrLS0tLS0KIGFyY2gvYXJtNjQv a3ZtL2Zwc2ltZC5jICAgICAgICAgfCAgNSArKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVk ZS9hc20vZnBzaW1kLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Zwc2ltZC5oCmluZGV4IDk2 NGFkYzkuLmRmN2ExNDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZnBzaW1k LmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9mcHNpbWQuaApAQCAtNTYsNyArNTYsOCBA QCBleHRlcm4gdm9pZCBmcHNpbWRfcmVzdG9yZV9jdXJyZW50X3N0YXRlKHZvaWQpOwogZXh0ZXJu IHZvaWQgZnBzaW1kX3VwZGF0ZV9jdXJyZW50X3N0YXRlKHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0 ZSBjb25zdCAqc3RhdGUpOwogCiBleHRlcm4gdm9pZCBmcHNpbWRfYmluZF90YXNrX3RvX2NwdSh2 b2lkKTsKLWV4dGVybiB2b2lkIGZwc2ltZF9iaW5kX3N0YXRlX3RvX2NwdShzdHJ1Y3QgdXNlcl9m cHNpbWRfc3RhdGUgKnN0YXRlKTsKK2V4dGVybiB2b2lkIGZwc2ltZF9iaW5kX3N0YXRlX3RvX2Nw dShzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgKnN0YXRlLAorCQkJCSAgICAgdm9pZCAqc3ZlX3N0 YXRlLCB1bnNpZ25lZCBpbnQgc3ZlX3ZsKTsKIAogZXh0ZXJuIHZvaWQgZnBzaW1kX2ZsdXNoX3Rh c2tfc3RhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQpOwogZXh0ZXJuIHZvaWQgZnBzaW1k X2ZsdXNoX2NwdV9zdGF0ZSh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Zw c2ltZC5jIGIvYXJjaC9hcm02NC9rZXJuZWwvZnBzaW1kLmMKaW5kZXggYjIxOTc5NmEuLjhhOTNh ZmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jCisrKyBiL2FyY2gvYXJt NjQva2VybmVsL2Zwc2ltZC5jCkBAIC0xMjEsNiArMTIxLDggQEAKICAqLwogc3RydWN0IGZwc2lt ZF9sYXN0X3N0YXRlX3N0cnVjdCB7CiAJc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpzdDsKKwl2 b2lkICpzdmVfc3RhdGU7CisJdW5zaWduZWQgaW50IHN2ZV92bDsKIH07CiAKIHN0YXRpYyBERUZJ TkVfUEVSX0NQVShzdHJ1Y3QgZnBzaW1kX2xhc3Rfc3RhdGVfc3RydWN0LCBmcHNpbWRfbGFzdF9z dGF0ZSk7CkBAIC0yNDEsMTQgKzI0MywxNSBAQCBzdGF0aWMgdm9pZCB0YXNrX2Zwc2ltZF9sb2Fk KHZvaWQpCiAgKi8KIHZvaWQgZnBzaW1kX3NhdmUodm9pZCkKIHsKLQlzdHJ1Y3QgdXNlcl9mcHNp bWRfc3RhdGUgKnN0ID0gX190aGlzX2NwdV9yZWFkKGZwc2ltZF9sYXN0X3N0YXRlLnN0KTsKKwlz dHJ1Y3QgZnBzaW1kX2xhc3Rfc3RhdGVfc3RydWN0IGNvbnN0ICpsYXN0ID0KKwkJdGhpc19jcHVf cHRyKCZmcHNpbWRfbGFzdF9zdGF0ZSk7CiAJLyogc2V0IGJ5IGZwc2ltZF9iaW5kX3Rhc2tfdG9f Y3B1KCkgb3IgZnBzaW1kX2JpbmRfc3RhdGVfdG9fY3B1KCkgKi8KIAogCVdBUk5fT04oIWluX3Nv ZnRpcnEoKSAmJiAhaXJxc19kaXNhYmxlZCgpKTsKIAogCWlmICghdGVzdF90aHJlYWRfZmxhZyhU SUZfRk9SRUlHTl9GUFNUQVRFKSkgewogCQlpZiAoc3lzdGVtX3N1cHBvcnRzX3N2ZSgpICYmIHRl c3RfdGhyZWFkX2ZsYWcoVElGX1NWRSkpIHsKLQkJCWlmIChXQVJOX09OKHN2ZV9nZXRfdmwoKSAh PSBjdXJyZW50LT50aHJlYWQuc3ZlX3ZsKSkgeworCQkJaWYgKFdBUk5fT04oc3ZlX2dldF92bCgp ICE9IGxhc3QtPnN2ZV92bCkpIHsKIAkJCQkvKgogCQkJCSAqIENhbid0IHNhdmUgdGhlIHVzZXIg cmVncywgc28gY3VycmVudCB3b3VsZAogCQkJCSAqIHJlLWVudGVyIHVzZXIgd2l0aCBjb3JydXB0 IHN0YXRlLgpAQCAtMjU4LDkgKzI2MSwxMSBAQCB2b2lkIGZwc2ltZF9zYXZlKHZvaWQpCiAJCQkJ cmV0dXJuOwogCQkJfQogCi0JCQlzdmVfc2F2ZV9zdGF0ZShzdmVfcGZmcigmY3VycmVudC0+dGhy ZWFkKSwgJnN0LT5mcHNyKTsKKwkJCXN2ZV9zYXZlX3N0YXRlKChjaGFyICopbGFzdC0+c3ZlX3N0 YXRlICsKKwkJCQkJCXN2ZV9mZnJfb2Zmc2V0KGxhc3QtPnN2ZV92bCksCisJCQkJICAgICAgICZs YXN0LT5zdC0+ZnBzcik7CiAJCX0gZWxzZQotCQkJZnBzaW1kX3NhdmVfc3RhdGUoc3QpOworCQkJ ZnBzaW1kX3NhdmVfc3RhdGUobGFzdC0+c3QpOwogCX0KIH0KIApAQCAtMTAzNCw2ICsxMDM5LDgg QEAgdm9pZCBmcHNpbWRfYmluZF90YXNrX3RvX2NwdSh2b2lkKQogCQl0aGlzX2NwdV9wdHIoJmZw c2ltZF9sYXN0X3N0YXRlKTsKIAogCWxhc3QtPnN0ID0gJmN1cnJlbnQtPnRocmVhZC51dy5mcHNp bWRfc3RhdGU7CisJbGFzdC0+c3ZlX3N0YXRlID0gY3VycmVudC0+dGhyZWFkLnN2ZV9zdGF0ZTsK KwlsYXN0LT5zdmVfdmwgPSBjdXJyZW50LT50aHJlYWQuc3ZlX3ZsOwogCWN1cnJlbnQtPnRocmVh ZC5mcHNpbWRfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCiAJaWYgKHN5c3RlbV9zdXBwb3J0 c19zdmUoKSkgewpAQCAtMTA0Nyw3ICsxMDU0LDggQEAgdm9pZCBmcHNpbWRfYmluZF90YXNrX3Rv X2NwdSh2b2lkKQogCX0KIH0KIAotdm9pZCBmcHNpbWRfYmluZF9zdGF0ZV90b19jcHUoc3RydWN0 IHVzZXJfZnBzaW1kX3N0YXRlICpzdCkKK3ZvaWQgZnBzaW1kX2JpbmRfc3RhdGVfdG9fY3B1KHN0 cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqc3QsIHZvaWQgKnN2ZV9zdGF0ZSwKKwkJCSAgICAgIHVu c2lnbmVkIGludCBzdmVfdmwpCiB7CiAJc3RydWN0IGZwc2ltZF9sYXN0X3N0YXRlX3N0cnVjdCAq bGFzdCA9CiAJCXRoaXNfY3B1X3B0cigmZnBzaW1kX2xhc3Rfc3RhdGUpOwpAQCAtMTA1NSw2ICsx MDYzLDggQEAgdm9pZCBmcHNpbWRfYmluZF9zdGF0ZV90b19jcHUoc3RydWN0IHVzZXJfZnBzaW1k X3N0YXRlICpzdCkKIAlXQVJOX09OKCFpbl9zb2Z0aXJxKCkgJiYgIWlycXNfZGlzYWJsZWQoKSk7 CiAKIAlsYXN0LT5zdCA9IHN0OworCWxhc3QtPnN2ZV9zdGF0ZSA9IHN2ZV9zdGF0ZTsKKwlsYXN0 LT5zdmVfdmwgPSBzdmVfdmw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9m cHNpbWQuYyBiL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCmluZGV4IGFhYzc4MDguLjFjZjRmMDIg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCisrKyBiL2FyY2gvYXJtNjQva3Zt L2Zwc2ltZC5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5j bHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KICNpbmNsdWRlIDxsaW51eC9rdm1faG9zdC5oPgor I2luY2x1ZGUgPGFzbS9mcHNpbWQuaD4KICNpbmNsdWRlIDxhc20va3ZtX2FzbS5oPgogI2luY2x1 ZGUgPGFzbS9rdm1faG9zdC5oPgogI2luY2x1ZGUgPGFzbS9rdm1fbW11Lmg+CkBAIC04NSw3ICs4 Niw5IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9jdHhzeW5jX2ZwKHN0cnVjdCBrdm1fdmNwdSAqdmNw dSkKIAlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7CiAKIAlpZiAodmNwdS0+YXJjaC5m bGFncyAmIEtWTV9BUk02NF9GUF9FTkFCTEVEKSB7Ci0JCWZwc2ltZF9iaW5kX3N0YXRlX3RvX2Nw dSgmdmNwdS0+YXJjaC5jdHh0LmdwX3JlZ3MuZnBfcmVncyk7CisJCWZwc2ltZF9iaW5kX3N0YXRl X3RvX2NwdSgmdmNwdS0+YXJjaC5jdHh0LmdwX3JlZ3MuZnBfcmVncywKKwkJCQkJIE5VTEwsIFNW RV9WTF9NSU4pOworCiAJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl9GT1JFSUdOX0ZQU1RBVEUpOwog CQljbGVhcl90aHJlYWRfZmxhZyhUSUZfU1ZFKTsKIAl9Ci0tIAoyLjEuNAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdApr dm1hcm1AbGlzdHMuY3MuY29sdW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1 L21haWxtYW4vbGlzdGluZm8va3ZtYXJtCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D87BC43381 for ; Fri, 29 Mar 2019 13:03:45 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 381D8217F5 for ; Fri, 29 Mar 2019 13:03:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="A6eIbgVo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 381D8217F5 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zxUeVNNVLGBqsCoaQAnmLpqk9OvawGO5/YIQbDiPq3k=; b=A6eIbgVoGtC6d4 om4MgPVVnNn0i5OAmctsFmrnJnBqYYBCZjJhtGqbpsNsssrZBP0WSeHvtzdtuXgl7dIBzt3WviJX5 ZRV0431XJ2UV3y9BZZ9Whug11COfiwar/5PO7LpYZ3I3DZdklJ32dDjrmFZOHy6VVhBM1wPpSQmpy VEd4kEgvnGzI4bgTS5QEdkt38pyh+pSkDhVt6XbINFuhPjWjqvVqoHrsGcWq+2xOxYbjvACosAAsX p5uK633wtTpHFue92Eq2fjj9OWssuN0+fN548l5r+v378MksOrgfi+69BZyso7HlZey7byoDKS5v4 EvX0NJxGoT4RI0Tyb8Xw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h9rAa-0005ck-4l; Fri, 29 Mar 2019 13:03:40 +0000 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70] helo=foss.arm.com) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h9r8w-0003pk-8x for linux-arm-kernel@lists.infradead.org; Fri, 29 Mar 2019 13:02:02 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1D19F15BF; Fri, 29 Mar 2019 06:01:58 -0700 (PDT) Received: from e103592.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 2C5843F575; Fri, 29 Mar 2019 06:01:56 -0700 (PDT) From: Dave Martin To: kvmarm@lists.cs.columbia.edu Subject: [PATCH v7 08/27] arm64/sve: Enable SVE state tracking for non-task contexts Date: Fri, 29 Mar 2019 13:00:33 +0000 Message-Id: <1553864452-15080-9-git-send-email-Dave.Martin@arm.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1553864452-15080-1-git-send-email-Dave.Martin@arm.com> References: <1553864452-15080-1-git-send-email-Dave.Martin@arm.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190329_060158_562249_922167A9 X-CRM114-Status: GOOD ( 17.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Okamoto Takayuki , Christoffer Dall , Ard Biesheuvel , Marc Zyngier , Catalin Marinas , Will Deacon , Zhang Lei , Julien Grall , =?UTF-8?q?Alex=20Benn=C3=A9e?= , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhlIGN1cnJlbnQgRlBTSU1EL1NWRSBjb250ZXh0IGhhbmRsaW5nIHN1cHBvcnQgZm9yIG5vbi10 YXNrIChpLmUuLApLVk0gdmNwdSkgY29udGV4dHMgZG9lcyBub3QgdGFrZSBTVkUgaW50byBhY2Nv dW50LiAgVGhpcyBtZWFucyB0aGF0Cm9ubHkgdGFzayBjb250ZXh0cyBjYW4gc2FmZWx5IHVzZSBT VkUgYXQgcHJlc2VudC4KCkluIHByZXBhcmF0aW9uIGZvciBlbmFibGluZyBLVk0gZ3Vlc3RzIHRv IHVzZSBTVkUsIGl0IGlzIG5lY2Vzc2FyeQp0byBrZWVwIHRyYWNrIG9mIFNWRSBzdGF0ZSBmb3Ig bm9uLXRhc2sgY29udGV4dHMgdG9vLgoKVGhpcyBwYXRjaCBhZGRzIHRoZSBuZWNlc3Nhcnkgc3Vw cG9ydCwgcmVtb3ZpbmcgYXNzdW1wdGlvbnMgZnJvbQp0aGUgY29udGV4dCBzd2l0Y2ggY29kZSBh Ym91dCB0aGUgbG9jYXRpb24gb2YgdGhlIFNWRSBjb250ZXh0CnN0b3JhZ2UuCgpXaGVuIGJpbmRp bmcgYSB2Y3B1IGNvbnRleHQsIGl0cyB2ZWN0b3IgbGVuZ3RoIGlzIGFyYml0cmFyaWx5CnNwZWNp ZmllZCBhcyBTVkVfVkxfTUlOIGZvciBub3cuICBJbiBhbnkgY2FzZSwgYmVjYXVzZSBUSUZfU1ZF IGlzCnByZXNlbnRseSBjbGVhcmVkIGF0IHZjcHUgY29udGV4dCBiaW5kIHRpbWUsIHRoZSBzcGVj aWZpZWQgdmVjdG9yCmxlbmd0aCB3aWxsIG5vdCBiZSB1c2VkIGZvciBhbnl0aGluZyB5ZXQuICBJ biBsYXRlciBwYXRjaGVzIFRJRl9TVkUKd2lsbCBiZSBzZXQgaGVyZSBhcyBhcHByb3ByaWF0ZSwg YW5kIHRoZSBhcHByb3ByaWF0ZSBtYXhpbXVtIHZlY3RvcgpsZW5ndGggZm9yIHRoZSB2Y3B1IHdp bGwgYmUgcGFzc2VkIHdoZW4gYmluZGluZy4KClNpZ25lZC1vZmYtYnk6IERhdmUgTWFydGluIDxE YXZlLk1hcnRpbkBhcm0uY29tPgpSZXZpZXdlZC1ieTogQWxleCBCZW5uw6llIDxhbGV4LmJlbm5l ZUBsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJt LmNvbT4KVGVzdGVkLWJ5OiB6aGFuZy5sZWkgPHpoYW5nLmxlaUBqcC5mdWppdHN1LmNvbT4KLS0t CiBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Zwc2ltZC5oIHwgIDMgKystCiBhcmNoL2FybTY0L2tl cm5lbC9mcHNpbWQuYyAgICAgIHwgMjAgKysrKysrKysrKysrKysrLS0tLS0KIGFyY2gvYXJtNjQv a3ZtL2Zwc2ltZC5jICAgICAgICAgfCAgNSArKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVk ZS9hc20vZnBzaW1kLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Zwc2ltZC5oCmluZGV4IDk2 NGFkYzkuLmRmN2ExNDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZnBzaW1k LmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9mcHNpbWQuaApAQCAtNTYsNyArNTYsOCBA QCBleHRlcm4gdm9pZCBmcHNpbWRfcmVzdG9yZV9jdXJyZW50X3N0YXRlKHZvaWQpOwogZXh0ZXJu IHZvaWQgZnBzaW1kX3VwZGF0ZV9jdXJyZW50X3N0YXRlKHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0 ZSBjb25zdCAqc3RhdGUpOwogCiBleHRlcm4gdm9pZCBmcHNpbWRfYmluZF90YXNrX3RvX2NwdSh2 b2lkKTsKLWV4dGVybiB2b2lkIGZwc2ltZF9iaW5kX3N0YXRlX3RvX2NwdShzdHJ1Y3QgdXNlcl9m cHNpbWRfc3RhdGUgKnN0YXRlKTsKK2V4dGVybiB2b2lkIGZwc2ltZF9iaW5kX3N0YXRlX3RvX2Nw dShzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgKnN0YXRlLAorCQkJCSAgICAgdm9pZCAqc3ZlX3N0 YXRlLCB1bnNpZ25lZCBpbnQgc3ZlX3ZsKTsKIAogZXh0ZXJuIHZvaWQgZnBzaW1kX2ZsdXNoX3Rh c2tfc3RhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQpOwogZXh0ZXJuIHZvaWQgZnBzaW1k X2ZsdXNoX2NwdV9zdGF0ZSh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Zw c2ltZC5jIGIvYXJjaC9hcm02NC9rZXJuZWwvZnBzaW1kLmMKaW5kZXggYjIxOTc5NmEuLjhhOTNh ZmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jCisrKyBiL2FyY2gvYXJt NjQva2VybmVsL2Zwc2ltZC5jCkBAIC0xMjEsNiArMTIxLDggQEAKICAqLwogc3RydWN0IGZwc2lt ZF9sYXN0X3N0YXRlX3N0cnVjdCB7CiAJc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpzdDsKKwl2 b2lkICpzdmVfc3RhdGU7CisJdW5zaWduZWQgaW50IHN2ZV92bDsKIH07CiAKIHN0YXRpYyBERUZJ TkVfUEVSX0NQVShzdHJ1Y3QgZnBzaW1kX2xhc3Rfc3RhdGVfc3RydWN0LCBmcHNpbWRfbGFzdF9z dGF0ZSk7CkBAIC0yNDEsMTQgKzI0MywxNSBAQCBzdGF0aWMgdm9pZCB0YXNrX2Zwc2ltZF9sb2Fk KHZvaWQpCiAgKi8KIHZvaWQgZnBzaW1kX3NhdmUodm9pZCkKIHsKLQlzdHJ1Y3QgdXNlcl9mcHNp bWRfc3RhdGUgKnN0ID0gX190aGlzX2NwdV9yZWFkKGZwc2ltZF9sYXN0X3N0YXRlLnN0KTsKKwlz dHJ1Y3QgZnBzaW1kX2xhc3Rfc3RhdGVfc3RydWN0IGNvbnN0ICpsYXN0ID0KKwkJdGhpc19jcHVf cHRyKCZmcHNpbWRfbGFzdF9zdGF0ZSk7CiAJLyogc2V0IGJ5IGZwc2ltZF9iaW5kX3Rhc2tfdG9f Y3B1KCkgb3IgZnBzaW1kX2JpbmRfc3RhdGVfdG9fY3B1KCkgKi8KIAogCVdBUk5fT04oIWluX3Nv ZnRpcnEoKSAmJiAhaXJxc19kaXNhYmxlZCgpKTsKIAogCWlmICghdGVzdF90aHJlYWRfZmxhZyhU SUZfRk9SRUlHTl9GUFNUQVRFKSkgewogCQlpZiAoc3lzdGVtX3N1cHBvcnRzX3N2ZSgpICYmIHRl c3RfdGhyZWFkX2ZsYWcoVElGX1NWRSkpIHsKLQkJCWlmIChXQVJOX09OKHN2ZV9nZXRfdmwoKSAh PSBjdXJyZW50LT50aHJlYWQuc3ZlX3ZsKSkgeworCQkJaWYgKFdBUk5fT04oc3ZlX2dldF92bCgp ICE9IGxhc3QtPnN2ZV92bCkpIHsKIAkJCQkvKgogCQkJCSAqIENhbid0IHNhdmUgdGhlIHVzZXIg cmVncywgc28gY3VycmVudCB3b3VsZAogCQkJCSAqIHJlLWVudGVyIHVzZXIgd2l0aCBjb3JydXB0 IHN0YXRlLgpAQCAtMjU4LDkgKzI2MSwxMSBAQCB2b2lkIGZwc2ltZF9zYXZlKHZvaWQpCiAJCQkJ cmV0dXJuOwogCQkJfQogCi0JCQlzdmVfc2F2ZV9zdGF0ZShzdmVfcGZmcigmY3VycmVudC0+dGhy ZWFkKSwgJnN0LT5mcHNyKTsKKwkJCXN2ZV9zYXZlX3N0YXRlKChjaGFyICopbGFzdC0+c3ZlX3N0 YXRlICsKKwkJCQkJCXN2ZV9mZnJfb2Zmc2V0KGxhc3QtPnN2ZV92bCksCisJCQkJICAgICAgICZs YXN0LT5zdC0+ZnBzcik7CiAJCX0gZWxzZQotCQkJZnBzaW1kX3NhdmVfc3RhdGUoc3QpOworCQkJ ZnBzaW1kX3NhdmVfc3RhdGUobGFzdC0+c3QpOwogCX0KIH0KIApAQCAtMTAzNCw2ICsxMDM5LDgg QEAgdm9pZCBmcHNpbWRfYmluZF90YXNrX3RvX2NwdSh2b2lkKQogCQl0aGlzX2NwdV9wdHIoJmZw c2ltZF9sYXN0X3N0YXRlKTsKIAogCWxhc3QtPnN0ID0gJmN1cnJlbnQtPnRocmVhZC51dy5mcHNp bWRfc3RhdGU7CisJbGFzdC0+c3ZlX3N0YXRlID0gY3VycmVudC0+dGhyZWFkLnN2ZV9zdGF0ZTsK KwlsYXN0LT5zdmVfdmwgPSBjdXJyZW50LT50aHJlYWQuc3ZlX3ZsOwogCWN1cnJlbnQtPnRocmVh ZC5mcHNpbWRfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCiAJaWYgKHN5c3RlbV9zdXBwb3J0 c19zdmUoKSkgewpAQCAtMTA0Nyw3ICsxMDU0LDggQEAgdm9pZCBmcHNpbWRfYmluZF90YXNrX3Rv X2NwdSh2b2lkKQogCX0KIH0KIAotdm9pZCBmcHNpbWRfYmluZF9zdGF0ZV90b19jcHUoc3RydWN0 IHVzZXJfZnBzaW1kX3N0YXRlICpzdCkKK3ZvaWQgZnBzaW1kX2JpbmRfc3RhdGVfdG9fY3B1KHN0 cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqc3QsIHZvaWQgKnN2ZV9zdGF0ZSwKKwkJCSAgICAgIHVu c2lnbmVkIGludCBzdmVfdmwpCiB7CiAJc3RydWN0IGZwc2ltZF9sYXN0X3N0YXRlX3N0cnVjdCAq bGFzdCA9CiAJCXRoaXNfY3B1X3B0cigmZnBzaW1kX2xhc3Rfc3RhdGUpOwpAQCAtMTA1NSw2ICsx MDYzLDggQEAgdm9pZCBmcHNpbWRfYmluZF9zdGF0ZV90b19jcHUoc3RydWN0IHVzZXJfZnBzaW1k X3N0YXRlICpzdCkKIAlXQVJOX09OKCFpbl9zb2Z0aXJxKCkgJiYgIWlycXNfZGlzYWJsZWQoKSk7 CiAKIAlsYXN0LT5zdCA9IHN0OworCWxhc3QtPnN2ZV9zdGF0ZSA9IHN2ZV9zdGF0ZTsKKwlsYXN0 LT5zdmVfdmwgPSBzdmVfdmw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9m cHNpbWQuYyBiL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCmluZGV4IGFhYzc4MDguLjFjZjRmMDIg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCisrKyBiL2FyY2gvYXJtNjQva3Zt L2Zwc2ltZC5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5j bHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KICNpbmNsdWRlIDxsaW51eC9rdm1faG9zdC5oPgor I2luY2x1ZGUgPGFzbS9mcHNpbWQuaD4KICNpbmNsdWRlIDxhc20va3ZtX2FzbS5oPgogI2luY2x1 ZGUgPGFzbS9rdm1faG9zdC5oPgogI2luY2x1ZGUgPGFzbS9rdm1fbW11Lmg+CkBAIC04NSw3ICs4 Niw5IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9jdHhzeW5jX2ZwKHN0cnVjdCBrdm1fdmNwdSAqdmNw dSkKIAlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7CiAKIAlpZiAodmNwdS0+YXJjaC5m bGFncyAmIEtWTV9BUk02NF9GUF9FTkFCTEVEKSB7Ci0JCWZwc2ltZF9iaW5kX3N0YXRlX3RvX2Nw dSgmdmNwdS0+YXJjaC5jdHh0LmdwX3JlZ3MuZnBfcmVncyk7CisJCWZwc2ltZF9iaW5kX3N0YXRl X3RvX2NwdSgmdmNwdS0+YXJjaC5jdHh0LmdwX3JlZ3MuZnBfcmVncywKKwkJCQkJIE5VTEwsIFNW RV9WTF9NSU4pOworCiAJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl9GT1JFSUdOX0ZQU1RBVEUpOwog CQljbGVhcl90aHJlYWRfZmxhZyhUSUZfU1ZFKTsKIAl9Ci0tIAoyLjEuNAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK