From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F64C36492C for ; Sun, 5 Jul 2026 08:11:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783239080; cv=none; b=PFrFb2XM0FyXcAKxpVgxdHXc7IiHt4W7ghCiR+iQJlVteAvOy0siHUjUpgmUqu0ksdHwMxgweZwGgTJqM6r3KLqEAwuhmCEoY4MfQVV2Kef5aIsxD8CJWTCrpxCzMlT9PtqAdSRM445bnh/uvnY/hROd9RVA0jCyzBH3HswoGpA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783239080; c=relaxed/simple; bh=a196S0hbo3CUORhaD1jXa5J2HZoQ129tgT7e0UVK6L0=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=RH9oF1DVCx6384UOfVFSrwPrtwsDBp2F+v3V+K3YGQvP+gNYpeZkorU+T0nG5ygonqyMalL1OhaPUN4OZ2vxzqJo5whO1AV8nZmAtpGKSrRMzPY8N4q03OXy7CMbkUAp+3RZx4LPWxsRSa2V8O59bQT3xxUN07eTggSNm5f56R0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UpxC8oE7; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UpxC8oE7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5EEFB1F000E9; Sun, 5 Jul 2026 08:11:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783239078; bh=E2cM6Kpq0UOPf89FzkSY9/2JBmy6n1whs04H4LNgR3I=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=UpxC8oE7dTIfmfWiVTjuy38GbTUrtrxwerhK0pMxphSjzpA2+4nZuvCb5rdLtgWMW XtjY3RoJSnQEnl5tei+JoWbdpvnO0xIHReTD68J+vsWcWbAQlKy8KhivhsrEt1l3w3 dYoZ+3SftI8M1/dCe+ZrmYWVGCNWu1WLpEEA5FkIeWd/RMlF6xQl+2wHSn8PFTTNXr BEtlyP2cmg9guj2L6WGBGN6wyhGLN+eeO+kFAs+5TaCeXUzZG3sijrwH92AJ9O12Br 3pS415W6ghum6VckY7J5yGphM1Cd2WQP+hw0L/w/r7j1Qf/RNYWx9C/+stWG9jUU4P U1kEqEEagxSHg== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 5/5] phy: cpcap-usb: add extcon support Reply-To: sashiko-reviews@lists.linux.dev To: "Ivaylo Dimitrov" Cc: neil.armstrong@linaro.org, devicetree@vger.kernel.org, olteanv@gmail.com, vkoul@kernel.org, robh@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org In-Reply-To: <20260705075809.1793784-6-ivo.g.dimitrov.75@gmail.com> References: <20260705075809.1793784-1-ivo.g.dimitrov.75@gmail.com> <20260705075809.1793784-6-ivo.g.dimitrov.75@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sun, 05 Jul 2026 08:11:17 +0000 Message-Id: <20260705081118.5EEFB1F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 3 potential issue(= s) to consider: New issues: - [High] Missing Kconfig dependency on CONFIG_EXTCON causes linker errors o= r breaks USB probe entirely if Extcon is disabled or built as a module. Pre-existing issues: - [High] Race condition between module removal and the threaded IRQ handler= can lead to a use-after-free of `ddata`. - [High] Booting with a USB cable or charger already attached prevents the = driver from detecting the connection. -- commit 85bc183819335614278666a8396810aa855aa0d7 Author: Ivaylo Dimitrov phy: cpcap-usb: add extcon support =20 Register an Extcon device and report the detected cable state. The driver already determines the type of cable attached during USB cable detection. Export the detected state through the Extcon framework so other drivers can consume it using a standard kernel interface. > diff --git a/drivers/phy/motorola/phy-cpcap-usb.c b/drivers/phy/motorola/= phy-cpcap-usb.c > index e776e54bbfd56..f1f2fe8183241 100644 > --- a/drivers/phy/motorola/phy-cpcap-usb.c > +++ b/drivers/phy/motorola/phy-cpcap-usb.c [ ... ] > @@ -345,6 +400,8 @@ static void cpcap_usb_detect(struct work_struct *work) > if (ddata->mode =3D=3D CPCAP_USB) > cpcap_usb_try_musb_mailbox(ddata, MUSB_VBUS_VALID); > =20 > + cpcap_usb_set_extcon(ddata); > + > return; > } [Severity: High] This is a pre-existing issue, but does the early return logic just above th= is section prevent the driver from detecting a cable connected at boot time? Looking earlier in cpcap_usb_detect(): if (vbus && ddata->mode !=3D CPCAP_USB_HOST) { enum cpcap_mode new_mode; if (!s.chrg_det || !s.sessvld || ddata->mode !=3D CPCAP_IDLE) return; At probe, ddata->mode is initialized to CPCAP_UNKNOWN. If a cable is already attached when the device boots, vbus is valid. The condition checks if ddata->mode !=3D CPCAP_IDLE, which evaluates to true because the mode is se= t to CPCAP_UNKNOWN.=20 This causes an early return without updating the mode or rescheduling the work, which seems to leave the USB connection undetected. [ ... ] > @@ -785,7 +843,18 @@ static int cpcap_usb_phy_probe(struct platform_devic= e *pdev) > if (!otg) > return -ENOMEM; > =20 > + ddata->edev =3D devm_extcon_dev_allocate(&pdev->dev, cpcap_extcon_cable= s); > + if (IS_ERR(ddata->edev)) { > + return dev_err_probe(&pdev->dev, PTR_ERR(ddata->edev), > + "failed to allocate extcon device\n"); > + } > + > + error =3D devm_extcon_dev_register(&pdev->dev, ddata->edev); > + if (error < 0) > + return error; > + [Severity: High] Does PHY_CPCAP_USB need a Kconfig dependency on CONFIG_EXTCON? If the driver is built-in but the extcon subsystem is configured as a module, won't this cause a build failure due to undefined references to devm_extcon_dev_allocate() and devm_extcon_dev_register()? Additionally, if the extcon subsystem is completely disabled, the stub function for devm_extcon_dev_allocate() returns ERR_PTR(-ENOSYS). This would cause cpcap_usb_phy_probe() to unconditionally fail. [ ... ] [Severity: High] This is a pre-existing issue, but is there a race condition during module removal that could lead to a use-after-free of the ddata structure? During driver removal, cpcap_usb_phy_remove() sets ddata->active to 0 and cancels the delayed work: atomic_set(&ddata->active, 0); cancel_delayed_work_sync(&ddata->detect_work); However, the IRQ is managed by devm_request_threaded_irq() and remains active until after the remove function completes. If the threaded IRQ handl= er cpcap_phy_irq_thread() reads ddata->active =3D=3D 1 but is preempted before calling schedule_delayed_work(): if (!atomic_read(&ddata->active)) return IRQ_NONE; =09 schedule_delayed_work(&ddata->detect_work, msecs_to_jiffies(1)); The remove function could finish, causing devm to free the ddata structure. When the IRQ thread resumes, it would schedule work using the freed ddata pointer. Could this be resolved by explicitly disabling the IRQ before canceling the work? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260705075809.1793= 784-1-ivo.g.dimitrov.75@gmail.com?part=3D5 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 42199C43458 for ; Sun, 5 Jul 2026 08:11:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=m7d0Wz24dhZ7OayHcWEiXEXegNzzhRIj1l6X/FAOVfY=; b=oC/Ns20QrBU2RS xZ8+fzl5S2VUby/G9r5QtpPXPl0iNWmUYJQDWF9P+O8GSBU2qLs75vrNeXWHJ8KjMWhoWIh2cxB1h OOIiJ8dr3MZKJ8XkkeTrP4NUl9bHNNNgrhxtRSg+IQSSicbpGShc74bQ66S4A+nzrLkWKEl/kQxHf 5C1jGRB9CcwX2bj1pHxiTaZrs0zL27ZtwGsk/kEVMeOVmGaXKAc6iTn29r5Ub8AjNkf7OwlST43ne YsErW+hreVtKfl7+CazHRjbZ+VUtx8Q291i1SAppfutODTRPAMggDHfZlWi9vjiSU+2yQ3XjgTyPd AtOVrd1NDy9lKDAXFU9w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wgHwe-00000009606-40Jg; Sun, 05 Jul 2026 08:11:21 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wgHwd-000000095zy-2eKo for linux-phy@lists.infradead.org; Sun, 05 Jul 2026 08:11:19 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 18A4560052; Sun, 5 Jul 2026 08:11:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5EEFB1F000E9; Sun, 5 Jul 2026 08:11:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783239078; bh=E2cM6Kpq0UOPf89FzkSY9/2JBmy6n1whs04H4LNgR3I=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=UpxC8oE7dTIfmfWiVTjuy38GbTUrtrxwerhK0pMxphSjzpA2+4nZuvCb5rdLtgWMW XtjY3RoJSnQEnl5tei+JoWbdpvnO0xIHReTD68J+vsWcWbAQlKy8KhivhsrEt1l3w3 dYoZ+3SftI8M1/dCe+ZrmYWVGCNWu1WLpEEA5FkIeWd/RMlF6xQl+2wHSn8PFTTNXr BEtlyP2cmg9guj2L6WGBGN6wyhGLN+eeO+kFAs+5TaCeXUzZG3sijrwH92AJ9O12Br 3pS415W6ghum6VckY7J5yGphM1Cd2WQP+hw0L/w/r7j1Qf/RNYWx9C/+stWG9jUU4P U1kEqEEagxSHg== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 5/5] phy: cpcap-usb: add extcon support To: "Ivaylo Dimitrov" Cc: neil.armstrong@linaro.org, devicetree@vger.kernel.org, olteanv@gmail.com, vkoul@kernel.org, robh@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org In-Reply-To: <20260705075809.1793784-6-ivo.g.dimitrov.75@gmail.com> References: <20260705075809.1793784-1-ivo.g.dimitrov.75@gmail.com> <20260705075809.1793784-6-ivo.g.dimitrov.75@gmail.com> Date: Sun, 05 Jul 2026 08:11:17 +0000 Message-Id: <20260705081118.5EEFB1F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtIaWdoXSBN aXNzaW5nIEtjb25maWcgZGVwZW5kZW5jeSBvbiBDT05GSUdfRVhUQ09OIGNhdXNlcyBsaW5rZXIg ZXJyb3JzIG9yIGJyZWFrcyBVU0IgcHJvYmUgZW50aXJlbHkgaWYgRXh0Y29uIGlzIGRpc2FibGVk IG9yIGJ1aWx0IGFzIGEgbW9kdWxlLgoKUHJlLWV4aXN0aW5nIGlzc3VlczoKLSBbSGlnaF0gUmFj ZSBjb25kaXRpb24gYmV0d2VlbiBtb2R1bGUgcmVtb3ZhbCBhbmQgdGhlIHRocmVhZGVkIElSUSBo YW5kbGVyIGNhbiBsZWFkIHRvIGEgdXNlLWFmdGVyLWZyZWUgb2YgYGRkYXRhYC4KLSBbSGlnaF0g Qm9vdGluZyB3aXRoIGEgVVNCIGNhYmxlIG9yIGNoYXJnZXIgYWxyZWFkeSBhdHRhY2hlZCBwcmV2 ZW50cyB0aGUgZHJpdmVyIGZyb20gZGV0ZWN0aW5nIHRoZSBjb25uZWN0aW9uLgotLQoKY29tbWl0 IDg1YmMxODM4MTkzMzU2MTQyNzg2NjZhODM5NjgxMGFhODU1YWEwZDcKQXV0aG9yOiBJdmF5bG8g RGltaXRyb3YgPGl2by5nLmRpbWl0cm92Ljc1QGdtYWlsLmNvbT4KCnBoeTogY3BjYXAtdXNiOiBh ZGQgZXh0Y29uIHN1cHBvcnQKICAgIApSZWdpc3RlciBhbiBFeHRjb24gZGV2aWNlIGFuZCByZXBv cnQgdGhlIGRldGVjdGVkIGNhYmxlIHN0YXRlLgpUaGUgZHJpdmVyIGFscmVhZHkgZGV0ZXJtaW5l cyB0aGUgdHlwZSBvZiBjYWJsZSBhdHRhY2hlZCBkdXJpbmcgVVNCIGNhYmxlCmRldGVjdGlvbi4g RXhwb3J0IHRoZSBkZXRlY3RlZCBzdGF0ZSB0aHJvdWdoIHRoZSBFeHRjb24gZnJhbWV3b3JrIHNv Cm90aGVyIGRyaXZlcnMgY2FuIGNvbnN1bWUgaXQgdXNpbmcgYSBzdGFuZGFyZCBrZXJuZWwgaW50 ZXJmYWNlLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvbW90b3JvbGEvcGh5LWNwY2FwLXVz Yi5jIGIvZHJpdmVycy9waHkvbW90b3JvbGEvcGh5LWNwY2FwLXVzYi5jCj4gaW5kZXggZTc3NmU1 NGJiZmQ1Ni4uZjFmMmZlODE4MzI0MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BoeS9tb3Rvcm9s YS9waHktY3BjYXAtdXNiLmMKPiArKysgYi9kcml2ZXJzL3BoeS9tb3Rvcm9sYS9waHktY3BjYXAt dXNiLmMKWyAuLi4gXQo+IEBAIC0zNDUsNiArNDAwLDggQEAgc3RhdGljIHZvaWQgY3BjYXBfdXNi X2RldGVjdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAkJaWYgKGRkYXRhLT5tb2RlID09 IENQQ0FQX1VTQikKPiAgCQkJY3BjYXBfdXNiX3RyeV9tdXNiX21haWxib3goZGRhdGEsIE1VU0Jf VkJVU19WQUxJRCk7Cj4gIAo+ICsJCWNwY2FwX3VzYl9zZXRfZXh0Y29uKGRkYXRhKTsKPiArCj4g IAkJcmV0dXJuOwo+ICAJfQoKW1NldmVyaXR5OiBIaWdoXQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5n IGlzc3VlLCBidXQgZG9lcyB0aGUgZWFybHkgcmV0dXJuIGxvZ2ljIGp1c3QgYWJvdmUgdGhpcwpz ZWN0aW9uIHByZXZlbnQgdGhlIGRyaXZlciBmcm9tIGRldGVjdGluZyBhIGNhYmxlIGNvbm5lY3Rl ZCBhdCBib290IHRpbWU/CgpMb29raW5nIGVhcmxpZXIgaW4gY3BjYXBfdXNiX2RldGVjdCgpOgoK CWlmICh2YnVzICYmIGRkYXRhLT5tb2RlICE9IENQQ0FQX1VTQl9IT1NUKSB7CgkJZW51bSBjcGNh cF9tb2RlIG5ld19tb2RlOwoKCQlpZiAoIXMuY2hyZ19kZXQgfHwgIXMuc2Vzc3ZsZCB8fCBkZGF0 YS0+bW9kZSAhPSBDUENBUF9JRExFKQoJCQlyZXR1cm47CgpBdCBwcm9iZSwgZGRhdGEtPm1vZGUg aXMgaW5pdGlhbGl6ZWQgdG8gQ1BDQVBfVU5LTk9XTi4gSWYgYSBjYWJsZSBpcyBhbHJlYWR5CmF0 dGFjaGVkIHdoZW4gdGhlIGRldmljZSBib290cywgdmJ1cyBpcyB2YWxpZC4gVGhlIGNvbmRpdGlv biBjaGVja3MgaWYKZGRhdGEtPm1vZGUgIT0gQ1BDQVBfSURMRSwgd2hpY2ggZXZhbHVhdGVzIHRv IHRydWUgYmVjYXVzZSB0aGUgbW9kZSBpcyBzZXQgdG8KQ1BDQVBfVU5LTk9XTi4gCgpUaGlzIGNh dXNlcyBhbiBlYXJseSByZXR1cm4gd2l0aG91dCB1cGRhdGluZyB0aGUgbW9kZSBvciByZXNjaGVk dWxpbmcgdGhlCndvcmssIHdoaWNoIHNlZW1zIHRvIGxlYXZlIHRoZSBVU0IgY29ubmVjdGlvbiB1 bmRldGVjdGVkLgoKWyAuLi4gXQo+IEBAIC03ODUsNyArODQzLDE4IEBAIHN0YXRpYyBpbnQgY3Bj YXBfdXNiX3BoeV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJaWYgKCFv dGcpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+ICsJZGRhdGEtPmVkZXYgPSBkZXZtX2V4dGNv bl9kZXZfYWxsb2NhdGUoJnBkZXYtPmRldiwgY3BjYXBfZXh0Y29uX2NhYmxlcyk7Cj4gKwlpZiAo SVNfRVJSKGRkYXRhLT5lZGV2KSkgewo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5k ZXYsIFBUUl9FUlIoZGRhdGEtPmVkZXYpLAo+ICsJCQkJICAgICAiZmFpbGVkIHRvIGFsbG9jYXRl IGV4dGNvbiBkZXZpY2VcbiIpOwo+ICsJfQo+ICsKPiArCWVycm9yID0gZGV2bV9leHRjb25fZGV2 X3JlZ2lzdGVyKCZwZGV2LT5kZXYsIGRkYXRhLT5lZGV2KTsKPiArCWlmIChlcnJvciA8IDApCj4g KwkJcmV0dXJuIGVycm9yOwo+ICsKCltTZXZlcml0eTogSGlnaF0KRG9lcyBQSFlfQ1BDQVBfVVNC IG5lZWQgYSBLY29uZmlnIGRlcGVuZGVuY3kgb24gQ09ORklHX0VYVENPTj8KCklmIHRoZSBkcml2 ZXIgaXMgYnVpbHQtaW4gYnV0IHRoZSBleHRjb24gc3Vic3lzdGVtIGlzIGNvbmZpZ3VyZWQgYXMg YQptb2R1bGUsIHdvbid0IHRoaXMgY2F1c2UgYSBidWlsZCBmYWlsdXJlIGR1ZSB0byB1bmRlZmlu ZWQgcmVmZXJlbmNlcyB0bwpkZXZtX2V4dGNvbl9kZXZfYWxsb2NhdGUoKSBhbmQgZGV2bV9leHRj b25fZGV2X3JlZ2lzdGVyKCk/CgpBZGRpdGlvbmFsbHksIGlmIHRoZSBleHRjb24gc3Vic3lzdGVt IGlzIGNvbXBsZXRlbHkgZGlzYWJsZWQsIHRoZSBzdHViCmZ1bmN0aW9uIGZvciBkZXZtX2V4dGNv bl9kZXZfYWxsb2NhdGUoKSByZXR1cm5zIEVSUl9QVFIoLUVOT1NZUykuIFRoaXMKd291bGQgY2F1 c2UgY3BjYXBfdXNiX3BoeV9wcm9iZSgpIHRvIHVuY29uZGl0aW9uYWxseSBmYWlsLgoKWyAuLi4g XQoKW1NldmVyaXR5OiBIaWdoXQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlzc3VlLCBidXQgaXMg dGhlcmUgYSByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbW9kdWxlCnJlbW92YWwgdGhhdCBjb3VsZCBs ZWFkIHRvIGEgdXNlLWFmdGVyLWZyZWUgb2YgdGhlIGRkYXRhIHN0cnVjdHVyZT8KCkR1cmluZyBk cml2ZXIgcmVtb3ZhbCwgY3BjYXBfdXNiX3BoeV9yZW1vdmUoKSBzZXRzIGRkYXRhLT5hY3RpdmUg dG8gMCBhbmQKY2FuY2VscyB0aGUgZGVsYXllZCB3b3JrOgoKCWF0b21pY19zZXQoJmRkYXRhLT5h Y3RpdmUsIDApOwoJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZGF0YS0+ZGV0ZWN0X3dvcmsp OwoKSG93ZXZlciwgdGhlIElSUSBpcyBtYW5hZ2VkIGJ5IGRldm1fcmVxdWVzdF90aHJlYWRlZF9p cnEoKSBhbmQgcmVtYWlucwphY3RpdmUgdW50aWwgYWZ0ZXIgdGhlIHJlbW92ZSBmdW5jdGlvbiBj b21wbGV0ZXMuIElmIHRoZSB0aHJlYWRlZCBJUlEgaGFuZGxlcgpjcGNhcF9waHlfaXJxX3RocmVh ZCgpIHJlYWRzIGRkYXRhLT5hY3RpdmUgPT0gMSBidXQgaXMgcHJlZW1wdGVkIGJlZm9yZQpjYWxs aW5nIHNjaGVkdWxlX2RlbGF5ZWRfd29yaygpOgoKCWlmICghYXRvbWljX3JlYWQoJmRkYXRhLT5h Y3RpdmUpKQoJCXJldHVybiBJUlFfTk9ORTsKCQoJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZGF0 YS0+ZGV0ZWN0X3dvcmssIG1zZWNzX3RvX2ppZmZpZXMoMSkpOwoKVGhlIHJlbW92ZSBmdW5jdGlv biBjb3VsZCBmaW5pc2gsIGNhdXNpbmcgZGV2bSB0byBmcmVlIHRoZSBkZGF0YSBzdHJ1Y3R1cmUu CldoZW4gdGhlIElSUSB0aHJlYWQgcmVzdW1lcywgaXQgd291bGQgc2NoZWR1bGUgd29yayB1c2lu ZyB0aGUgZnJlZWQgZGRhdGEKcG9pbnRlci4gQ291bGQgdGhpcyBiZSByZXNvbHZlZCBieSBleHBs aWNpdGx5IGRpc2FibGluZyB0aGUgSVJRIGJlZm9yZQpjYW5jZWxpbmcgdGhlIHdvcms/CgotLSAK U2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYw NzA1MDc1ODA5LjE3OTM3ODQtMS1pdm8uZy5kaW1pdHJvdi43NUBnbWFpbC5jb20/cGFydD01Cgot LSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK