From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=13.75.44.102 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794571609; b=Xi11Xe5jpHSZ2n+YxxbiraWM/ido5MNu5Ylw+Co/YvSofGz7pTu/vtxIde1O/mMYao+g 2KbzNAtuN0P1ZfTBakC+bHRzuwt1vKCG3y2gqhWCwRGwvdx2yD7VhTXvUQm4ngAq/U/6I tv91H/cCkwKb3ARbrVGFQYFG1sfKQbGsZtlMaZoWAZB4RnN0ZXyQtcRAdKrcnRDNTd3lW 9wNwC58tAalI8mVZSdSybUEDhqnN6j3PjotYaG5I6Lt/5IQHKilhYNw16D57kf1fejHQ4 VknrLprI/GlsMX1XuKnZaRiF9l4DfGNmIsaNEsSkzG6aiBWWNU0CYS2n1N3qkZeUmJw== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794571609; h=DMARC-Filter:Received:X-Originating-IP:Date:X-CM-HeaderCharset:From: To:Cc:Subject:X-Priority:X-Mailer:In-Reply-To:References: X-CM-CTRLMSGS:Content-Type:MIME-Version:Message-ID:X-Coremail-Locale: X-CM-TRANSID:X-CM-SenderInfo:X-Coremail-Antispam; bh=Ky9MvA0vhkEFo/bNmUVUdeqeTv33/W6LEIXUVVmZQe4=; b=kMjxBbhUfDzAnXXDG/RH8SapYLmzD+jEXYRtjxlXEEdacnTHakdUHS/qKS7t2BkdoZio FLVhAvfTA6vTzwaO0JiZwb6tExTquw0Lop1HcLbc9cO1IpcrK0HlXgly6h+eMCfCIYSXK 66qM3Dm7h3muNRkVjzAfYbRumKFS3VbcslSS1Q9O8fRe6O1NfuVKlGbA2tJBvlWsfa0oz a0YQcXMOyRCs/7ioh7S20PCE6b3KyyfNM+NCUtrK38C5DbOXX4kZ91bjN/NH7uHXbfsiu NIYZa6KCHBXya19LxsHJFysdA+PSyU1O1XgGHYIaTPu/Tm5JT288LhdJ03wkQ8kkOsw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none header.from=hust.edu.cn; spf=pass smtp.mailfrom=hust.edu.cn; arc=none smtp.remote-ip=13.75.44.102 Received: from azure-sdnproxy.icoremail.net (azure-sdnproxy.icoremail.net [13.75.44.102]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AC172606B5BE; Fri, 13 Nov 2026 12:06:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org AC172606B5BE Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=hust.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hust.edu.cn Received: from xuhx$hust.edu.cn ( [10.12.190.107] ) by ajax-webmail-app1 (Coremail) ; Fri, 13 Nov 2026 20:06:38 +0800 (GMT+08:00) Date: Fri, 13 Nov 2026 20:06:38 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: =?UTF-8?B?5b6Q5pmX57+U?= To: perex@perex.cz, tiwai@suse.com Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: ALSA: asihpi: quiesce PCM timer and IRQ before freeing dpcm on close (UAF) X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2025.3-cmXT6 build 20260810(6c94e3b5) Copyright (c) 2002-2026 www.mailtech.cn hust In-Reply-To: <2026102727-data-sequel-ce41@gregkh> References: <4c7f9772.192e1.1a17d5c2ed5.Coremail.xuhx@hust.edu.cn> <2026102727-data-sequel-ce41@gregkh> X-CM-CTRLMSGS: =?B?NplfHDiH6nJ5xwDR7hwMki1N8jM= Content-Type: multipart/mixed; boundary="----=_Part_522358_147816319.1794571598740" X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Message-ID: <2337e87f.262ec.1a1d4cd7b94.Coremail.xuhx@hust.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:IAEQrMCmbmpO_fZqOflGAA--.14983W X-CM-SenderInfo: bgsqjkayqyjmo6kx23oohg3hdfq/1tbiAQIKB2r15u1-+gABse X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWkKw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= ------=_Part_522358_147816319.1794571598740 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 YHNuZF9jYXJkX2FzaWhwaV9ydW50aW1lX2ZyZWUoKWAgZnJlZXMgdGhlIHBlci1vcGVuIGBzdHJ1 Y3QKc25kX2NhcmRfYXNpaHBpX3BjbWAgd2hpbGUgYSBwb2xsZWQgdGltZXIgY2FsbGJhY2sgb3Ig YW4gSVJRL3RocmVhZGVkIGhhbmRsZXIKY2FuIHN0aWxsIHVzZSBpdC4gIFRoZSBwb2xsZWQgc3Rv cCBwYXRoIHVzZXMgYHRpbWVyX2RlbGV0ZSgpYCAobm90CmB0aW1lcl9kZWxldGVfc3luYygpYCks IGFuZCB0aGUgSVJRIHN0b3AgcGF0aCBjbGVhcnMKYGNhcmQtPmxsbW9kZV9zdHJlYW1wcml2YCB3 aXRob3V0IGBzeW5jaHJvbml6ZV9pcnEoKWAuICBBIG5vcm1hbCBQQ00gY2xvc2UgY2FuCnRoZXJl Zm9yZSBmcmVlIGBkcGNtYCBhbmQgdGhlbiBgcnVudGltZWAgd2hpbGUgdGhlIGNhbGxiYWNrIGlz IHN0aWxsIHJ1bm5pbmcuCgpUaGUgZGV0YWlsZWQgZGVzY3JpcHRpb246CgoqIFRlc3QgZW52aXJv bm1lbnQgLyBhZmZlY3RlZCB2ZXJzaW9uCgogIExpbnV4IDcuMy4wIHNvdXJjZSBwbHVzIGEgUUVN VS9LQVNBTiBmYWtlLVBDTSBoYXJuZXNzLiAgTm8gQVNJNjIwNSBoYXJkd2FyZQogIHdhcyBhdmFp bGFibGU7IHRoZSBoYXJuZXNzIHZhbGlkYXRlcyB0aGUgQUxTQSBjb3JlIGNsb3NlIG9yZGVyaW5n IGFuZCB0aGUKICBleGFjdCBgdGltZXJfZGVsZXRlYC9gbGxtb2RlX3N0cmVhbXByaXZgIGxpZmV0 aW1lIHBhdHRlcm4uCgoqIE1lY2hhbmlzbQoKICBgc25kX2NhcmRfYXNpaHBpX3J1bnRpbWVfZnJl ZSgpYCAoYGFzaWhwaS5jOjQ5NS00OTlgKSBkb2VzIGBrZnJlZShkcGNtKWAgYW5kCiAgaXMgaW5z dGFsbGVkIGFzIGBydW50aW1lLT5wcml2YXRlX2ZyZWVgIGF0IHBsYXliYWNrIG9wZW4KICAoYGFz aWhwaS5jOjk5Ny0xMDAwYCkgYW5kIGNhcHR1cmUgb3BlbiAoYDExNjYtMTE2OWApLgoKICBQb2xs ZWQgbW9kZToKCiAgICBzbmRfY2FyZF9hc2locGlfcGNtX3RpbWVyX3N0YXJ0KCkgIGFzaWhwaS5j OjUwMS01MTMKICAgICAgICBtb2RfdGltZXIoJmRwY20tPnRpbWVyLCBqaWZmaWVzICsgZXhwaXJ5 KTsKICAgICAgICBkcGNtLT5yZXNwYXduX3RpbWVyID0gMTsKCiAgICBzbmRfY2FyZF9hc2locGlf cGNtX3RpbWVyX3N0b3AoKSAgIGFzaWhwaS5jOjUxNS01MjIKICAgICAgICBkcGNtLT5yZXNwYXdu X3RpbWVyID0gMDsKICAgICAgICB0aW1lcl9kZWxldGUoJmRwY20tPnRpbWVyKTsgICAgIC8qIG5v IHN5bmMgKi8KCiAgYHNuZF9jYXJkX2FzaWhwaV90aW1lcl9mdW5jdGlvbigpYCAoYGFzaWhwaS5j OjcxMC04OTZgKSB1c2VzIGBkcGNtYAogIHRocm91Z2hvdXQgYW5kIGNhbiByZS1hcm0gYXQgODk0 LTg5NSBpZiBpdCBvYnNlcnZlcyBgcmVzcGF3bl90aW1lcmAuCgogIElSUSBtb2RlOgoKICAgIHNu ZF9jYXJkX2FzaWhwaV9wY21faW50X3N0YXJ0KCkgICAgYXNpaHBpLmM6NTI0LTUzOAogICAgICAg IGNhcmQtPmxsbW9kZV9zdHJlYW1wcml2ID0gZHBjbTsKICAgICAgICAuLi4gc2V0IEhQSSBJUlEg cmF0ZSAuLi4KCiAgICBzbmRfY2FyZF9hc2locGlfcGNtX2ludF9zdG9wKCkgICAgIGFzaWhwaS5j OjU0MC01NTAKICAgICAgICAuLi4gc2V0IEhQSSBJUlEgcmF0ZSAwIC4uLgogICAgICAgIGNhcmQt PmxsbW9kZV9zdHJlYW1wcml2ID0gTlVMTDsgIC8qIG5vIHN5bmNocm9uaXplX2lycSAqLwoKICBg c25kX2NhcmRfYXNpaHBpX2lzcigpYCAoYGFzaWhwaS5jOjg5OC05MDdgKSByZWFkcwogIGBhc2lo cGktPmxsbW9kZV9zdHJlYW1wcml2YCB0d2ljZSAoY2hlY2ssIHRoZW4gZGVyZWZlcmVuY2UpLCBz byBhIHRocmVhZGVkCiAgaGFuZGxlciBjYW4gaG9sZCB0aGUgb2xkIGBkcGNtYCBwb2ludGVyIGFj cm9zcyB0aGUgTlVMTCBzdG9yZS4KCiAgQ2xvc2UgcGF0aDogYHNuZF9wY21fcmVsZWFzZV9zdWJz dHJlYW0oKWAKICAoYHNvdW5kL2NvcmUvcGNtX25hdGl2ZS5jOjI3ODUtMjgwNWApIC0+IGBzbmRf cGNtX2Ryb3AoKWAKICAoYHBjbV9uYXRpdmUuYzoyMjY3LTIyODlgKSAtPiBgc25kX3BjbV9kZXRh Y2hfc3Vic3RyZWFtKClgCiAgKGBzb3VuZC9jb3JlL3BjbS5jOjk3OC0xMDA1YCkgLT4gYHJ1bnRp bWUtPnByaXZhdGVfZnJlZSgpYCAtPiBga2ZyZWUoZHBjbSlgCiAgYW5kIHRoZW4gYGtmcmVlKHJ1 bnRpbWUpYC4KCgoqIFRyaWdnZXIgbW9kZWwKCiAgTG9jYWwgdXNlciBvcGVucyBhIGNhcHR1cmUg b3IgcGxheWJhY2sgUENNLCBzdGFydHMgaXQsIGFuZCBjbG9zZXMgaXQgd2hpbGUKICB0aGUgcG9s bGVkIHRpbWVyIG9yIEhQSSBJUlEgaXMgYWN0aXZlLiAgUG9sbGVkIG1vZGUgaXMgYXZhaWxhYmxl IG9uIEhQSTYwMDAKICBhbmQgSFBJNjIwNTsgSVJRIG1vZGUgcmVxdWlyZXMgSFBJNjIwNSBpbiBp bnRlcnJ1cHQgbW9kZS4gIFNNUC9wcmVlbXB0aW9uCiAgbmVlZGVkIGZvciB0aGUgY3Jvc3MtQ1BV IHdpbmRvdy4gIENvbnNlcXVlbmNlOiBVQUYgb2YgYGRwY21gL2BydW50aW1lYCBpbgogIHRpbWVy IHNvZnRpcnEgb3IgdGhyZWFkZWQgSVJROyBjcmFzaCBvciBtZW1vcnkgY29ycnVwdGlvbi4KCiog RHluYW1pYyBldmlkZW5jZQoKICBgc25kcGNpX3JhY2UuY2AgbW9kZSBgcGNtYCwgYHZlcmlmaWNh dGlvbi9rbW9kLwogIHNuZHBjaS9wY210ZXN0LmMgY2xvc2UgMjAwYDogYC50cmlnZ2VyIFNUT1Bg IHVzZXMgYHRpbWVyX2RlbGV0ZSgpYCBhbmQKICBgcnVudGltZS0+cHJpdmF0ZV9mcmVlYCBmcmVl cyBgZHBjbWA7IHRpbWVyIHBpbm5lZCB0byBDUFUwLCB1c2VyIGNsb3NlIHRvCiAgQ1BVMS4gIENv bnRhaW4gMzUgS0FTQU4gVUFGIHJlcG9ydCBmcmFnbWVudHM6CgogICAgQlVHOiBLQVNBTjogc2xh Yi11c2UtYWZ0ZXItZnJlZSBpbiByYWNlX3BjbV90aW1lcgogICAgLi4uCiAgICBBbGxvY2F0ZWQg YnkgdGFzazogcmFjZV9wY21fb3BlbgogICAgRnJlZWQgYnkgdGFzazoga2ZyZWUgLT4gc25kX3Bj bV9kZXRhY2hfc3Vic3RyZWFtIC0+IHNuZF9wY21fcmVsZWFzZQoKCgoqIFN1Z2dlc3RlZCBkaXJl Y3Rpb24KCiAgSW4gYHNuZF9jYXJkX2FzaWhwaV9ydW50aW1lX2ZyZWUoKWAgKG9yIGltbWVkaWF0 ZWx5IGJlZm9yZSBpdCksIGZvciBwb2xsZWQKICBtb2RlIGNhbGwgYHRpbWVyX3NodXRkb3duX3N5 bmMoJmRwY20tPnRpbWVyKWAuICBGb3IgSVJRIG1vZGUsIGZpcnN0IGNsZWFyCiAgYGNhcmQtPmxs bW9kZV9zdHJlYW1wcml2YCAod2l0aCB0aGUgYXBwcm9wcmlhdGUgb3JkZXJpbmcpLCB0aGVuCiAg YHN5bmNocm9uaXplX2lycShjYXJkLT5ocGktPmlycSlgIGJlZm9yZSBga2ZyZWUoZHBjbSlgLiAg RG8gbm90IHB1dCB0aGUKICBzbGVlcGluZyBzeW5jIGluc2lkZSB0aGUgUENNIHN0cmVhbSBsb2Nr OyBkbyBpdCBpbiB0aGUgZGV0YWNoL3ByaXZhdGVfZnJlZQogIHByb2Nlc3MgY29udGV4dC4gIEFs c28gY29uc2lkZXIgcXVpZXNjaW5nIGJlZm9yZSB0aGUgSFBJIHN0cmVhbSBgLmNsb3NlYAogICh0 aGUgZXh0cmEgSFBJIHN0cmVhbSBoYW5kbGUgd2luZG93IGlzIGRpc2N1c3NlZCBpbiB0aGUgcmVw b3J0KS4KCgoKUGxlYXNlIGtlZXAgbWUgaW4gQ2M7IEkgYW0gbm90IHN1YnNjcmliZWQgdG8gdGhl IGxpc3RzLgoKClJlZ2FyZHMsCkhhbnhpYW5nIFh1Cnh1aHhAaHVzdC5lZHUuY24K ------=_Part_522358_147816319.1794571598740 Content-Type: text/plain; name=sndpci_race.c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sndpci_race.c" Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLyoKICogc25kcGNpX3JhY2UuYyAt IG1pbmltYWwgQUxTQS9rZXJuZWwgbGlmZXRpbWUtcmFjZSByZXByb2R1Y2VycyBmb3IgdGhlCiAq IHNvdW5kL3BjaSBtYW51YWwtcmV2aWV3IGNhc2VzIFYzL1Y0L1Y1LgogKgogKiBUaGUgbW9kdWxl IGRlbGliZXJhdGVseSByZXByb2R1Y2VzIHRoZSAqbGlmZXRpbWUgcGF0dGVybnMqIHVzZWQgYnkK ICogY3R4ZmkvYXNpaHBpLCB1c2luZyBvbmx5IGV4cG9ydGVkIEFMU0EgY29yZSBhbmQgdGltZXIg QVBJcy4gIEl0IGlzIG5vdCBhCiAqIGN0eGZpL2FzaWhwaSBlbXVsYXRvcjogdGhvc2UgZHJpdmVy cyBuZWVkIGhhcmR3YXJlIHRoYXQgdGhpcyBRRU1VIGRvZXMgbm90CiAqIHByb3ZpZGUuICBUaGUg cHVycG9zZSBpcyB0byB0ZXN0IHdoZXRoZXIgdGhlIGNvcmUvQVBJIHdpbmRvd3MgaWRlbnRpZmll ZCBpbgogKiB0aGUgcmVwb3J0IGFyZSByZWFsIG9uIGFuIGluc3RydW1lbnRlZCBLQVNBTiBrZXJu ZWwuCiAqCiAqIG1vZGVzOgogKiAgIHYzICAtIHRpbWVyX2RlbGV0ZV9zeW5jX3RyeSgpIHJldHVy bnMgLTEgd2hpbGUgdGhlIGNhbGxiYWNrIHJ1bnMgb24KICogICAgICAgICBhbm90aGVyIENQVTsg ZnJlZSB0aGUgb2JqZWN0IGFueXdheSAoY3R4Zmkgc3lzdGVtLXRpbWVyIHBhdHRlcm4pLgogKiAg IHBjbSAtIGNyZWF0ZSBhIGZha2UgQUxTQSBjYXJkIHdpdGggdHdvIHBsYXliYWNrIHN1YnN0cmVh bXMuICBUaGUgZ3Vlc3QKICogICAgICAgICBwcm9ncmFtIHBjbXRlc3QgdGhlbiBleGVyY2lzZXMg Y2xvc2UgKFY0KSBvciBsaW5rK2Nsb3NlIChWNSkuCiAqLwojaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+CiNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiNpbmNsdWRlIDxs aW51eC9qaWZmaWVzLmg+CiNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgojaW5jbHVkZSA8bGludXgv a3RocmVhZC5oPgojaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgojaW5jbHVkZSA8bGludXgvc2No ZWQuaD4KI2luY2x1ZGUgPGxpbnV4L2NvbnRhaW5lcl9vZi5oPgojaW5jbHVkZSA8bGludXgvc3Ry aW5nLmg+CiNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KI2luY2x1ZGUgPHNvdW5k L2NvcmUuaD4KI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgojaW5jbHVkZSA8c291bmQvcGNtX3BhcmFt cy5oPgoKI2RlZmluZSBEUlYgInNuZHBjaV9yYWNlIgojZGVmaW5lIENPT0tJRSAweDVhNWExMjM0 ZGVhZGJlZWZVTEwKCnN0YXRpYyBjaGFyICptb2RlID0gInBjbSI7Cm1vZHVsZV9wYXJhbShtb2Rl LCBjaGFycCwgMDQ0NCk7CnN0YXRpYyBib29sIHNhZmU7Cm1vZHVsZV9wYXJhbShzYWZlLCBib29s LCAwNDQ0KTsKTU9EVUxFX1BBUk1fREVTQyhtb2RlLCAidjMgb3IgcGNtIik7CgovKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KLyogVjM6IHRpbWVyX2RlbGV0ZV9zeW5jX3RyeSgpIGlnbm9yZWQgLTEgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLwovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8Kc3RydWN0IHYzX29iaiB7Cglz dHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKCXU2NCBjb29raWU7CglzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRocmVhZDsKfTsKCnN0YXRpYyB2b2lkIHYzX2NhbGxiYWNrKHN0cnVjdCB0aW1lcl9saXN0ICp0 KQp7CglzdHJ1Y3QgdjNfb2JqICp2ID0gY29udGFpbmVyX29mKHQsIHN0cnVjdCB2M19vYmosIHRp bWVyKTsKCgkvKiBLZWVwIHRoZSBjYWxsYmFjayBhbGl2ZSBsb25nIGVub3VnaCBmb3IgdGhlIGZy ZWVpbmcgQ1BVIHRvIHJ1bi4gKi8KCW1kZWxheSgyMCk7Cglwcl9pbmZvKERSViAiOiB2MyBjYWxs YmFjayBjb29raWU9JSNsbHhcbiIsIHYtPmNvb2tpZSk7CgkvKiBTZWNvbmQgcmVhZCBhZnRlciB0 aGUgZGVsYXk6IHRoZSBvYmplY3QgbWF5IGFscmVhZHkgYmUgZnJlZWQuICovCglpZiAodi0+Y29v a2llID09IENPT0tJRSkKCQlwcl9pbmZvKERSViAiOiB2MyBjYWxsYmFjayByZWFkLWFmdGVyLWZy ZWUgc3Vydml2ZWRcbiIpOwp9CgpzdGF0aWMgaW50IHYzX3RocmVhZCh2b2lkICphcmcpCnsKCXN0 cnVjdCB2M19vYmogKnY7CglpbnQgaSwgcmV0OwoKCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsK CQl2ID0ga3phbGxvYyhzaXplb2YoKnYpLCBHRlBfS0VSTkVMKTsKCQlpZiAoIXYpCgkJCXJldHVy biAtRU5PTUVNOwoJCXYtPmNvb2tpZSA9IENPT0tJRTsKCQl0aW1lcl9zZXR1cCgmdi0+dGltZXIs IHYzX2NhbGxiYWNrLCAwKTsKCQkvKiBQaW4gdGhlIGNhbGxiYWNrIHRvIENQVTA7IHRoaXMgdGhy ZWFkIHJ1bnMgb24gQ1BVMS4gKi8KCQlhZGRfdGltZXJfb24oJnYtPnRpbWVyLCAwKTsKCQl1c2xl ZXBfcmFuZ2UoMjAwMCwgMzAwMCk7CgkJcmV0ID0gdGltZXJfZGVsZXRlX3N5bmNfdHJ5KCZ2LT50 aW1lcik7CgkJcHJfaW5mbyhEUlYgIjogdjMgaXRlcj0lZCBkZWxldGVfc3luY190cnk9JWRcbiIs IGksIHJldCk7CgkJaWYgKHJldCA9PSAtMSkgewoJCQkvKiBCVUc6IGNhbGxiYWNrIGlzIHJ1bm5p bmcgb24gQ1BVMDsgZnJlZSBpdCBhbnl3YXkuICovCgkJCWlmIChzYWZlKQoJCQkJdGltZXJfZGVs ZXRlX3N5bmMoJnYtPnRpbWVyKTsKCQkJa2ZyZWUodik7CgkJfSBlbHNlIHsKCQkJdGltZXJfZGVs ZXRlX3N5bmMoJnYtPnRpbWVyKTsKCQkJa2ZyZWUodik7CgkJfQoJCXVzbGVlcF9yYW5nZSg2MDAw MCwgNzAwMDApOwoJfQoJcHJfaW5mbyhEUlYgIjogdjMgZG9uZVxuIik7CglyZXR1cm4gMDsKfQoK LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCi8qIFY0L1Y1OiBmYWtlIEFMU0EgUENNIHdpdGggYSBkcml2ZXItcHJp dmF0ZSBkcGNtIGFuZCBhIHRpbWVyICAgICAgICAqLwovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8Kc3RydWN0IHJh Y2VfcGNtIHsKCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwoJc3RydWN0IHNuZF9wY21fc3Vic3Ry ZWFtICpzdWJzdHJlYW07Cgl1NjQgY29va2llOwoJYm9vbCByZXNwYXduOwoJYm9vbCBhY3RpdmU7 Cn07CgpzdGF0aWMgc3RydWN0IHNuZF9jYXJkICpyYWNlX2NhcmQ7CnN0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpyYWNlX3BkZXY7CnN0YXRpYyBzdHJ1Y3Qgc25kX3BjbSAqcmFjZV9wY21f ZGV2OwoKc3RhdGljIHZvaWQgcmFjZV9wY21fdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpCnsK CXN0cnVjdCByYWNlX3BjbSAqZHBjbSA9IGNvbnRhaW5lcl9vZih0LCBzdHJ1Y3QgcmFjZV9wY20s IHRpbWVyKTsKCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqczsKCXN0cnVjdCBzbmRfcGNtX3J1 bnRpbWUgKnZpY3RpbV9ydCA9IE5VTEw7Cgl1NjQgY29va2llOwoKCWlmICghZHBjbS0+YWN0aXZl KQoJCXJldHVybjsKCXByX2luZm8oRFJWICI6IHRpbWVyIHN0YXJ0IGRwY209JXB4XG4iLCBkcGNt KTsKCgkvKgoJICogVjUgcGF0dGVybjogd2FsayB0aGUgbGluayBncm91cCB3aXRob3V0IHRoZSBn cm91cCBsb2NrIGFuZCByZWFkCgkgKiBlYWNoIG1lbWJlcidzIHJ1bnRpbWUvcHJpdmF0ZV9kYXRh LiAgVjQgdXNlcyB0aGUgc2FtZSBjYWxsYmFjayBmb3IKCSAqIHRoZSBjdXJyZW50IHN0cmVhbTsg dGhlIGRlbGF5IHdpZGVucyB0aGUgY2xvc2UvZnJlZSB3aW5kb3cuCgkgKi8KCWNvb2tpZSA9IGRw Y20tPmNvb2tpZTsKCWlmIChjb29raWUgPT0gQ09PS0lFICYmIGRwY20tPnN1YnN0cmVhbSAmJiBk cGNtLT5zdWJzdHJlYW0tPnJ1bnRpbWUpIHsKCQlzbmRfcGNtX2dyb3VwX2Zvcl9lYWNoX2VudHJ5 KHMsIGRwY20tPnN1YnN0cmVhbSkgewoJCQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydCA9IFJF QURfT05DRShzLT5ydW50aW1lKTsKCQkJc3RydWN0IHJhY2VfcGNtICpkID0gTlVMTDsKCgkJCWlm IChydCkKCQkJCWQgPSBSRUFEX09OQ0UocnQtPnByaXZhdGVfZGF0YSk7CgkJCWlmIChkICYmIGQt PmNvb2tpZSA9PSBDT09LSUUpIHsKCQkJCS8qIEZvcmNlIHRoZSBjb21waWxlciB0byBrZWVwIHRo ZSBsb2FkLiAqLwoJCQkJYmFycmllcigpOwoJCQl9CgkJCWlmIChydCkgewoJCQkJKHZvaWQpUkVB RF9PTkNFKHJ0LT5kbWFfYXJlYSk7CgkJCQlpZiAocyAhPSBkcGNtLT5zdWJzdHJlYW0gJiYgIXZp Y3RpbV9ydCkKCQkJCQl2aWN0aW1fcnQgPSBydDsKCQkJfQoJCQkvKiBBIHJlYWwgZHJpdmVyIGFs c28gcmVwb3J0cyBlbGFwc2VkIHBlcmlvZHMuICovCgkJCWlmIChydCkKCQkJCXNuZF9wY21fcGVy aW9kX2VsYXBzZWQocyk7CgkJfQoJfQoKCS8qIFdpZGVuIHRoZSB3aW5kb3cgYmV0d2VlbiB0aGUg Y2FsbGJhY2sncyBsb2FkIGFuZCB0aGUgZnJlZS4gKi8KCW1kZWxheSgyMCk7CglpZiAodmljdGlt X3J0KSB7CgkJc3RydWN0IHJhY2VfcGNtICpkID0gUkVBRF9PTkNFKHZpY3RpbV9ydC0+cHJpdmF0 ZV9kYXRhKTsKCgkJcHJfaW5mbyhEUlYgIjogdmljdGltIHVzZSBydD0lcHggZD0lcHhcbiIsIHZp Y3RpbV9ydCwgZCk7CgkJKHZvaWQpUkVBRF9PTkNFKHZpY3RpbV9ydC0+ZG1hX2FyZWEpOwoJfQoJ cHJfaW5mbyhEUlYgIjogdGltZXIgZW5kIGRwY209JXB4XG4iLCBkcGNtKTsKCWlmIChkcGNtLT5y ZXNwYXduKSB7CgkJaWYgKCF0aW1lcl9wZW5kaW5nKCZkcGNtLT50aW1lcikpCgkJCWFkZF90aW1l cl9vbigmZHBjbS0+dGltZXIsIDApOwoJCWVsc2UKCQkJbW9kX3RpbWVyKCZkcGNtLT50aW1lciwg amlmZmllcyArIDEpOwoJfQp9CgpzdGF0aWMgdm9pZCByYWNlX3BjbV9mcmVlKHN0cnVjdCBzbmRf cGNtX3J1bnRpbWUgKnJ1bnRpbWUpCnsKCXN0cnVjdCByYWNlX3BjbSAqZHBjbSA9IHJ1bnRpbWUt PnByaXZhdGVfZGF0YTsKCglwcl9pbmZvKERSViAiOiBwY20gcHJpdmF0ZV9mcmVlIGRwY209JXB4 XG4iLCBkcGNtKTsKCWlmIChzYWZlKQoJCXRpbWVyX3NodXRkb3duX3N5bmMoJmRwY20tPnRpbWVy KTsKCWtmcmVlKGRwY20pOwp9CgpzdGF0aWMgaW50IHJhY2VfcGNtX29wZW4oc3RydWN0IHNuZF9w Y21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCnsKCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRp bWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CglzdHJ1Y3QgcmFjZV9wY20gKmRwY207CgoJZHBjbSA9 IGt6YWxsb2Moc2l6ZW9mKCpkcGNtKSwgR0ZQX0tFUk5FTCk7CglpZiAoIWRwY20pCgkJcmV0dXJu IC1FTk9NRU07CglkcGNtLT5zdWJzdHJlYW0gPSBzdWJzdHJlYW07CglkcGNtLT5jb29raWUgPSBD T09LSUU7Cgl0aW1lcl9zZXR1cCgmZHBjbS0+dGltZXIsIHJhY2VfcGNtX3RpbWVyLCAwKTsKCXJ1 bnRpbWUtPnByaXZhdGVfZGF0YSA9IGRwY207CglydW50aW1lLT5wcml2YXRlX2ZyZWUgPSByYWNl X3BjbV9mcmVlOwoJcnVudGltZS0+aHcuaW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfAoJCQkg ICBTTkRSVl9QQ01fSU5GT19JTlRFUkxFQVZFRCB8CgkJCSAgIFNORFJWX1BDTV9JTkZPX01NQVBf VkFMSUQ7CglydW50aW1lLT5ody5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEU7Cgly dW50aW1lLT5ody5yYXRlcyA9IFNORFJWX1BDTV9SQVRFXzQ0MTAwOwoJcnVudGltZS0+aHcucmF0 ZV9taW4gPSA0NDEwMDsKCXJ1bnRpbWUtPmh3LnJhdGVfbWF4ID0gNDQxMDA7CglydW50aW1lLT5o dy5jaGFubmVsc19taW4gPSAyOwoJcnVudGltZS0+aHcuY2hhbm5lbHNfbWF4ID0gMjsKCXJ1bnRp bWUtPmh3LmJ1ZmZlcl9ieXRlc19tYXggPSA2NCAqIDEwMjQ7CglydW50aW1lLT5ody5wZXJpb2Rf Ynl0ZXNfbWluID0gMTAyNDsKCXJ1bnRpbWUtPmh3LnBlcmlvZF9ieXRlc19tYXggPSA0MDk2OwoJ cnVudGltZS0+aHcucGVyaW9kc19taW4gPSAyOwoJcnVudGltZS0+aHcucGVyaW9kc19tYXggPSA4 OwoJcHJfaW5mbyhEUlYgIjogcGNtIG9wZW4gc3ViPSVweCBkcGNtPSVweFxuIiwgc3Vic3RyZWFt LCBkcGNtKTsKCXJldHVybiAwOwp9CgpzdGF0aWMgaW50IHJhY2VfcGNtX2Nsb3NlKHN0cnVjdCBz bmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQp7Cglwcl9pbmZvKERSViAiOiBwY20gLmNsb3Nl IHN1Yj0lcHhcbiIsIHN1YnN0cmVhbSk7CglyZXR1cm4gMDsKfQoKc3RhdGljIGludCByYWNlX3Bj bV9pb2N0bChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKCQkJICB1bnNpZ25l ZCBpbnQgY21kLCB2b2lkICphcmcpCnsKCXByX2luZm8oRFJWICI6IHBjbSBpb2N0bCBjbWQ9JXVc biIsIGNtZCk7CglyZXR1cm4gc25kX3BjbV9saWJfaW9jdGwoc3Vic3RyZWFtLCBjbWQsIGFyZyk7 Cn0KCnN0YXRpYyBpbnQgcmFjZV9wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVh bSAqc3Vic3RyZWFtLAoJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykK ewoJcHJfaW5mbyhEUlYgIjogaHdfcGFyYW1zIHJhdGU9JXUgY2g9JXUgZm10PSV1IHBlcmlvZF9i eXRlcz0ldSBidWZmZXJfYnl0ZXM9JXVcbiIsCgkJcGFyYW1zX3JhdGUocGFyYW1zKSwgcGFyYW1z X2NoYW5uZWxzKHBhcmFtcyksIHBhcmFtc19mb3JtYXQocGFyYW1zKSwKCQlwYXJhbXNfcGVyaW9k X2J5dGVzKHBhcmFtcyksIHBhcmFtc19idWZmZXJfYnl0ZXMocGFyYW1zKSk7CglyZXR1cm4gMDsK fQoKc3RhdGljIGludCByYWNlX3BjbV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAq c3Vic3RyZWFtKQp7CglyZXR1cm4gMDsKfQoKc3RhdGljIGludCByYWNlX3BjbV90cmlnZ2VyKHN0 cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQp7CglzdHJ1Y3QgcmFj ZV9wY20gKmRwY20gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKCglzd2l0Y2gg KGNtZCkgewoJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKCWNhc2UgU05EUlZfUENNX1RS SUdHRVJfUkVTVU1FOgoJCWlmIChzdWJzdHJlYW0gIT0gcmFjZV9wY21fZGV2LT5zdHJlYW1zW1NO RFJWX1BDTV9TVFJFQU1fQ0FQVFVSRV0uc3Vic3RyZWFtKQoJCQlicmVhazsKCQlkcGNtLT5hY3Rp dmUgPSB0cnVlOwoJCWRwY20tPnJlc3Bhd24gPSB0cnVlOwoJCWlmICghdGltZXJfcGVuZGluZygm ZHBjbS0+dGltZXIpKQoJCQlhZGRfdGltZXJfb24oJmRwY20tPnRpbWVyLCAwKTsKCQllbHNlCgkJ CW1vZF90aW1lcigmZHBjbS0+dGltZXIsIGppZmZpZXMgKyAxKTsKCQlicmVhazsKCWNhc2UgU05E UlZfUENNX1RSSUdHRVJfU1RPUDoKCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKCQlk cGNtLT5hY3RpdmUgPSBmYWxzZTsKCQlkcGNtLT5yZXNwYXduID0gZmFsc2U7CgkJLyogRGVsaWJl cmF0ZWx5IG5vdCB0aW1lcl9kZWxldGVfc3luYygpOiBtaXJyb3JzIGFzaWhwaS4gKi8KCQl0aW1l cl9kZWxldGUoJmRwY20tPnRpbWVyKTsKCQlicmVhazsKCX0KCXJldHVybiAwOwp9CgpzdGF0aWMg c25kX3BjbV91ZnJhbWVzX3QgcmFjZV9wY21fcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJl YW0gKnN1YnN0cmVhbSkKewoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3Bj bV9vcHMgcmFjZV9wY21fb3BzID0gewoJLm9wZW4gPSByYWNlX3BjbV9vcGVuLAoJLmNsb3NlID0g cmFjZV9wY21fY2xvc2UsCgkuaW9jdGwgPSByYWNlX3BjbV9pb2N0bCwKCS5od19wYXJhbXMgPSBy YWNlX3BjbV9od19wYXJhbXMsCgkucHJlcGFyZSA9IHJhY2VfcGNtX3ByZXBhcmUsCgkudHJpZ2dl ciA9IHJhY2VfcGNtX3RyaWdnZXIsCgkucG9pbnRlciA9IHJhY2VfcGNtX3BvaW50ZXIsCn07Cgpz dGF0aWMgaW50IF9faW5pdCBzbmRwY2lfaW5pdCh2b2lkKQp7CglzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnQ7CglpbnQgcmV0OwoKCXByX2luZm8oRFJWICI6IGluaXQgbW9kZT0lc1xuIiwgbW9kZSk7CgoJ aWYgKCFzdHJjbXAobW9kZSwgInYzIikpIHsKCQl0ID0ga3RocmVhZF9jcmVhdGUodjNfdGhyZWFk LCBOVUxMLCAic25kcGNpX3YzIik7CgkJaWYgKElTX0VSUih0KSkKCQkJcmV0dXJuIFBUUl9FUlIo dCk7CgkJa3RocmVhZF9iaW5kKHQsIDEpOwoJCXdha2VfdXBfcHJvY2Vzcyh0KTsKCQlyZXR1cm4g MDsKCX0KCglyYWNlX3BkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJzbmRw Y2lfcmFjZSIsIC0xLCBOVUxMLCAwKTsKCWlmIChJU19FUlIocmFjZV9wZGV2KSkKCQlyZXR1cm4g UFRSX0VSUihyYWNlX3BkZXYpOwoJcmV0ID0gc25kX2NhcmRfbmV3KCZyYWNlX3BkZXYtPmRldiwg MCwgIlNuZFBjaVJhY2UiLCBUSElTX01PRFVMRSwgMCwgJnJhY2VfY2FyZCk7CglpZiAocmV0IDwg MCkgewoJCXByX2VycihEUlYgIjogc25kX2NhcmRfbmV3IGZhaWxlZDogJWRcbiIsIHJldCk7CgkJ cmV0dXJuIHJldDsKCX0KCXJldCA9IHNuZF9wY21fbmV3KHJhY2VfY2FyZCwgIlNuZFBjaVJhY2Ui LCAwLCAwLCAyLCAmcmFjZV9wY21fZGV2KTsKCWlmIChyZXQgPCAwKSB7CgkJcHJfZXJyKERSViAi OiBzbmRfcGNtX25ldyBmYWlsZWQ6ICVkXG4iLCByZXQpOwoJCXNuZF9jYXJkX2ZyZWUocmFjZV9j YXJkKTsKCQlyZXR1cm4gcmV0OwoJfQoJc25kX3BjbV9zZXRfb3BzKHJhY2VfcGNtX2RldiwgU05E UlZfUENNX1NUUkVBTV9DQVBUVVJFLAoJCQkmcmFjZV9wY21fb3BzKTsKCXNuZF9wY21fbGliX3By ZWFsbG9jYXRlX3BhZ2VzX2Zvcl9hbGwocmFjZV9wY21fZGV2LCBTTkRSVl9ETUFfVFlQRV9DT05U SU5VT1VTLAoJCQkJCQkgICAgICBOVUxMLCA2NCAqIDEwMjQsIDY0ICogMTAyNCk7CglyZXQgPSAw OwoJcHJfaW5mbyhEUlYgIjogbWFuYWdlZF9idWZmZXIgcmV0PSVkIGRtYV90eXBlPSVkIGFyZWE9 JXB4IGJ5dGVzPSV6dVxuIiwgcmV0LAoJCXJhY2VfcGNtX2Rldi0+c3RyZWFtc1tTTkRSVl9QQ01f U1RSRUFNX0NBUFRVUkVdLnN1YnN0cmVhbS0+ZG1hX2J1ZmZlci5kZXYudHlwZSwKCQlyYWNlX3Bj bV9kZXYtPnN0cmVhbXNbU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFXS5zdWJzdHJlYW0tPmRtYV9i dWZmZXIuYXJlYSwKCQlyYWNlX3BjbV9kZXYtPnN0cmVhbXNbU05EUlZfUENNX1NUUkVBTV9DQVBU VVJFXS5zdWJzdHJlYW0tPmRtYV9idWZmZXIuYnl0ZXMpOwoJcmV0ID0gc25kX2NhcmRfcmVnaXN0 ZXIocmFjZV9jYXJkKTsKCWlmIChyZXQgPCAwKSB7CgkJcHJfZXJyKERSViAiOiBzbmRfY2FyZF9y ZWdpc3RlciBmYWlsZWQ6ICVkXG4iLCByZXQpOwoJCXNuZF9jYXJkX2ZyZWUocmFjZV9jYXJkKTsK CQlyZXR1cm4gcmV0OwoJfQoJcHJfaW5mbyhEUlYgIjogY2FyZCByZWdpc3RlcmVkXG4iKTsKCXJl dHVybiAwOwp9CgpzdGF0aWMgdm9pZCBfX2V4aXQgc25kcGNpX2V4aXQodm9pZCkKewoJcHJfaW5m byhEUlYgIjogZXhpdFxuIik7CglpZiAocmFjZV9jYXJkKQoJCXNuZF9jYXJkX2ZyZWUocmFjZV9j YXJkKTsKCWlmIChyYWNlX3BkZXYpCgkJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocmFjZV9w ZGV2KTsKfQoKbW9kdWxlX2luaXQoc25kcGNpX2luaXQpOwptb2R1bGVfZXhpdChzbmRwY2lfZXhp dCk7Ck1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKTU9EVUxFX0RFU0NSSVBUSU9OKCJzb3VuZC9wY2kg bGlmZXRpbWUtcmFjZSByZXByb2R1Y2VyIChWMy9WNC9WNSkiKTsK ------=_Part_522358_147816319.1794571598740--