From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shilpasri G Bhat Subject: [PATCH v12] cpufreq: powernv: Add sysfs attributes to show throttle stats Date: Tue, 22 Mar 2016 16:18:37 +0530 Message-ID: <1458643717-2847-1-git-send-email-shilpa.bhat@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org Cc: ego@linux.vnet.ibm.com, linux-pm@vger.kernel.org, shreyas@linux.vnet.ibm.com, rjw@rjwysocki.net, Shilpasri G Bhat , viresh.kumar@linaro.org, linux-api@vger.kernel.org List-Id: linux-api@vger.kernel.org Q3JlYXRlIHN5c2ZzIGF0dHJpYnV0ZXMgdG8gZXhwb3J0IHRocm90dGxlIGluZm9ybWF0aW9uIGlu Ci9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVgvY3B1ZnJlcS90aHJvdHRsZV9zdGF0cyBkaXJl Y3RvcnkuIFRoZQpuZXdseSBhZGRlZCBzeXNmcyBmaWxlcyBhcmUgYXMgZm9sbG93czoKCjEpL3N5 cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1WC9jcHVmcmVxL3Rocm90dGxlX3N0YXRzL3R1cmJvX3N0 YXQKMikvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVYL2NwdWZyZXEvdGhyb3R0bGVfc3RhdHMv c3ViLXR1cmJvX3N0YXQKMykvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVYL2NwdWZyZXEvdGhy b3R0bGVfc3RhdHMvdW50aHJvdHRsZQo0KS9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVgvY3B1 ZnJlcS90aHJvdHRsZV9zdGF0cy9wb3dlcmNhcAo1KS9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2Nw dVgvY3B1ZnJlcS90aHJvdHRsZV9zdGF0cy9vdmVydGVtcAo2KS9zeXMvZGV2aWNlcy9zeXN0ZW0v Y3B1L2NwdVgvY3B1ZnJlcS90aHJvdHRsZV9zdGF0cy9zdXBwbHlfZmF1bHQKNykvc3lzL2Rldmlj ZXMvc3lzdGVtL2NwdS9jcHVYL2NwdWZyZXEvdGhyb3R0bGVfc3RhdHMvb3ZlcmN1cnJlbnQKOCkv c3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVYL2NwdWZyZXEvdGhyb3R0bGVfc3RhdHMvb2NjX3Jl c2V0CgpEZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBlYWNoIGF0dHJpYnV0ZSBpcyBhZGRlZCB0bwpE b2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWRldmljZXMtc3lzdGVtLWNwdQoKQ0M6IGxp bnV4LWFwaUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogU2hpbHBhc3JpIEcgQmhhdCA8 c2hpbHBhLmJoYXRAbGludXgudm5ldC5pYm0uY29tPgotLS0KQ2hhbmdlcyBmcm9tIHYxMToKLSBS ZW1vdmVkICcqY3JlYXRlX3Rocm90dGxlX3N5c2ZzJyAKLSBwb2xpY3ktPmRyaXZlcl9kYXRhIGlz IHVzZWQgaW5zdGVhZCB0byBtYWludGFpbiB0aGUgZmxhZyBmb3IKICBvbmUtdGltZSBjcmVhdGlv biBvZiB0aHJvdHRsZSBzeXNmcyBmaWxlcy4KCkNoYW5nZXMgZnJvbSB2MTA6Ci0gUmVtb3ZlZCBw b2xpY3lfbm90aWZpZXJzIHRvIHVzZSBkcml2ZXItPmluaXQoKSBpbnN0ZWFkIHRvIGNyZWF0ZSBz eXNmcwotIHN5c2ZzIGF0dHJpYnV0ZXMgYXJlIHJlbW92ZWQgYnkga29iamVjdF9wdXQocG9saWN5 LT5rb2JqKQotIFJlYmFzZWQgb24gdG9wIG9mCiAgaHR0cDovL2xrbWwuaXUuZWR1L2h5cGVybWFp bC9saW51eC9rZXJuZWwvMTYwMy4yLzAyMjY4Lmh0bWwKCkNoYW5nZXMgZnJvbSB2OToKLSBNb2Rp ZmllZCBkb2N1bWVudGF0aW9uLgotIHMvdGhyb3R0bGVfbm9taW5hbC90aHJvdHRsZV9zdWJfdHVy Ym8KCkNoYW5nZXMgZnJvbSB2ODoKLSBNb3ZlZCB0aGUgc3lzZnMgYXR0cmlidXRlcyBmcm9tIGNw dS9jcHVmcmVxL2NoaXBYIHRvIGNwdVgvY3B1ZnJlcS90aHJvdHRsZV9zdGF0cwotIEFkaGVyaW5n IHRvIG9uZS12YWx1ZS1wZXItZmlsZSwgcmVwbGFjZSB0aHJvdHRsZV90YWJsZSB3aXRoIG11bHRp cGxlCiAgc3lzZnMgZmlsZXMuCi0gVXNpbmcgQ1BVRlJFUV9QT0xJQ1lfTk9USUZJRVIgdG8gYWRk L3JlbW92ZSBhdHRyaWJ1dGVfZ3JvdXAuCgogRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNm cy1kZXZpY2VzLXN5c3RlbS1jcHUgfCA2OSArKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9j cHVmcmVxL3Bvd2VybnYtY3B1ZnJlcS5jICAgICAgICAgICAgICAgICAgfCA3NCArKysrKysrKysr KysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZGV2 aWNlcy1zeXN0ZW0tY3B1IGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kZXZpY2Vz LXN5c3RlbS1jcHUKaW5kZXggYjY4M2U4ZS4uMTY1MDEzMyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRh dGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kZXZpY2VzLXN5c3RlbS1jcHUKKysrIGIvRG9jdW1lbnRh dGlvbi9BQkkvdGVzdGluZy9zeXNmcy1kZXZpY2VzLXN5c3RlbS1jcHUKQEAgLTI3MSwzICsyNzEs NzIgQEAgRGVzY3JpcHRpb246CVBhcmFtZXRlcnMgZm9yIHRoZSBDUFUgY2FjaGUgYXR0cmlidXRl cwogCQkJLSBXcml0ZUJhY2s6IGRhdGEgaXMgd3JpdHRlbiBvbmx5IHRvIHRoZSBjYWNoZSBsaW5l IGFuZAogCQkJCSAgICAgdGhlIG1vZGlmaWVkIGNhY2hlIGxpbmUgaXMgd3JpdHRlbiB0byBtYWlu CiAJCQkJICAgICBtZW1vcnkgb25seSB3aGVuIGl0IGlzIHJlcGxhY2VkCisKK1doYXQ6CQkvc3lz L2RldmljZXMvc3lzdGVtL2NwdS9jcHVYL2NwdWZyZXEvdGhyb3R0bGVfc3RhdHMKKwkJL3N5cy9k ZXZpY2VzL3N5c3RlbS9jcHUvY3B1WC9jcHVmcmVxL3Rocm90dGxlX3N0YXRzL3R1cmJvX3N0YXQK KwkJL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1WC9jcHVmcmVxL3Rocm90dGxlX3N0YXRzL3N1 Yl90dXJib19zdGF0CisJCS9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVgvY3B1ZnJlcS90aHJv dHRsZV9zdGF0cy91bnRocm90dGxlCisJCS9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVgvY3B1 ZnJlcS90aHJvdHRsZV9zdGF0cy9wb3dlcmNhcAorCQkvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9j cHVYL2NwdWZyZXEvdGhyb3R0bGVfc3RhdHMvb3ZlcnRlbXAKKwkJL3N5cy9kZXZpY2VzL3N5c3Rl bS9jcHUvY3B1WC9jcHVmcmVxL3Rocm90dGxlX3N0YXRzL3N1cHBseV9mYXVsdAorCQkvc3lzL2Rl dmljZXMvc3lzdGVtL2NwdS9jcHVYL2NwdWZyZXEvdGhyb3R0bGVfc3RhdHMvb3ZlcmN1cnJlbnQK KwkJL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1WC9jcHVmcmVxL3Rocm90dGxlX3N0YXRzL29j Y19yZXNldAorRGF0ZToJCU1hcmNoIDIwMTYKK0NvbnRhY3Q6CUxpbnV4IGtlcm5lbCBtYWlsaW5n IGxpc3QgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+CisJCUxpbnV4IGZvciBQb3dlclBD IG1haWxpbmcgbGlzdCA8bGludXhwcGMtZGV2QG96bGFicy5vcmc+CitEZXNjcmlwdGlvbjoJUE9X RVJOViBDUFVGcmVxIGRyaXZlcidzIGZyZXF1ZW5jeSB0aHJvdHRsZSBzdGF0cyBkaXJlY3Rvcnkg YW5kCisJCWF0dHJpYnV0ZXMKKworCQknY3B1WC9jcHVmcmVxL3Rocm90dGxlX3N0YXRzJyBkaXJl Y3RvcnkgY29udGFpbnMgdGhlIENQVSBmcmVxdWVuY3kKKwkJdGhyb3R0bGUgc3RhdCBhdHRyaWJ1 dGVzIGZvciB0aGUgY2hpcC4gVGhlIHRocm90dGxlIHN0YXRzIG9mIGEgY3B1CisJCWlzIGNvbW1v biBhY3Jvc3MgYWxsIHRoZSBjcHVzIGJlbG9uZ2luZyB0byBhIGNoaXAuIEJlbG93IGFyZSB0aGUK KwkJdGhyb3R0bGUgYXR0cmlidXRlcyBleHBvcnRlZCBpbiB0aGUgJ3Rocm90dGxlX3N0YXRzJyBk aXJlY3Rvcnk6CisKKwkJLSB0dXJib19zdGF0IDogVGhpcyBmaWxlIGdpdmVzIHRoZSB0b3RhbCBu dW1iZXIgb2YgdGltZXMgdGhlIG1heAorCQlmcmVxdWVuY3kgaXMgdGhyb3R0bGVkIHRvIGxvd2Vy IGZyZXF1ZW5jeSBpbiB0dXJibyAoYXQgYW5kIGFib3ZlCisJCW5vbWluYWwgZnJlcXVlbmN5KSBy YW5nZSBvZiBmcmVxdWVuY2llcy4KKworCQktIHN1Yl90dXJib19zdGF0IDogVGhpcyBmaWxlIGdp dmVzIHRoZSB0b3RhbCBudW1iZXIgb2YgdGltZXMgdGhlCisJCW1heCBmcmVxdWVuY3kgaXMgdGhy b3R0bGVkIHRvIGxvd2VyIGZyZXF1ZW5jeSBpbiBzdWItdHVyYm8oYmVsb3cKKwkJbm9taW5hbCBm cmVxdWVuY3kpIHJhbmdlIG9mIGZyZXF1ZW5jaWVzLgorCisJCS0gdW50aHJvdHRsZSA6IFRoaXMg ZmlsZSBnaXZlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHRpbWVzIHRoZSBtYXgKKwkJZnJlcXVlbmN5 IGlzIHVudGhyb3R0bGVkIGFmdGVyIGJlaW5nIHRocm90dGxlZC4KKworCQktIHBvd2VyY2FwIDog VGhpcyBmaWxlIGdpdmVzIHRoZSB0b3RhbCBudW1iZXIgb2YgdGltZXMgdGhlIG1heAorCQlmcmVx dWVuY3kgaXMgdGhyb3R0bGVkIGR1ZSB0byAnUG93ZXIgQ2FwcGluZycuCisKKwkJLSBvdmVydGVt cCA6IFRoaXMgZmlsZSBnaXZlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHRpbWVzIHRoZSBtYXgKKwkJ ZnJlcXVlbmN5IGlzIHRocm90dGxlZCBkdWUgdG8gJ0NQVSBPdmVyIFRlbXBlcmF0dXJlJy4KKwor CQktIHN1cHBseV9mYXVsdCA6IFRoaXMgZmlsZSBnaXZlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHRp bWVzIHRoZQorCQltYXggZnJlcXVlbmN5IGlzIHRocm90dGxlZCBkdWUgdG8gJ1Bvd2VyIFN1cHBs eSBGYWlsdXJlJy4KKworCQktIG92ZXJjdXJyZW50IDogVGhpcyBmaWxlIGdpdmVzIHRoZSB0b3Rh bCBudW1iZXIgb2YgdGltZXMgdGhlCisJCW1heCBmcmVxdWVuY3kgaXMgdGhyb3R0bGVkIGR1ZSB0 byAnT3ZlcmN1cnJlbnQnLgorCisJCS0gb2NjX3Jlc2V0IDogVGhpcyBmaWxlIGdpdmVzIHRoZSB0 b3RhbCBudW1iZXIgb2YgdGltZXMgdGhlIG1heAorCQlmcmVxdWVuY3kgaXMgdGhyb3R0bGVkIGR1 ZSB0byAnT0NDIFJlc2V0Jy4KKworCQlUaGUgc3lzZnMgYXR0cmlidXRlcyByZXByZXNlbnRpbmcg ZGlmZmVyZW50IHRocm90dGxlIHJlYXNvbnMgbGlrZQorCQlwb3dlcmNhcCwgb3ZlcnRlbXAsIHN1 cHBseV9mYXVsdCwgb3ZlcmN1cnJlbnQgYW5kIG9jY19yZXNldCBtYXAgdG8KKwkJdGhlIHJlYXNv bnMgcHJvdmlkZWQgYnkgT0NDIGZpcm13YXJlIGZvciB0aHJvdHRsaW5nIHRoZSBmcmVxdWVuY3ku CisKK1doYXQ6CQkvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVmcmVxL3BvbGljeVgvdGhyb3R0 bGVfc3RhdHMKKwkJL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1ZnJlcS9wb2xpY3lYL3Rocm90 dGxlX3N0YXRzL3R1cmJvX3N0YXQKKwkJL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1ZnJlcS9w b2xpY3lYL3Rocm90dGxlX3N0YXRzL3N1Yl90dXJib19zdGF0CisJCS9zeXMvZGV2aWNlcy9zeXN0 ZW0vY3B1L2NwdWZyZXEvcG9saWN5WC90aHJvdHRsZV9zdGF0cy91bnRocm90dGxlCisJCS9zeXMv ZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdWZyZXEvcG9saWN5WC90aHJvdHRsZV9zdGF0cy9wb3dlcmNh cAorCQkvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVmcmVxL3BvbGljeVgvdGhyb3R0bGVfc3Rh dHMvb3ZlcnRlbXAKKwkJL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1ZnJlcS9wb2xpY3lYL3Ro cm90dGxlX3N0YXRzL3N1cHBseV9mYXVsdAorCQkvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVm cmVxL3BvbGljeVgvdGhyb3R0bGVfc3RhdHMvb3ZlcmN1cnJlbnQKKwkJL3N5cy9kZXZpY2VzL3N5 c3RlbS9jcHUvY3B1ZnJlcS9wb2xpY3lYL3Rocm90dGxlX3N0YXRzL29jY19yZXNldAorRGF0ZToJ CU1hcmNoIDIwMTYKK0NvbnRhY3Q6CUxpbnV4IGtlcm5lbCBtYWlsaW5nIGxpc3QgPGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmc+CisJCUxpbnV4IGZvciBQb3dlclBDIG1haWxpbmcgbGlzdCA8 bGludXhwcGMtZGV2QG96bGFicy5vcmc+CitEZXNjcmlwdGlvbjoJUE9XRVJOViBDUFVGcmVxIGRy aXZlcidzIGZyZXF1ZW5jeSB0aHJvdHRsZSBzdGF0cyBkaXJlY3RvcnkgYW5kCisJCWF0dHJpYnV0 ZXMKKworCQkncG9saWN5WC90aHJvdHRsZV9zdGF0cycgZGlyZWN0b3J5IGFuZCBhbGwgdGhlIGF0 dHJpYnV0ZXMgYXJlIHNhbWUgYXMKKwkJdGhlIC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVgv Y3B1ZnJlcS90aHJvdHRsZV9zdGF0cyBkaXJlY3RvcnkgYW5kCisJCWF0dHJpYnV0ZXMgd2hpY2gg Z2l2ZSB0aGUgZnJlcXVlbmN5IHRocm90dGxlIGluZm9ybWF0aW9uIG9mIHRoZSBjaGlwLgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL3Bvd2VybnYtY3B1ZnJlcS5jIGIvZHJpdmVycy9jcHVm cmVxL3Bvd2VybnYtY3B1ZnJlcS5jCmluZGV4IGEwMGJjYzIuLmUxN2Q2NTQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvY3B1ZnJlcS9wb3dlcm52LWNwdWZyZXEuYworKysgYi9kcml2ZXJzL2NwdWZyZXEv cG93ZXJudi1jcHVmcmVxLmMKQEAgLTU0LDYgKzU0LDE2IEBAIHN0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgdGhyb3R0bGVfcmVhc29uW10gPSB7CiAJIk9DQyBSZXNldCIKIH07CiAKK2VudW0gdGhy b3R0bGVfcmVhc29uX3R5cGUgeworCU5PX1RIUk9UVExFID0gMCwKKwlQT1dFUkNBUCwKKwlDUFVf T1ZFUlRFTVAsCisJUE9XRVJfU1VQUExZX0ZBSUxVUkUsCisJT1ZFUkNVUlJFTlQsCisJT0NDX1JF U0VUX1RIUk9UVExFLAorCU9DQ19NQVhfUkVBU09OCit9OworCiBzdGF0aWMgc3RydWN0IGNoaXAg ewogCXVuc2lnbmVkIGludCBpZDsKIAlib29sIHRocm90dGxlZDsKQEAgLTYxLDYgKzcxLDkgQEAg c3RhdGljIHN0cnVjdCBjaGlwIHsKIAl1OCB0aHJvdHRsZV9yZWFzb247CiAJY3B1bWFza190IG1h c2s7CiAJc3RydWN0IHdvcmtfc3RydWN0IHRocm90dGxlOworCWludCB0aHJvdHRsZV90dXJibzsK KwlpbnQgdGhyb3R0bGVfc3ViX3R1cmJvOworCWludCByZWFzb25bT0NDX01BWF9SRUFTT05dOwog fSAqY2hpcHM7CiAKIHN0YXRpYyBpbnQgbnJfY2hpcHM7CkBAIC0xOTYsNiArMjA5LDQyIEBAIHN0 YXRpYyBzdHJ1Y3QgZnJlcV9hdHRyICpwb3dlcm52X2NwdV9mcmVxX2F0dHJbXSA9IHsKIAlOVUxM LAogfTsKIAorI2RlZmluZSB0aHJvdHRsZV9hdHRyKG5hbWUsIG1lbWJlcikJCQkJCVwKK3N0YXRp YyBzc2l6ZV90IG5hbWUjI19zaG93KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LCBjaGFy ICpidWYpCVwKK3sJCQkJCQkJCQlcCisJc3RydWN0IGNoaXAgKmNoaXAgPSBwZXJfY3B1KGNoaXBf aW5mbywgcG9saWN5LT5jcHUpOwkJXAorCQkJCQkJCQkJXAorCXJldHVybiBzcHJpbnRmKGJ1Ziwg IiV1XG4iLCBjaGlwLT5tZW1iZXIpOwkJCVwKK30JCQkJCQkJCQlcCisJCQkJCQkJCQlcCitzdGF0 aWMgc3RydWN0IGZyZXFfYXR0ciB0aHJvdHRsZV9hdHRyXyMjbmFtZSA9IF9fQVRUUl9STyhuYW1l KQkJXAorCit0aHJvdHRsZV9hdHRyKHVudGhyb3R0bGUsIHJlYXNvbltOT19USFJPVFRMRV0pOwor dGhyb3R0bGVfYXR0cihwb3dlcmNhcCwgcmVhc29uW1BPV0VSQ0FQXSk7Cit0aHJvdHRsZV9hdHRy KG92ZXJ0ZW1wLCByZWFzb25bQ1BVX09WRVJURU1QXSk7Cit0aHJvdHRsZV9hdHRyKHN1cHBseV9m YXVsdCwgcmVhc29uW1BPV0VSX1NVUFBMWV9GQUlMVVJFXSk7Cit0aHJvdHRsZV9hdHRyKG92ZXJj dXJyZW50LCByZWFzb25bT1ZFUkNVUlJFTlRdKTsKK3Rocm90dGxlX2F0dHIob2NjX3Jlc2V0LCBy ZWFzb25bT0NDX1JFU0VUX1RIUk9UVExFXSk7Cit0aHJvdHRsZV9hdHRyKHR1cmJvX3N0YXQsIHRo cm90dGxlX3R1cmJvKTsKK3Rocm90dGxlX2F0dHIoc3ViX3R1cmJvX3N0YXQsIHRocm90dGxlX3N1 Yl90dXJibyk7CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICp0aHJvdHRsZV9hdHRyc1tdID0g eworCSZ0aHJvdHRsZV9hdHRyX3VudGhyb3R0bGUuYXR0ciwKKwkmdGhyb3R0bGVfYXR0cl9wb3dl cmNhcC5hdHRyLAorCSZ0aHJvdHRsZV9hdHRyX292ZXJ0ZW1wLmF0dHIsCisJJnRocm90dGxlX2F0 dHJfc3VwcGx5X2ZhdWx0LmF0dHIsCisJJnRocm90dGxlX2F0dHJfb3ZlcmN1cnJlbnQuYXR0ciwK KwkmdGhyb3R0bGVfYXR0cl9vY2NfcmVzZXQuYXR0ciwKKwkmdGhyb3R0bGVfYXR0cl90dXJib19z dGF0LmF0dHIsCisJJnRocm90dGxlX2F0dHJfc3ViX3R1cmJvX3N0YXQuYXR0ciwKKwlOVUxMLAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgdGhyb3R0bGVfYXR0cl9n cnAgPSB7CisJLm5hbWUJPSAidGhyb3R0bGVfc3RhdHMiLAorCS5hdHRycwk9IHRocm90dGxlX2F0 dHJzLAorfTsKKwogLyogSGVscGVyIHJvdXRpbmVzICovCiAKIC8qIEFjY2VzcyBoZWxwZXJzIHRv IHBvd2VyIG1ndCBTUFIgKi8KQEAgLTMzOCwxMCArMzg3LDE0IEBAIHN0YXRpYyB2b2lkIHBvd2Vy bnZfY3B1ZnJlcV90aHJvdHRsZV9jaGVjayh2b2lkICpkYXRhKQogCQlpZiAoY2hpcC0+dGhyb3R0 bGVkKQogCQkJZ290byBuZXh0OwogCQljaGlwLT50aHJvdHRsZWQgPSB0cnVlOwotCQlpZiAocG1z cl9wbWF4IDwgcG93ZXJudl9wc3RhdGVfaW5mby5ub21pbmFsKQorCQlpZiAocG1zcl9wbWF4IDwg cG93ZXJudl9wc3RhdGVfaW5mby5ub21pbmFsKSB7CiAJCQlwcl93YXJuX29uY2UoIkNQVSAlZCBv biBDaGlwICV1IGhhcyBQbWF4IHJlZHVjZWQgYmVsb3cgbm9taW5hbCBmcmVxdWVuY3kgKCVkIDwg JWQpXG4iLAogCQkJCSAgICAgY3B1LCBjaGlwLT5pZCwgcG1zcl9wbWF4LAogCQkJCSAgICAgcG93 ZXJudl9wc3RhdGVfaW5mby5ub21pbmFsKTsKKwkJCWNoaXAtPnRocm90dGxlX3N1Yl90dXJibysr OworCQl9IGVsc2UgeworCQkJY2hpcC0+dGhyb3R0bGVfdHVyYm8rKzsKKwkJfQogCQl0cmFjZV9w b3dlcm52X3Rocm90dGxlKGNoaXAtPmlkLAogCQkJCSAgICAgIHRocm90dGxlX3JlYXNvbltjaGlw LT50aHJvdHRsZV9yZWFzb25dLAogCQkJCSAgICAgIHBtc3JfcG1heCk7CkBAIC00MDEsMTMgKzQ1 NCwyNiBAQCBzdGF0aWMgaW50IHBvd2VybnZfY3B1ZnJlcV90YXJnZXRfaW5kZXgoc3RydWN0IGNw dWZyZXFfcG9saWN5ICpwb2xpY3ksCiAKIHN0YXRpYyBpbnQgcG93ZXJudl9jcHVmcmVxX2NwdV9p bml0KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5KQogewotCWludCBiYXNlLCBpOworCWlu dCBiYXNlLCBpLCByZXQ7CiAKIAliYXNlID0gY3B1X2ZpcnN0X3RocmVhZF9zaWJsaW5nKHBvbGlj eS0+Y3B1KTsKIAogCWZvciAoaSA9IDA7IGkgPCB0aHJlYWRzX3Blcl9jb3JlOyBpKyspCiAJCWNw dW1hc2tfc2V0X2NwdShiYXNlICsgaSwgcG9saWN5LT5jcHVzKTsKIAorCWlmICghcG9saWN5LT5k cml2ZXJfZGF0YSkgeworCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnBvbGljeS0+a29iaiwg JnRocm90dGxlX2F0dHJfZ3JwKTsKKwkJaWYgKHJldCkgeworCQkJcHJfaW5mbygiRmFpbGVkIHRv IGNyZWF0ZSB0aHJvdHRsZSBzdGF0cyBkaXJlY3RvcnkgZm9yIGNwdSAlZFxuIiwKKwkJCQlwb2xp Y3ktPmNwdSk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJCS8qCisJCSAqIHBvbGljeS0+ZHJpdmVy X2RhdGEgaXMgdXNlZCBhcyBhIGZsYWcgZm9yIG9uZS10aW1lCisJCSAqIGNyZWF0aW9uIG9mIHRo cm90dGxlIHN5c2ZzIGZpbGVzLgorCQkgKi8KKwkJcG9saWN5LT5kcml2ZXJfZGF0YSA9ICh2b2lk ICopcG9saWN5OworCX0KIAlyZXR1cm4gY3B1ZnJlcV90YWJsZV92YWxpZGF0ZV9hbmRfc2hvdyhw b2xpY3ksIHBvd2VybnZfZnJlcXMpOwogfQogCkBAIC01MTQsOCArNTgwLDEwIEBAIHN0YXRpYyBp bnQgcG93ZXJudl9jcHVmcmVxX29jY19tc2coc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKIAkJ CQlicmVhazsKIAogCQlpZiAob21zZy50aHJvdHRsZV9zdGF0dXMgPj0gMCAmJgotCQkgICAgb21z Zy50aHJvdHRsZV9zdGF0dXMgPD0gT0NDX01BWF9USFJPVFRMRV9TVEFUVVMpCisJCSAgICBvbXNn LnRocm90dGxlX3N0YXR1cyA8PSBPQ0NfTUFYX1RIUk9UVExFX1NUQVRVUykgewogCQkJY2hpcHNb aV0udGhyb3R0bGVfcmVhc29uID0gb21zZy50aHJvdHRsZV9zdGF0dXM7CisJCQljaGlwc1tpXS5y ZWFzb25bb21zZy50aHJvdHRsZV9zdGF0dXNdKys7CisJCX0KIAogCQlpZiAoIW9tc2cudGhyb3R0 bGVfc3RhdHVzKQogCQkJY2hpcHNbaV0ucmVzdG9yZSA9IHRydWU7Ci0tIAoxLjkuMwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXhwcGMtZGV2IG1h aWxpbmcgbGlzdApMaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZwpodHRwczovL2xpc3RzLm96 bGFicy5vcmcvbGlzdGluZm8vbGludXhwcGMtZGV2