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=-17.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,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 7EC60C43460 for ; Thu, 6 May 2021 15:35:05 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 E5E40610C8 for ; Thu, 6 May 2021 15:35:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E5E40610C8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=XKdJc69t4jzQv5fDH/KMQIu92JKaM4kdG1DAXBX7xTU=; b=gVR2PZTXfIellg5wiL3yLbvcJ NVkfIUdKG7Hts6HJWiwRLDLGNUjK45CW1d2+va8D3IlY3ghj8zp8/YuLv1RdsyNPMKbSbGV1VEaR6 vCMzIexGZKkbB/HYnU84i4TrkgHYbqM8NFFTYcuzCqzxJXrZdgQxNa3HGKQJLTOa1GwJYhxo4//eo qvi46rexpDICswlYCV2tw51NqtqlaenmMXtnzW1Ocuz1oCeU9qgvmIWr6BLJI5TZPnKP4vJeo2zL9 Ehv/QulVat+Y9mNGZKTS+kkDyHWq7htD25pgzipVlft+wwny66OVNEZPrVu6X2kDH032qohHBbETO N3QNjRH0w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1leg0N-004aIA-DP; Thu, 06 May 2021 15:33:35 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lefzg-004a2p-Hi for linux-arm-kernel@desiato.infradead.org; Thu, 06 May 2021 15:32:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Sender:Reply-To:Content-ID:Content-Description; bh=XsPgc7bIvYP03GMTAo4H2GSsadfaTqDy1rGt8fB9ZbI=; b=miwFXIk0bIIpeI8wGXMUy5Pn1N 2g1/FqhMtgDkvJlSXTCVu3Hw/oskDCPakZz90yAVWxMsGw4sGDc1MZLx45h+oNcezleuUigtHwD6D GJxjqx03x0HMke36Z0WRCZd9iZsjPWkszJWBmVVYB7jTLpDjJnLZKkpW3F1jmxnO8l+JrJAXNUdy/ sweIH/JJTeR9YLS4EBsvbiSNlqkzvZz2AWHo0WkSDGIAD+cdk/VEbTIWBEk6htKFE2TJwfJDa1HKV 4Xh/IOS5KK+v3iO9/onFZEka5g35HRWNJKALwPi+vCFkZQXhYgQ5F3F3AkcZ/VYB49UNQqtq5xUD5 nvjqchFA==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lefzb-0069f4-W4 for linux-arm-kernel@lists.infradead.org; Thu, 06 May 2021 15:32:51 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 2B80F61168; Thu, 6 May 2021 15:32:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620315167; bh=Fu4/t9pMjXwvsBTR1oTGCXyaBjHyoagLyBJfrUrRITM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tvv6Aru/o7L85xCaZOCy8rUW3aMkT6HCjU1p3R9hyH4Y06DgBjU6ma+WfLSk86O8C J2bzfs9PBV9RCicsRr7kyOh673+gkaNBfb4BPPuPefC5HZ4wDjVsJ3t3uBiV7zO57j CBr18OLYW4MkaFxwzGJMZqfO6cGgFVPUy0OvP4P6yQmLuSMdKcUPAf3y+Elp/qRwCd YVdiCiL4lqocEHxmysDM7b2qSP5Vl3YaIN+mDmSkKekQRQoIZn+3i61kooaL16Jtx0 0iqmdbmL+i8P4tcl6Vw8bx0Ge86s2T6bB0PnlCn/5rtMspqoMy2Jlpr6W3eO3A8HZm or+s1vmzqwNeg== Received: by pali.im (Postfix) id CBBC4BF9; Thu, 6 May 2021 17:32:44 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Lorenzo Pieralisi , Thomas Petazzoni , Rob Herring , Bjorn Helgaas Cc: Russell King , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Remi Pommarel , Xogium , Tomasz Maciej Nowak , Marc Zyngier , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 03/42] PCI: aardvark: Fix checking for PIO status Date: Thu, 6 May 2021 17:31:14 +0200 Message-Id: <20210506153153.30454-4-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210506153153.30454-1-pali@kernel.org> References: <20210506153153.30454-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210506_083248_176761_6C62D4DB X-CRM114-Status: GOOD ( 25.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogRXZhbiBXYW5nIDx4c3dhbmdAbWFydmVsbC5jb20+CgpUaGVyZSBpcyBhbiBpc3N1ZSB0 aGF0IHdoZW4gUENJZSBzd2l0Y2ggaXMgY29ubmVjdGVkIHRvIGFuIEFybWFkYSAzNzAwCmJvYXJk LCB0aGVyZSB3aWxsIGJlIGxvdHMgb2Ygd2FybmluZ3MgYWJvdXQgUElPIGVycm9ycyB3aGVuIHJl YWRpbmcgdGhlCmNvbmZpZyBzcGFjZS4gQWNjb3JkaW5nIHRvIEFhcmR2YXJrIFBJTyByZWFkIGFu ZCB3cml0ZSBzZXF1ZW5jZSBpbiBIVwpzcGVjaWZpY2F0aW9uLCB0aGUgY3VycmVudCB3YXkgdG8g Y2hlY2sgUElPIHN0YXR1cyBoYXMgdGhlIGZvbGxvd2luZwppc3N1ZXM6CgoxKSBGb3IgUElPIHJl YWQgb3BlcmF0aW9uLCBpdCByZXBvcnRzIHRoZSBlcnJvciBtZXNzYWdlLCB3aGljaCBzaG91bGQg YmUKICAgYXZvaWRlZCBhY2NvcmRpbmcgdG8gSFcgc3BlY2lmaWNhdGlvbi4KCjIpIEZvciBQSU8g cmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucywgaXQgb25seSBjaGVja3MgUElPIG9wZXJhdGlvbiBj b21wbGV0ZQogICBzdGF0dXMsIHdoaWNoIGlzIG5vdCBlbm91Z2gsIGFuZCBlcnJvciBzdGF0dXMg c2hvdWxkIGFsc28gYmUgY2hlY2tlZC4KClRoaXMgcGF0Y2ggYWxpZ25zIHRoZSBjb2RlIHdpdGgg QWFyZHZhcmsgUElPIHJlYWQgYW5kIHdyaXRlIHNlcXVlbmNlIGluIEhXCnNwZWNpZmljYXRpb24g b24gUElPIHN0YXR1cyBjaGVjayBhbmQgZml4IHRoZSB3YXJuaW5ncyB3aGVuIHJlYWRpbmcgY29u ZmlnCnNwYWNlLgoKVGhpcyBwYXRjaCBhbHNvIHJldHVybnMgQ29tcGxldGlvbiBSZXRyeSBTdGF0 dXMgdmFsdWUgd2hlbiB0aGUgcmVhZCByZXF1ZXN0CnRpbWVvdXQsIHRvIGdpdmUgdGhlIGNhbGxl ciBhIGNoYW5jZSB0byBzZW5kIHRoZSByZXF1ZXN0IGFnYWluIGluc3RlYWQgb2YKZmFpbGluZy4K ClNpZ25lZC1vZmYtYnk6IEV2YW4gV2FuZyA8eHN3YW5nQG1hcnZlbGwuY29tPgpSZXZpZXdlZC1i eTogVmljdG9yIEd1IDx4aWd1QG1hcnZlbGwuY29tPgpUZXN0ZWQtYnk6IFZpY3RvciBHdSA8eGln dUBtYXJ2ZWxsLmNvbT4KW3BhbGk6IFJldHVybiBDUlMgYWxzbyBhZnRlciB0aW1lb3V0XQpTaWdu ZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogTWFy ZWsgQmVow7puIDxrYWJlbEBrZXJuZWwub3JnPgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZyAj IGIxYmQ1NzE0NDcyYyAoIlBDSTogYWFyZHZhcms6IEluZGljYXRlIGVycm9yIGluICd2YWwnIHdo ZW4gY29uZmlnIHJlYWQgZmFpbHMiKQotLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFh cmR2YXJrLmMgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA4MCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2ktYWFyZHZhcmsuYwppbmRleCAyZjgzODBhMWY4NGYuLmEzN2JhODZmMWIyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYworKysgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCkBAIC01OCw2ICs1OCw3IEBACiAjZGVmaW5lICAg UElPX0NPTVBMRVRJT05fU1RBVFVTX0NSUwkJMgogI2RlZmluZSAgIFBJT19DT01QTEVUSU9OX1NU QVRVU19DQQkJNAogI2RlZmluZSAgIFBJT19OT05fUE9TVEVEX1JFUQkJCUJJVCgxMCkKKyNkZWZp bmUgICBQSU9fRVJSX1NUQVRVUwkJCUJJVCgxMSkKICNkZWZpbmUgUElPX0FERFJfTFMJCQkJKFBJ T19CQVNFX0FERFIgKyAweDgpCiAjZGVmaW5lIFBJT19BRERSX01TCQkJCShQSU9fQkFTRV9BRERS ICsgMHhjKQogI2RlZmluZSBQSU9fV1JfREFUQQkJCQkoUElPX0JBU0VfQUREUiArIDB4MTApCkBA IC0xNzYsNiArMTc3LDkgQEAKIAogI2RlZmluZSBNU0lfSVJRX05VTQkJCTMyCiAKKyNkZWZpbmUg Q0ZHX1JEX1VSX1ZBTAkJCTB4ZmZmZmZmZmYKKyNkZWZpbmUgQ0ZHX1JEX0NSU19WQUwJCQkweGZm ZmYwMDAxCisKIHN0cnVjdCBhZHZrX3BjaWUgewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXY7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwpAQCAtNDYxLDcgKzQ2NSw3IEBAIHN0YXRpYyB2b2lk IGFkdmtfcGNpZV9zZXR1cF9odyhzdHJ1Y3QgYWR2a19wY2llICpwY2llKQogCWFkdmtfd3JpdGVs KHBjaWUsIHJlZywgUENJRV9DT1JFX0NNRF9TVEFUVVNfUkVHKTsKIH0KIAotc3RhdGljIHZvaWQg YWR2a19wY2llX2NoZWNrX3Bpb19zdGF0dXMoc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKK3N0YXRp YyBpbnQgYWR2a19wY2llX2NoZWNrX3Bpb19zdGF0dXMoc3RydWN0IGFkdmtfcGNpZSAqcGNpZSwg dTMyICp2YWwpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBjaWUtPnBkZXYtPmRldjsKIAl1 MzIgcmVnOwpAQCAtNDcyLDE1ICs0NzYsNTAgQEAgc3RhdGljIHZvaWQgYWR2a19wY2llX2NoZWNr X3Bpb19zdGF0dXMoc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKIAlzdGF0dXMgPSAocmVnICYgUElP X0NPTVBMRVRJT05fU1RBVFVTX01BU0spID4+CiAJCVBJT19DT01QTEVUSU9OX1NUQVRVU19TSElG VDsKIAotCWlmICghc3RhdHVzKQotCQlyZXR1cm47Ci0KKwkvKgorCSAqIEFjY29yZGluZyB0byBI VyBzcGVjLCB0aGUgUElPIHN0YXR1cyBjaGVjayBzZXF1ZW5jZSBhcyBiZWxvdzoKKwkgKiAxKSBl dmVuIGlmIENPTVBMRVRJT05fU1RBVFVTKGJpdDk6NykgaW5kaWNhdGVzIHN1Y2Nlc3NmdWwsCisJ ICogICAgaXQgc3RpbGwgbmVlZHMgdG8gY2hlY2sgRXJyb3IgU3RhdHVzKGJpdDExKSwgb25seSB3 aGVuIHRoaXMgYml0CisJICogICAgaW5kaWNhdGVzIG5vIGVycm9yIGhhcHBlbiwgdGhlIG9wZXJh dGlvbiBpcyBzdWNjZXNzZnVsLgorCSAqIDIpIHZhbHVlIFVuc3VwcG9ydGVkIFJlcXVlc3QoMSkg b2YgQ09NUExFVElPTl9TVEFUVVMoYml0OTo3KSBvbmx5CisJICogICAgbWVhbnMgYSBQSU8gd3Jp dGUgZXJyb3IsIGFuZCBmb3IgUElPIHJlYWQgaXQgaXMgc3VjY2Vzc2Z1bCB3aXRoCisJICogICAg YSByZWFkIHZhbHVlIG9mIDB4RkZGRkZGRkYuCisJICogMykgdmFsdWUgQ29tcGxldGlvbiBSZXRy eSBTdGF0dXMoQ1JTKSBvZiBDT01QTEVUSU9OX1NUQVRVUyhiaXQ5OjcpCisJICogICAgb25seSBt ZWFucyBhIFBJTyB3cml0ZSBlcnJvciwgYW5kIGZvciBQSU8gcmVhZCBpdCBpcyBzdWNjZXNzZnVs CisJICogICAgd2l0aCBhIHJlYWQgdmFsdWUgb2YgMHhGRkZGMDAwMS4KKwkgKiA0KSB2YWx1ZSBD b21wbGV0ZXIgQWJvcnQgKENBKSBvZiBDT01QTEVUSU9OX1NUQVRVUyhiaXQ5OjcpIG1lYW5zCisJ ICogICAgZXJyb3IgZm9yIGJvdGggUElPIHJlYWQgYW5kIFBJTyB3cml0ZSBvcGVyYXRpb24uCisJ ICogNSkgb3RoZXIgZXJyb3JzIGFyZSBpbmRpY2F0ZWQgYXMgJ3Vua25vd24nLgorCSAqLwogCXN3 aXRjaCAoc3RhdHVzKSB7CisJY2FzZSBQSU9fQ09NUExFVElPTl9TVEFUVVNfT0s6CisJCWlmIChy ZWcgJiBQSU9fRVJSX1NUQVRVUykgeworCQkJc3RyY29tcF9zdGF0dXMgPSAiQ09NUF9FUlIiOwor CQkJYnJlYWs7CisJCX0KKwkJLyogR2V0IHRoZSByZWFkIHJlc3VsdCAqLworCQlpZiAodmFsKQor CQkJKnZhbCA9IGFkdmtfcmVhZGwocGNpZSwgUElPX1JEX0RBVEEpOworCQkvKiBObyBlcnJvciAq LworCQlzdHJjb21wX3N0YXR1cyA9IE5VTEw7CisJCWJyZWFrOwogCWNhc2UgUElPX0NPTVBMRVRJ T05fU1RBVFVTX1VSOgotCQlzdHJjb21wX3N0YXR1cyA9ICJVUiI7CisJCWlmICh2YWwpIHsKKwkJ CS8qIEZvciByZWFkaW5nLCBVUiBpcyBub3QgYW4gZXJyb3Igc3RhdHVzICovCisJCQkqdmFsID0g Q0ZHX1JEX1VSX1ZBTDsKKwkJCXN0cmNvbXBfc3RhdHVzID0gTlVMTDsKKwkJfSBlbHNlIHsKKwkJ CXN0cmNvbXBfc3RhdHVzID0gIlVSIjsKKwkJfQogCQlicmVhazsKIAljYXNlIFBJT19DT01QTEVU SU9OX1NUQVRVU19DUlM6Ci0JCXN0cmNvbXBfc3RhdHVzID0gIkNSUyI7CisJCWlmICh2YWwpIHsK KwkJCS8qIEZvciByZWFkaW5nLCBDUlMgaXMgbm90IGFuIGVycm9yIHN0YXR1cyAqLworCQkJKnZh bCA9IENGR19SRF9DUlNfVkFMOworCQkJc3RyY29tcF9zdGF0dXMgPSBOVUxMOworCQl9IGVsc2Ug eworCQkJc3RyY29tcF9zdGF0dXMgPSAiQ1JTIjsKKwkJfQogCQlicmVhazsKIAljYXNlIFBJT19D T01QTEVUSU9OX1NUQVRVU19DQToKIAkJc3RyY29tcF9zdGF0dXMgPSAiQ0EiOwpAQCAtNDkwLDYg KzUyOSw5IEBAIHN0YXRpYyB2b2lkIGFkdmtfcGNpZV9jaGVja19waW9fc3RhdHVzKHN0cnVjdCBh ZHZrX3BjaWUgKnBjaWUpCiAJCWJyZWFrOwogCX0KIAorCWlmICghc3RyY29tcF9zdGF0dXMpCisJ CXJldHVybiAwOworCiAJaWYgKHJlZyAmIFBJT19OT05fUE9TVEVEX1JFUSkKIAkJc3RyX3Bvc3Rl ZCA9ICJOb24tcG9zdGVkIjsKIAllbHNlCkBAIC00OTcsNiArNTM5LDggQEAgc3RhdGljIHZvaWQg YWR2a19wY2llX2NoZWNrX3Bpb19zdGF0dXMoc3RydWN0IGFkdmtfcGNpZSAqcGNpZSkKIAogCWRl dl9lcnIoZGV2LCAiJXMgUElPIFJlc3BvbnNlIFN0YXR1czogJXMsICUjeCBAICUjeFxuIiwKIAkJ c3RyX3Bvc3RlZCwgc3RyY29tcF9zdGF0dXMsIHJlZywgYWR2a19yZWFkbChwY2llLCBQSU9fQURE Ul9MUykpOworCisJcmV0dXJuIC1FRkFVTFQ7CiB9CiAKIHN0YXRpYyBpbnQgYWR2a19wY2llX3dh aXRfcGlvKHN0cnVjdCBhZHZrX3BjaWUgKnBjaWUpCkBAIC03MDMsOCArNzQ3LDE3IEBAIHN0YXRp YyBpbnQgYWR2a19wY2llX3JkX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLAog CQkJCQkJIHNpemUsIHZhbCk7CiAKIAlpZiAoYWR2a19wY2llX3Bpb19pc19ydW5uaW5nKHBjaWUp KSB7Ci0JCSp2YWwgPSAweGZmZmZmZmZmOwotCQlyZXR1cm4gUENJQklPU19TRVRfRkFJTEVEOwor CQkvKgorCQkgKiBGb3IgUENJX1ZFTkRPUl9JRCByZWdpc3RlciwgcmV0dXJuIENvbXBsZXRpb24g UmV0cnkgU3RhdHVzCisJCSAqIHNvIGNhbGxlciB0cmllcyB0byBpc3N1ZSB0aGUgcmVxdWVzdCBh Z2FpbiBpbnN0ZWQgb2YgZmFpbGluZworCQkgKi8KKwkJaWYgKHdoZXJlID09IFBDSV9WRU5ET1Jf SUQpIHsKKwkJCSp2YWwgPSBDRkdfUkRfQ1JTX1ZBTDsKKwkJCXJldHVybiBQQ0lCSU9TX1NVQ0NF U1NGVUw7CisJCX0gZWxzZSB7CisJCQkqdmFsID0gMHhmZmZmZmZmZjsKKwkJCXJldHVybiBQQ0lC SU9TX1NFVF9GQUlMRUQ7CisJCX0KIAl9CiAKIAkvKiBQcm9ncmFtIHRoZSBjb250cm9sIHJlZ2lz dGVyICovCkBAIC03MjksMTUgKzc4MiwyNyBAQCBzdGF0aWMgaW50IGFkdmtfcGNpZV9yZF9jb25m KHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKIAlhZHZrX3dyaXRlbChwY2llLCAxLCBQ SU9fU1RBUlQpOwogCiAJcmV0ID0gYWR2a19wY2llX3dhaXRfcGlvKHBjaWUpOworCWlmIChyZXQg PCAwKSB7CisJCS8qCisJCSAqIEZvciBQQ0lfVkVORE9SX0lEIHJlZ2lzdGVyLCByZXR1cm4gQ29t cGxldGlvbiBSZXRyeSBTdGF0dXMKKwkJICogc28gY2FsbGVyIHRyaWVzIHRvIGlzc3VlIHRoZSBy ZXF1ZXN0IGFnYWluIGluc3RlYWQgb2YgZmFpbGluZworCQkgKi8KKwkJaWYgKHdoZXJlID09IFBD SV9WRU5ET1JfSUQpIHsKKwkJCSp2YWwgPSBDRkdfUkRfQ1JTX1ZBTDsKKwkJCXJldHVybiBQQ0lC SU9TX1NVQ0NFU1NGVUw7CisJCX0gZWxzZSB7CisJCQkqdmFsID0gMHhmZmZmZmZmZjsKKwkJCXJl dHVybiBQQ0lCSU9TX1NFVF9GQUlMRUQ7CisJCX0KKwl9CisKKwkvKiBDaGVjayBQSU8gc3RhdHVz IGFuZCBnZXQgdGhlIHJlYWQgcmVzdWx0ICovCisJcmV0ID0gYWR2a19wY2llX2NoZWNrX3Bpb19z dGF0dXMocGNpZSwgdmFsKTsKIAlpZiAocmV0IDwgMCkgewogCQkqdmFsID0gMHhmZmZmZmZmZjsK IAkJcmV0dXJuIFBDSUJJT1NfU0VUX0ZBSUxFRDsKIAl9CiAKLQlhZHZrX3BjaWVfY2hlY2tfcGlv X3N0YXR1cyhwY2llKTsKLQotCS8qIEdldCB0aGUgcmVhZCByZXN1bHQgKi8KLQkqdmFsID0gYWR2 a19yZWFkbChwY2llLCBQSU9fUkRfREFUQSk7CiAJaWYgKHNpemUgPT0gMSkKIAkJKnZhbCA9ICgq dmFsID4+ICg4ICogKHdoZXJlICYgMykpKSAmIDB4ZmY7CiAJZWxzZSBpZiAoc2l6ZSA9PSAyKQpA QCAtODAxLDcgKzg2Niw5IEBAIHN0YXRpYyBpbnQgYWR2a19wY2llX3dyX2NvbmYoc3RydWN0IHBj aV9idXMgKmJ1cywgdTMyIGRldmZuLAogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gUENJQklPU19T RVRfRkFJTEVEOwogCi0JYWR2a19wY2llX2NoZWNrX3Bpb19zdGF0dXMocGNpZSk7CisJcmV0ID0g YWR2a19wY2llX2NoZWNrX3Bpb19zdGF0dXMocGNpZSwgTlVMTCk7CisJaWYgKHJldCA8IDApCisJ CXJldHVybiBQQ0lCSU9TX1NFVF9GQUlMRUQ7CiAKIAlyZXR1cm4gUENJQklPU19TVUNDRVNTRlVM OwogfQotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=