From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=132.226.202.154 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794571416; b=nDTs3u8RQ7y8Dhs+5RINjwnGSaNr2iAUmiXS6R4iDctD9BSto6RjMWG2ZKvuT0/1OW+F gTi7FRmt3fRL01rqAoDKc4VS6oKdYCHV0YbInxAS1agBr5Pd8F84wIHVWKP/h4VVEMZt7 rNUfT4oShP2kUxW8KPlKnfF2szhJFlp3Ii1x+ZeQqnpUMwR2zQ9ldtHOzGSVE6BHj8f95 hAXgPxQE/GPOsgxj9rF8ju8i8tVLmpOHjhTsLald5bsQWJDYFnX2e+77Clil46OlvS9NC mUzHoBecbc7NQpH5uAHut532kyzDFe1qgoK3P9mRytNfLu0GWQXeBTIa1INSRIcerJA== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794571416; 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=90zpbBY4vXPknGfQFr6/rSEoDxkQ2dp8kl1VJRTfcfk=; b=LFGPF3u9i2sx+SgYSyXvzfqIg+dwjwjyU/TEVZH12kvWCyyIW6j3LBPtO/UZXr5uUx/c hSulzfbYdaYNjWVW3XwSCbJo5RObPficWVNotlRXVOG4QvHyRTVzn3DQse5Ub8CsxgtPn wThWX63znEGS1OGVBLn5GDs7pkLJaGZco46GQiHEUu2N1ssjMUy8xDuVHvOIP6gzbCAJQ XpE3DjnHQAnuOwb19IILbm6mR8+HUQJsQKfLzsRNrCkAaFj3vU6lba5cVY7eeF47lWB1B aXM/ldaUlp5TH4TFLa+nmSpkSrO8efSKGHO1dPS6r4Q5mIdBy8gCqk+KhZJ7NpZZsdQ== 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=132.226.202.154 Received: from fraori-sdnproxy-3.icoremail.net (fraori-sdnproxy-3.icoremail.net [132.226.202.154]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D9E03606A334; Fri, 13 Nov 2026 12:03:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org D9E03606A334 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:03:25 +0800 (GMT+08:00) Date: Fri, 13 Nov 2026 20:03:25 +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: ctxfi: do not free a running system timer when timer_delete_sync_try() returns -1 (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?Z26d4ziH6nJ5xwDR7hwMki1N8jM= Content-Type: multipart/mixed; boundary="----=_Part_522314_1068316137.1794571405073" 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: <6776b38b.262de.1a1d4ca8711.Coremail.xuhx@hust.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:IAEQrMCWXmqN_PZq4fRGAA--.15447W X-CM-SenderInfo: bgsqjkayqyjmo6kx23oohg3hdfq/1tbiAQQKB2r15u1-uAAAsb X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWkKw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= ------=_Part_522314_1068316137.1794571405073 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 YGN0X3N5c3RpbWVyX3ByZXBhcmUoKWAgaXMgdXNlZCBhcyBib3RoIHRoZSBwcmVwYXJlIGNhbGxi YWNrIGFuZCB0aGUKYGZyZWVfaW5zdGFuY2VgIGNhbGxiYWNrLiAgSXQgY2FsbHMgYHRpbWVyX2Rl bGV0ZV9zeW5jX3RyeSgpYCBhbmQgaWdub3JlcyB0aGUKcmV0dXJuIHZhbHVlOyBgLTFgIG1lYW5z IHRoZSB0aW1lciBjYWxsYmFjayBpcyBydW5uaW5nIG9uIGFub3RoZXIgQ1BVIGFuZCB0aGUKdGlt ZXIgd2FzIE5PVCBkZWxldGVkLiAgYGN0X3RpbWVyX2luc3RhbmNlX2ZyZWUoKWAgdGhlbiByZW1v dmVzIHRoZSBpbnN0YW5jZQphbmQgYGtmcmVlKClgcyBpdCB3aGlsZSBgY3Rfc3lzdGltZXJfY2Fs bGJhY2soKWAgY2FuIHN0aWxsIGRlcmVmZXJlbmNlCmB0aS0+c3Vic3RyZWFtYCwgYHRpLT5zdWJz dHJlYW0tPnJ1bnRpbWVgLCBgdGktPmFwY21gLCBhbmQgYHRpLT5wb3NpdGlvbmAuCkEgbm9ybWFs IFBDTSBjbG9zZSB3aXRoIGB1c2Vfc3lzdGVtX3RpbWVyPTFgIGNhbiB0aGVyZWZvcmUgcHJvZHVj ZSBhIFVBRiBvZgp0aGUgdGltZXIgaW5zdGFuY2UsIHRoZSBQQ00gcnVudGltZSwgYW5kIHRoZSBk cml2ZXIncyBwcml2YXRlIFBDTSBvYmplY3QuCgpUaGUgZGV0YWlsZWQgZGVzY3JpcHRpb246Cgoq IFRlc3QgZW52aXJvbm1lbnQgLyBhZmZlY3RlZCB2ZXJzaW9uCgogIExpbnV4IDcuMy4wLCBzb3Vy Y2UgYW5hbHlzaXMgcGx1cyBhIFFFTVUvS0FTQU4gcHJpbWl0aXZlIHJlcHJvZHVjZXIuCiAgVGhl IHJlcHJvZHVjZXIgdXNlcyB0aGUgcmVhbCBleHBvcnRlZCBgdGltZXJfZGVsZXRlX3N5bmNfdHJ5 KClgIGFuZCBhIHRpbWVyCiAgY2FsbGJhY2s7IGl0IGRvZXMgbm90IGNhbGwgdGhlIHN0YXRpYyBj dHhmaSBmdW5jdGlvbnMgb3IgZW11bGF0ZSBjdHhmaQogIGhhcmR3YXJlLgoKKiBNZWNoYW5pc20K CiAgYGN0X3N5c3RpbWVyX2NhbGxiYWNrKClgIChgc291bmQvcGNpL2N0eGZpL2N0dGltZXIuYzo2 My04N2ApIHJlYWRzCiAgYHRpLT5zdWJzdHJlYW1gLCBgc3Vic3RyZWFtLT5ydW50aW1lYCwgYHRp LT5hcGNtYCwKICBgc3Vic3RyZWFtLT5vcHMtPnBvaW50ZXJgLCBgYXBjbS0+aW50ZXJydXB0YCwg YW5kIGB0aS0+cG9zaXRpb25gOyBpdCB0YWtlcwogIGB0aS0+bG9ja2Agb25seSBuZWFyIHRoZSBl bmQgYW5kIG1heSByZS1hcm0gdGhlIHRpbWVyLgoKICBgY3Rfc3lzdGltZXJfc3RvcCgpYCAoYGN0 dGltZXIuYzoxMDUtMTEwYCkgbG9ja3MgYHRpLT5sb2NrYCwgY2xlYXJzCiAgYHRpLT5ydW5uaW5n YCwgYW5kIGNhbGxzIGB0aW1lcl9kZWxldGUoKWAuICBgY3Rfc3lzdGltZXJfcHJlcGFyZSgpYAog IChgY3R0aW1lci5jOjExMi0xMTZgKSB0aGVuIGRvZXM6CgogICAgY3Rfc3lzdGltZXJfc3RvcCh0 aSk7CiAgICB0aW1lcl9kZWxldGVfc3luY190cnkoJnRpLT50aW1lcik7CgogIGAjZGVmaW5lIGN0 X3N5c3RpbWVyX2ZyZWUgY3Rfc3lzdGltZXJfcHJlcGFyZWAgYXQgbGluZSAxMTggbWFrZXMgdGhl IHNhbWUKICBmdW5jdGlvbiB0aGUgYGZyZWVfaW5zdGFuY2VgIGNhbGxiYWNrLCBhbmQgYGN0X3N5 c3RpbWVyX29wcy5mcmVlX2luc3RhbmNlYAogIGlzIHNldCBhdCAxMjAtMTI2LiAgYGN0X3RpbWVy X2luc3RhbmNlX2ZyZWUoKWAgKGBjdHRpbWVyLmM6MzYwLTM3M2ApIGNhbGxzCiAgYGF0aW1lci0+ b3BzLT5zdG9wKClgLCB0aGVuIGBmcmVlX2luc3RhbmNlKClgLCB0aGVuIGBsaXN0X2RlbCgpYCB1 bmRlcgogIGBsaXN0X2xvY2tgLCB0aGVuIGBrZnJlZSh0aSlgLgoKICBgdGltZXJfZGVsZXRlX3N5 bmNfdHJ5KClgIChga2VybmVsL3RpbWUvdGltZXIuYzoxNDg4LTE0OTJgKSByZXR1cm5zIDAgaWYg dGhlCiAgdGltZXIgd2FzIG5vdCBwZW5kaW5nLCAxIGlmIGl0IHdhcyBwZW5kaW5nIGFuZCBkZWFj dGl2YXRlZCwgYW5kIC0xIGlmIHRoZQogIGNhbGxiYWNrIGlzIHJ1bm5pbmcgb24gYW5vdGhlciBD UFUuICBJdCBuZXZlciB3YWl0cy4gIFRoZSByZXR1cm4gdmFsdWUgaXMKICBpZ25vcmVkIGhlcmUu CgogIFRoZSBQQ00gY2xvc2UgcGF0aCBpcyBgc25kX3BjbV9yZWxlYXNlX3N1YnN0cmVhbSgpYAog IChgc291bmQvY29yZS9wY21fbmF0aXZlLmM6Mjc4NS0yODA1YCkgLT4gYHNuZF9wY21fZHJvcCgp YCAtPgogIGBzbmRfcGNtX2RldGFjaF9zdWJzdHJlYW0oKWAgKGBzb3VuZC9jb3JlL3BjbS5jOjk3 OC0xMDA1YCkuICBUaGUgY3R4ZmkKICBgcnVudGltZS0+cHJpdmF0ZV9mcmVlYCBpcyBgY3RfYXRj X3BjbV9mcmVlX3N1YnN0cmVhbSgpYAogIChgc291bmQvcGNpL2N0eGZpL2N0cGNtLmM6MTAzLTEx MmApLCB3aGljaCBjYWxscwogIGBjdF90aW1lcl9pbnN0YW5jZV9mcmVlKGFwY20tPnRpbWVyKWAg YW5kIHRoZW4gYGtmcmVlKGFwY20pYC4gIFRodXMgYQogIGNhbGxiYWNrIHJ1bm5pbmcgb24gYW5v dGhlciBDUFUgY2FuIHVzZSBgdGlgLCBgdGktPnN1YnN0cmVhbS0+cnVudGltZWAsIGFuZAogIGBh cGNtYCBhZnRlciB0aGV5IGFyZSBmcmVlZC4KCiogV2h5IHRoZSBmaXggY2Fubm90IHNpbXBseSBz bGVlcCBpbiBjdF9zeXN0aW1lcl9wcmVwYXJlKCkKCiAgVGhlIHNhbWUgY2FsbGJhY2sgaXMgYWxz byBgY3RfdGltZXJfb3BzLnByZXBhcmVgLCBjYWxsZWQgZnJvbQogIGBjdF90aW1lcl9wcmVwYXJl KClgIHdoaWxlIGBzbmRfcGNtX3ByZXBhcmUoKWAgaG9sZHMKICBgcGNtX3N0cmVhbV9sb2NrX2ly cWAgKGBwY21fbmF0aXZlLmM6MjA0Mi0yMDUwYCkuICBSZXBsYWNpbmcgdGhlIHRyeSB3aXRoIGEK ICBzbGVlcGluZyBgdGltZXJfZGVsZXRlX3N5bmMoKWAgdGhlcmUgd291bGQgY2F1c2UgInNjaGVk dWxpbmcgd2hpbGUgYXRvbWljIi4KICBUaGUgcHJlcGFyZSBwYXRoIG11c3Qga2VlcCBhIG5vbi1z bGVlcGluZyBkZWxldGUvdHJ5OyB0aGUgY2xvc2UvZnJlZSBwYXRoCiAgbmVlZHMgYSBzZXBhcmF0 ZSBtZXRob2QuCgoqIFRyaWdnZXIgbW9kZWwKCiAgYHVzZV9zeXN0ZW1fdGltZXI9MWAgKG1vZHVs ZSBwYXJhbWV0ZXI7IGRlZmF1bHQgaXMgZmFsc2UpLCBvcGVuL3ByZXBhcmUgYQogIFBDTSwgbGV0 IHRoZSBzeXN0ZW0gdGltZXIgY2FsbGJhY2sgcnVuLCB0aGVuIGNsb3NlIHRoZSBQQ00gd2hpbGUg dGhlCiAgY2FsbGJhY2sgaXMgc3RpbGwgYWN0aXZlIG9uIGFub3RoZXIgQ1BVLiAgU01QL3ByZWVt cHRpb24gcmVxdWlyZWQuCiAgQ29uc2VxdWVuY2U6IFVBRiBpbiB0aW1lciBzb2Z0aXJxOyBjcmFz aCBvciBtZW1vcnkgY29ycnVwdGlvbi4KCiogRHluYW1pYyBldmlkZW5jZQoKICBgc25kcGNpX3Jh Y2UuY2AsIG1vZGUgYHYzYCwgcnVucyB0aGUgcmVhbAogIGB0aW1lcl9kZWxldGVfc3luY190cnko KWA7IHdoZW4gaXQgcmV0dXJucyAtMSB0aGUgdGVzdCBmcmVlcyB0aGUgb2JqZWN0IHdoaWxlCiAg dGhlIGNhbGxiYWNrIGlzIGluIGBtZGVsYXkoKWAuIFNob3cgMTYgS0FTQU4gcmVwb3J0czoKCiAg ICBzbmRwY2lfcmFjZTogdjMgaXRlcj0wIGRlbGV0ZV9zeW5jX3RyeT0tMQogICAgQlVHOiBLQVNB Tjogc2xhYi11c2UtYWZ0ZXItZnJlZSBpbiB2M19jYWxsYmFjawogICAgLi4uCiAgICBBbGxvY2F0 ZWQgYnkgdGFzayA4NjogdjNfdGhyZWFkCiAgICBGcmVlZCBieSB0YXNrIDg2OiBrZnJlZSAtPiB2 M190aHJlYWQKCgoKKiBTdWdnZXN0ZWQgZGlyZWN0aW9uCgogIFNwbGl0IHRoZSBjYWxsYmFja3M6 IGtlZXAgYGN0X3N5c3RpbWVyX3ByZXBhcmUoKWAgbm9uLXNsZWVwaW5nIGZvciB0aGUKICBwcmVw YXJlIHBhdGgsIGFuZCBhZGQgYSBzZXBhcmF0ZSBgY3Rfc3lzdGltZXJfZnJlZSgpYCBmb3IgY2xv c2UvZnJlZSB0aGF0CiAgZmlyc3QgY2xlYXJzIHRoZSBjYWxsYmFjay9ydW5uaW5nIHN0YXRlIGFu ZCB0aGVuIGNhbGxzCiAgYHRpbWVyX3NodXRkb3duX3N5bmMoJnRpLT50aW1lcilgIChvciBgdGlt ZXJfZGVsZXRlX3N5bmMoKWApLCBiZWZvcmUgdGhlCiAgaW5zdGFuY2UgbGlzdCByZW1vdmFsIGFu ZCBga2ZyZWUodGkpYC4gIERvIG5vdCBjYWxsIHRoZSBzbGVlcGluZyBoZWxwZXIgZnJvbQogIHRo ZSBQQ00gcHJlcGFyZSBwYXRoLgoKClBsZWFzZSBrZWVwIG1lIGluIENjOyBJIGFtIG5vdCBzdWJz Y3JpYmVkIHRvIHRoZSBsaXN0cy4KCgpSZWdhcmRzLApIYW54aWFuZyBYdQp4dWh4QGh1c3QuZWR1 LmNuCg== ------=_Part_522314_1068316137.1794571405073 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_522314_1068316137.1794571405073--