From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) (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 900203B7749; Tue, 28 Jul 2026 06:11:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.243.244.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785219096; cv=none; b=jlqzhiVQ72VD9+iLGiGKf8DZVFwp1T5P6wjvqExLNuuN6TvcaWplsKN8jhBYg16Ly522Vg1YiHT0994p7gXOOdndlFpiZTInA3t/tyGP859lPGqrwp7jXBcrys9ve0Naf++2MzG/zL+BVEyy24iEGtxbaF5APDnHP84iEjf6r9U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785219096; c=relaxed/simple; bh=vlh7QyuhrdQup/erTQkkWx6jiTl4VPd5q3PsfGoy/Dc=; h=Date:From:To:Cc:Subject:References:Mime-Version:Message-ID: Content-Type; b=WBBu2eCZxgh37yZPQn44ytAkuhFkyTWjA4NHupe/CE6KZWAJ/u+sxN2bDbaum1nsYYL7lsfFVwJc7CMlUj9/4ey/Gg4PTH92yXuuzigHKAQNV655zlO5hWhjzqcnNMTYhiSEncZZ9snrlMk405fmcSaQBdLAhEeJNNH5EItyyeY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com; spf=pass smtp.mailfrom=uniontech.com; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b=lpNQXG91; arc=none smtp.client-ip=54.243.244.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=uniontech.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b="lpNQXG91" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uniontech.com; s=onoh2408; t=1785219051; bh=vlh7QyuhrdQup/erTQkkWx6jiTl4VPd5q3PsfGoy/Dc=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=lpNQXG91KPzFvpW/6ZGSfFOIXMtrvoruogxm+Z2VFi0FBMwe1CqT6Z4oOar5Xp8w3 CN7wMCvu9R+CNOlsUg8sdLhe+uTR/PqWJ1BcMZNn5RjDEJAInaLMRUjun/mgGhb8Ij q9xfYF01tUkgtNjUlmyombIwhTkSq7y01l/17XAQ= X-QQ-mid: zesmtpsz9t1785219048tfbf6d5bf X-QQ-Originating-IP: G0//23krPZ2uKu0W65Y6+FQMs/cyf5WcboMpEZtAZe8= Received: from PEN002676 ( [1.202.39.170]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 28 Jul 2026 14:10:46 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 1 X-BIZMAIL-ID: 14532379700892653300 Date: Tue, 28 Jul 2026 14:10:47 +0800 From: =?GB2312?B?1dS98MP3?= To: baochen.qiang , "Jeff Johnson" Cc: linux-wireless , ath11k , linux-kernel Subject: Re: [PATCH v7] wifi: ath11k: fix resource leak on error in ext IRQ setup References: <20260728031335.3818736-1-zhaojinming@uniontech.com>, <1e19adf8-d3cd-47c8-a986-05faae7af3c5@oss.qualcomm.com> X-Priority: 3 X-GUID: 9303332F-4AD1-41BD-B14C-819190D565E8 X-Has-Attach: no X-Mailer: Foxmail 7.2.25.375[cn] Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Message-ID: <1C78A779F3AFA320+202607281410457939688@uniontech.com> Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpsz:uniontech.com:qybglogicsvrsz:qybglogicsvrsz4b-0 X-QQ-XMAILINFO: ObFg/4fca5DRuJhVsUeYYMSClXXAngEhWJawz+3dYMCMYvQJX9y+FXzH ySAt3mpvFPQhfDU6TiAPZtibMKNtnz+W1rUJDpdDVSPnSjlKdi4xzHDlilz4vOK/55/OBJI jx+51g+sUNS1SGAwqREBt5K3CaZ7Y6WqpLBeiIRr8V/82QfIDgssY4YoJUH7KfiCU+D0MXh itNGRhLGFXgMyV88+C1hOI7ymw9cTz7l/dw+go7TOonGK+tc5w1CEOfvFCZgQL2STv1wQNb Yl+EY7D0RtjCwFSE6Og/Yl7lkapWdSyGlG4xdEFt3jMGYv3GAPeBYU+iDX+4bX6qh8VQ46e P5OYyHJBZD2NXALK2xJG1IH8vw6zF0oaEZ8fvAOpTiLSsqvo8CAzS3y4PqtpHSjKl2JmuZW hCsW6w58NhcykKKK4VsEODMbQWxY1etoe8vi6Xz3NHIUATMtcZ7i9MeVbx+l2Jf0z1Wn8Kn oe+l0e+Xjvh7APvXAnSpROfHBXfsbh+pSwZ5vRHmG5UF8CwTzm9SFTOkBLhTewgG7I/M7PU +im9lfZNsK22Ct7cj7chJPToMR7/untxnU7+2nKaTUotGr8tgNjLNhiYQB0WnbpJJPBi6Ks 0yFVeC3++OsRQPBb8H+OyqjS5NIGccDWMzrBMX/0ZWH49VYJpQomqF/u7S72agdHlYWumSJ 6/BLM+um+mHhhYB7im/wln9OyY1ZY+HszN53vS3X2F4fhRyAktaC3kVQ2232gJokkYxbIae OBO1PNkBv7oRN3yNEemsX06SMNoKxhuXeUTncjmSxXMBlU5fZJUBg7fH/gOcl6I9Ft9GWQt 6otGzk+AvVnNDcVzmNTB+MoxRA1zV0H8VLZQvfMsvQxfs8Ofs0v0I9jUjNKpaH7jGxJvtdt xp1BCE/kEnSEMKcxw+zjXld7096j6yUUVZh03YGpmNSYGmjojQZ/RVZoT7yjsAFQHwO0+Yr 6a0QpHCN/bKyka6Vb9rANVdSBh1zRr50nieoq3ZK5dzFFwyjtdN+V0sB8fjYzxRjn5wZMs5 PGLFmrKw6JDIP/YKAUfonzA8CXzAM= X-QQ-XMRINFO: NS+P29fieYNwqS3WCnRCOn9D1NpZuCnCRA== X-QQ-RECHKSPAM: 0 VGhhbmtzIGZvciB5b3VyIHJldmlldy4gCkRvIHlvdSBtZWFuIHRoZSBMaW5rIHRhZyBzaG91bGQg YmUgcGxhY2VkIGluIHRoZSBjaGFuZ2Vsb2cgc2VjdGlvbiAoYmVsb3cgLS0tKSByYXRoZXIgdGhh biBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgYm9keT8gCklmIHNvLCBJJ2xsIG1vdmUgaXQgdGhlcmUu IE9yIGlmIGI0IGhhbmRsZXMgdGhlIHRyYWNraW5nIGF1dG9tYXRpY2FsbHksIEkgY2FuIHNpbXBs eSBkcm9wIHRoZSBMaW5rIHRhZy4KClJlZ2FyZHOjrApaaGFvIEppbm1pbmcKCj4KCgoKPgoKCgo+ T24gNy8yOC8yMDI2IDExOjEzIEFNLCBaaGFvSmlubWluZyB3cm90ZToKCgoKPj4gSW4gYXRoMTFr X2FoYl9jb25maWdfaXJxKCksIHdoZW4gYSBDRSByZXF1ZXN0X2lycSgpIGZhaWxzLCB0aGUgZnVu Y3Rpb24KCgoKPj4gcmV0dXJucyB0aGUgZXJyb3IgaW1tZWRpYXRlbHkgd2l0aG91dCBmcmVlaW5n IHRoZSBDRSBJUlFzIHRoYXQgd2VyZQoKCgo+PiBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBpbiBw cmV2aW91cyBsb29wIGl0ZXJhdGlvbnMuIFRoZSBwcm9iZSBlcnJvcgoKCgo+PiBwYXRoIGRvZXMg bm90IGNhbGwgYXRoMTFrX2FoYl9mcmVlX2lycSgpIGVpdGhlciwgc28gdGhlIHByZXZpb3VzbHkK CgoKPj4gcmVnaXN0ZXJlZCBDRSBJUlEgaGFuZGxlcnMgcmVtYWluIGF0dGFjaGVkIHRvIHRoZSBp bnRlcnJ1cHQgbGluZXMgYW5kCgoKCj4+IGFyZSBuZXZlciByZWxlYXNlZC4KCgoKPj4gCgoKCj4+ IEluIGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoKSwgd2hlbiBhbiBleHRlcm5hbCByZXF1ZXN0 X2lycSgpIGZhaWxzLAoKCgo+PiB0aGUgZXJyb3IgaXMgb25seSBsb2dnZWQgYW5kIHRoZSBsb29w IGNvbnRpbnVlcy4gVGhlIGZ1bmN0aW9uIHRoZW4KCgoKPj4gcmV0dXJucyAwIGluZGljYXRpbmcg c3VjY2VzcywgbGVhdmluZyB0aGUgZGV2aWNlIGluIGEgcGFydGlhbGx5CgoKCj4+IGNvbmZpZ3Vy ZWQgc3RhdGUgd2hlcmUgc29tZSBleHRlcm5hbCBJUlFzIGFyZSBub3QgcmVnaXN0ZXJlZC4gVGhp cwoKCgo+PiBjYXVzZXMgZW5hYmxlX2lycSgpL2Rpc2FibGVfaXJxKCkvZnJlZV9pcnEoKSB0byBi ZSBjYWxsZWQgb24KCgoKPj4gdW5yZWdpc3RlcmVkIElSUXMgZHVyaW5nIHJ1bnRpbWUgYW5kIHJl bW92ZS9zaHV0ZG93biwgdHJpZ2dlcmluZwoKCgo+PiBXQVJOX09OKCFkZXNjLT5hY3Rpb24pLCBh bmQgbWlzc2luZyBpbnRlcnJ1cHQgaGFuZGxlcnMgbGVhZCB0byBkYXRhCgoKCj4+IGxvc3MuCgoK Cj4+IAoKCgo+PiBBZGRpdGlvbmFsbHksIGlmIGFsbG9jX25ldGRldl9kdW1teSgpIGZhaWxzIGZv ciBhIGxhdGVyIElSUSBncm91cCwgdGhlCgoKCj4+IGZ1bmN0aW9uIHJldHVybnMgLUVOT01FTSB3 aXRob3V0IGZyZWVpbmcgdGhlIGV4dCBJUlFzIGFuZCBuYXBpX25kZXYKCgoKPj4gdGhhdCB3ZXJl IHN1Y2Nlc3NmdWxseSBzZXQgdXAgZm9yIGVhcmxpZXIgZ3JvdXBzLgoKCgo+PiAKCgoKPj4gRml4 IGFsbCB0aHJlZSBpc3N1ZXM6IHByb3BhZ2F0ZSB0aGUgZXJyb3IgdXAgdG8gdGhlIGNhbGxlciBh bmQgdW53aW5kCgoKCj4+IGFsbCBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBJUlFzIGFuZCBhbGxv Y2F0ZWQgcmVzb3VyY2VzIG9uIGZhaWx1cmUuCgoKCj4+IEFsc28gbW92ZSBhYi0+aXJxX251bVtp cnFfaWR4XSBhc3NpZ25tZW50IGFmdGVyIHJlcXVlc3RfaXJxKCkgc3VjY2VlZHMKCgoKPj4gaW4g dGhlIGV4dCBJUlEgcGF0aCB0byBtYXRjaCB0aGUgQ0UgSVJRIHBhdGggYW5kIGF2b2lkIHN0b3Jp bmcgYSBzdGFsZQoKCgo+PiBJUlEgbnVtYmVyIG9uIGZhaWx1cmUuCgoKCj4+IAoKCgo+PiBMaW5r OiBodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvYjY5MDM1NzItNTJjYy00YzQxLWI5Y2YtNTg0 NWUzODdjMTc2QG9zcy5xdWFsY29tbS5jb20vCgoKCj4KCgoKPnRoaXMgaXMgbm90IHRoZSByaWdo dCB3YXkgdG8gdHJhY2sgb2xkIHZlcnNpb25zLiBJZiB3YW50IHRvIGRvIHRoYXQgdGhlIHJpZ2h0 IHBsYWNlIGlzIGluCgoKCj50aGUgY2hhbmdlbG9nLgoKCgo+CgoKCj5Ob3RlIGlmIHlvdSB1c2Ug YjQgdG9vbCB0aGlzIHRyYWNraW5nIGJ1cmRlbiBjYW4gYmUgZG9uZSBhdXRvbWF0aWNhbGx5LgoK Cgo+CgoKCj4+IFNpZ25lZC1vZmYtYnk6IFpoYW9KaW5taW5nIDx6aGFvamlubWluZ0B1bmlvbnRl Y2guY29tPgoKCgo+PiAtLS0KCgoKPj4gCgoKCj4+IENoYW5nZXMgaW4gdjc6CgoKCj4+IC0gUmVz ZW5kIGluIGEgbmV3IHRocmVhZC4gTm8gY29udGVudCBjaGFuZ2VzIGZyb20gdjYuCgoKCj4KCgoK PkkgbWVhbiBoZXJlLgoKCgo+CgoKCj4+IAoKCgo+PiBDaGFuZ2VzIGluIHY2OgoKCgo+PiAtIE1v dmUgYWItPmlycV9udW1baXJxX2lkeF0gPSBpcnEgYWZ0ZXIgcmVxdWVzdF9pcnEoKSBzdWNjZWVk cyBpbiB0aGUKCgoKPj4/PyBleHQgSVJRIHBhdGggdG8gbWF0Y2ggdGhlIENFIElSUSBsb2dpYyBh bmQgYXZvaWQgc3RvcmluZyBhIHN0YWxlIElSUQoKCgo+Pj8/IG51bWJlciBvbiBmYWlsdXJlLgoK Cgo+PiAKCgoKPj4gQ2hhbmdlcyBpbiB2NToKCgoKPj4gLSBSZXNlbmQgYXMgYSBmcmVzaCB0aHJl YWQuIE5vIGNvbnRlbnQgY2hhbmdlcyBmcm9tIHY0LgoKCgo+PiAKCgoKPj4gQ2hhbmdlcyBpbiB2 NDoKCgoKPj4gLSBEcm9wIHRoZSBuYXBpX25kZXYgTlVMTCBndWFyZCBpbiBhdGgxMWtfYWhiX2Zy ZWVfZXh0X2lycV9ncnAoKSBhcyBpdAoKCgo+Pj8/IGlzIHVucmVhY2hhYmxlIGluIGFsbCBleGlz dGluZyBjYWxsIHBhdGhzLiBBIHNpbGVudCBndWFyZCBhZ2FpbnN0IGFuCgoKCj4+Pz8gaW1wb3Nz aWJsZSBjb25kaXRpb24gaGlkZXMgYnVncyBpbnN0ZWFkIG9mIGV4cG9zaW5nIHRoZW0uCgoKCj4+ IAoKCgo+PiBDaGFuZ2VzIGluIHYzOgoKCgo+PiAtIEV4dHJhY3QgYXRoMTFrX2FoYl9mcmVlX2V4 dF9pcnFfZ3JwKCkgdG8gaGFuZGxlIHBlci1ncm91cCBleHQgSVJRCgoKCj4+Pz8gY2xlYW51cCBh bmQgcmVmYWN0b3IgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoKSB0byB1c2UgaXQuCgoKCj4+IC0g T24gcmVxdWVzdF9pcnEoKSBmYWlsdXJlIGluIGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoKSwg aW1tZWRpYXRlbHkKCgoKPj4/PyBjbGVhbiB1cCB0aGUgY3VycmVudCBncm91cCB2aWEgYXRoMTFr X2FoYl9mcmVlX2V4dF9pcnFfZ3JwKCkgYmVmb3JlCgoKCj4+Pz8ganVtcGluZyB0byB0aGUgZXJy b3IgbGFiZWwgdG8gdW53aW5kIGVhcmxpZXIgZ3JvdXBzLgoKCgo+PiAtIE1vdmUgdTMyIG51bV9p cnEgZGVjbGFyYXRpb24gYmVmb3JlIHRoZSBpcnFfZ3JwIGFzc2lnbm1lbnQgdG8gZm9sbG93CgoK Cj4+Pz8gZGVjbGFyYXRpb24tYmVmb3JlLXN0YXRlbWVudCBvcmRlcmluZy4KCgoKPj4gLSBFeHRy YWN0IGF0aDExa19haGJfZnJlZV9jZV9pcnFzKCkgdG8gaGFuZGxlIHBhcnRpYWwvZnVsbCBDRSBJ UlEgY2xlYW51cAoKCgo+Pj8/IGFuZCByZWZhY3RvciBhdGgxMWtfYWhiX2ZyZWVfaXJxKCkgdG8g dXNlIGl0LCByZXBsYWNpbmcgdGhlIGR1cGxpY2F0ZWQKCgoKPj4/PyBlcnJfY2VfaXJxIGNsZWFu dXAgbG9vcCBpbiBhdGgxMWtfYWhiX2NvbmZpZ19pcnEoKS4KCgoKPj4gCgoKCj4+IENoYW5nZXMg aW4gdjI6CgoKCj4+IC0gTW92ZSBgaXJxX2dycGAgZGVjbGFyYXRpb24gZnJvbSBmb3ItbG9vcCBi b2R5IHRvIGZ1bmN0aW9uIHNjb3BlIHRvIGZpeAoKCgo+Pj8/IGNvbXBpbGUgZXJyb3IgaW4gZXJy X3JlcXVlc3RfaXJxIGVycm9yIHBhdGguCgoKCj4+IC0gU2V0IHJldCA9IC1FTk9NRU0gYmVmb3Jl IGdvdG8gZXJyX3JlcXVlc3RfaXJxIG9uIGFsbG9jX25ldGRldl9kdW1teSgpCgoKCj4+Pz8gZmFp bHVyZSB0byBhdm9pZCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCB2YWx1ZS4KCgoKPj4gLSBXaGVu IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoKSBmYWlscywgdW53aW5kIHRoZSBhbHJlYWR5LXJl Z2lzdGVyZWQKCgoKPj4/PyBDRSBJUlFzIHZpYSBhIHNoYXJlZCBlcnJfY2VfaXJxIGNsZWFudXAg cGF0aCB0byBhdm9pZCBsZWFraW5nIHRoZW0uCgoKCj4+IAoKCgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMWsvYWhiLmMKCgoKPj4gaW5kZXggMWUxZGVhNDg1NzYwLi5lYzViZjVjOWZkNzkg MTAwNjQ0CgoKCj4+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMK CgoKPj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYwoKCgo+PiBA QCAtNDMxLDM2ICs0MzEsNDQgQEAgc3RhdGljIHZvaWQgYXRoMTFrX2FoYl9pbml0X3FtaV9jZV9j b25maWcoc3RydWN0IGF0aDExa19iYXNlICphYikKCgoKPj4/IAlhYi0+cW1pLnNlcnZpY2VfaW5z X2lkID0gYWItPmh3X3BhcmFtcy5xbWlfc2VydmljZV9pbnNfaWQ7CgoKCj4+PyB9CgoKCj4+PyAK CgoKPj4gLXN0YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9leHRfaXJxKHN0cnVjdCBhdGgxMWtf YmFzZSAqYWIpCgoKCj4+ICtzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2ZyZWVfZXh0X2lycV9ncnAo c3RydWN0IGF0aDExa19iYXNlICphYiwKCgoKPj4gKwkJCQkJc3RydWN0IGF0aDExa19leHRfaXJx X2dycCAqaXJxX2dycCkKCgoKPj4/IHsKCgoKPj4gLQlpbnQgaSwgajsKCgoKPj4gLQoKCgo+PiAt CWZvciAoaSA9IDA7IGkgPCBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7CgoKCj4+ IC0JCXN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSAmYWItPmV4dF9pcnFfZ3Jw W2ldOwoKCgo+PiArCWludCBqOwoKCgo+Pj8gCgoKCj4+IC0JCWZvciAoaiA9IDA7IGogPCBpcnFf Z3JwLT5udW1faXJxOyBqKyspCgoKCj4+IC0JCQlmcmVlX2lycShhYi0+aXJxX251bVtpcnFfZ3Jw LT5pcnFzW2pdXSwgaXJxX2dycCk7CgoKCj4+ICsJZm9yIChqID0gMDsgaiA8IGlycV9ncnAtPm51 bV9pcnE7IGorKykKCgoKPj4gKwkJZnJlZV9pcnEoYWItPmlycV9udW1baXJxX2dycC0+aXJxc1tq XV0sIGlycV9ncnApOwoKCgo+Pj8gCgoKCj4+IC0JCW5ldGlmX25hcGlfZGVsKCZpcnFfZ3JwLT5u YXBpKTsKCgoKPj4gLQkJZnJlZV9uZXRkZXYoaXJxX2dycC0+bmFwaV9uZGV2KTsKCgoKPj4gLQl9 CgoKCj4+ICsJbmV0aWZfbmFwaV9kZWwoJmlycV9ncnAtPm5hcGkpOwoKCgo+PiArCWZyZWVfbmV0 ZGV2KGlycV9ncnAtPm5hcGlfbmRldik7CgoKCj4+PyB9CgoKCj4+PyAKCgoKPj4gLXN0YXRpYyB2 b2lkIGF0aDExa19haGJfZnJlZV9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYikKCgoKPj4gK3N0 YXRpYyB2b2lkIGF0aDExa19haGJfZnJlZV9leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIp CgoKCj4+PyB7CgoKCj4+IC0JaW50IGlycV9pZHg7CgoKCj4+PyAJaW50IGk7CgoKCj4+PyAKCgoK Pj4gLQlpZiAoYWItPmh3X3BhcmFtcy5oeWJyaWRfYnVzX3R5cGUpCgoKCj4+IC0JCXJldHVybiBh dGgxMWtfcGNpY19mcmVlX2lycShhYik7CgoKCj4+ICsJZm9yIChpID0gMDsgaSA8IEFUSDExS19F WFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspCgoKCj4+ICsJCWF0aDExa19haGJfZnJlZV9leHRfaXJx X2dycChhYiwgJmFiLT5leHRfaXJxX2dycFtpXSk7CgoKCj4+ICt9CgoKCj4+PyAKCgoKPj4gLQlm b3IgKGkgPSAwOyBpIDwgYWItPmh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7CgoKCj4+ICtzdGF0 aWMgdm9pZCBhdGgxMWtfYWhiX2ZyZWVfY2VfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCBp bnQgbWF4X2lkeCkKCgoKPj4gK3sKCgoKPj4gKwlpbnQgaXJxX2lkeCwgaTsKCgoKPj4gKwoKCgo+ PiArCWZvciAoaSA9IDA7IGkgPCBtYXhfaWR4OyBpKyspIHsKCgoKPj4/IAkJaWYgKGF0aDExa19j ZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgJiBDRV9BVFRSX0RJU19JTlRSKQoKCgo+Pj8gCQkJY29u dGludWU7CgoKCj4+PyAJCWlycV9pZHggPSBBVEgxMUtfSVJRX0NFMF9PRkZTRVQgKyBpOwoKCgo+ Pj8gCQlmcmVlX2lycShhYi0+aXJxX251bVtpcnFfaWR4XSwgJmFiLT5jZS5jZV9waXBlW2ldKTsK CgoKPj4/IAl9CgoKCj4+ICt9CgoKCj4+ICsKCgoKPj4gK3N0YXRpYyB2b2lkIGF0aDExa19haGJf ZnJlZV9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYikKCgoKPj4gK3sKCgoKPj4gKwlpZiAoYWIt Pmh3X3BhcmFtcy5oeWJyaWRfYnVzX3R5cGUpCgoKCj4+ICsJCXJldHVybiBhdGgxMWtfcGNpY19m cmVlX2lycShhYik7CgoKCj4+PyAKCgoKPj4gKwlhdGgxMWtfYWhiX2ZyZWVfY2VfaXJxcyhhYiwg YWItPmh3X3BhcmFtcy5jZV9jb3VudCk7CgoKCj4+PyAJYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEo YWIpOwoKCgo+Pj8gfQoKCgo+Pj8gCgoKCj4+IEBAIC01MjQsMjAgKzUzMiwyNSBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqYXJnKQoKCgo+Pj8gc3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVj dCBhdGgxMWtfYmFzZSAqYWIpCgoKCj4+PyB7CgoKCj4+PyAJc3RydWN0IGF0aDExa19od19wYXJh bXMgKmh3ID0gJmFiLT5od19wYXJhbXM7CgoKCj4+ICsJc3RydWN0IGF0aDExa19leHRfaXJxX2dy cCAqaXJxX2dycDsKCgoKPj4/IAlpbnQgaSwgajsKCgoKPj4/IAlpbnQgaXJxOwoKCgo+Pj8gCWlu dCByZXQ7CgoKCj4+PyAKCgoKPj4/IAlmb3IgKGkgPSAwOyBpIDwgQVRIMTFLX0VYVF9JUlFfR1JQ X05VTV9NQVg7IGkrKykgewoKCgo+PiAtCQlzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFf Z3JwID0gJmFiLT5leHRfaXJxX2dycFtpXTsKCgoKPj4/IAkJdTMyIG51bV9pcnEgPSAwOwoKCgo+ Pj8gCgoKCj4+ICsJCWlycV9ncnAgPSAmYWItPmV4dF9pcnFfZ3JwW2ldOwoKCgo+PiArCgoKCj4+ PyAJCWlycV9ncnAtPmFiID0gYWI7CgoKCj4+PyAJCWlycV9ncnAtPmdycF9pZCA9IGk7CgoKCj4+ PyAKCgoKPj4/IAkJaXJxX2dycC0+bmFwaV9uZGV2ID0gYWxsb2NfbmV0ZGV2X2R1bW15KDApOwoK Cgo+PiAtCQlpZiAoIWlycV9ncnAtPm5hcGlfbmRldikKCgoKPj4gLQkJCXJldHVybiAtRU5PTUVN OwoKCgo+PiArCQlpZiAoIWlycV9ncnAtPm5hcGlfbmRldikgewoKCgo+PiArCQkJcmV0ID0gLUVO T01FTTsKCgoKPj4gKwkJCWlycV9ncnAtPm51bV9pcnEgPSAwOwoKCgo+PiArCQkJZ290byBlcnJf cmVxdWVzdF9pcnE7CgoKCj4+ICsJCX0KCgoKPj4/IAoKCgo+Pj8gCQluZXRpZl9uYXBpX2FkZChp cnFfZ3JwLT5uYXBpX25kZXYsICZpcnFfZ3JwLT5uYXBpLAoKCgo+Pj8gCQkJPz8/Pz8/IGF0aDEx a19haGJfZXh0X2dycF9uYXBpX3BvbGwpOwoKCgo+PiBAQCAtNTg1LDE0ICs1OTgsMTEgQEAgc3Rh dGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIp CgoKCj4+PyAJCQkJfQoKCgo+Pj8gCQkJfQoKCgo+Pj8gCQl9CgoKCj4+IC0JCWlycV9ncnAtPm51 bV9pcnEgPSBudW1faXJxOwoKCgo+PiAtCgoKCj4+IC0JCWZvciAoaiA9IDA7IGogPCBpcnFfZ3Jw LT5udW1faXJxOyBqKyspIHsKCgoKPj4gKwkJZm9yIChqID0gMDsgaiA8IG51bV9pcnE7IGorKykg ewoKCgo+Pj8gCQkJaW50IGlycV9pZHggPSBpcnFfZ3JwLT5pcnFzW2pdOwoKCgo+Pj8gCgoKCj4+ PyAJCQlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShhYi0+cGRldiwKCgoKPj4/IAkJCQkJ CT8/Pz8/IGlycV9uYW1lW2lycV9pZHhdKTsKCgoKPj4gLQkJCWFiLT5pcnFfbnVtW2lycV9pZHhd ID0gaXJxOwoKCgo+Pj8gCQkJaXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4g fCBJUlFfRElTQUJMRV9VTkxBWlkpOwoKCgo+Pj8gCQkJcmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBh dGgxMWtfYWhiX2V4dF9pbnRlcnJ1cHRfaGFuZGxlciwKCgoKPj4/IAkJCQkJPyBJUlFGX1RSSUdH RVJfUklTSU5HLAoKCgo+PiBAQCAtNjAwLDExICs2MTAsMjQgQEAgc3RhdGljIGludCBhdGgxMWtf YWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpCgoKCj4+PyAJCQlpZiAo cmV0KSB7CgoKCj4+PyAJCQkJYXRoMTFrX2VycihhYiwgImZhaWxlZCByZXF1ZXN0X2lycSBmb3Ig JWRcbiIsCgoKCj4+PyAJCQkJCT8/IGlycSk7CgoKCj4+ICsJCQkJaXJxX2dycC0+bnVtX2lycSA9 IGo7CgoKCj4+ICsJCQkJYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnFfZ3JwKGFiLCBpcnFfZ3JwKTsK CgoKPj4gKwkJCQlnb3RvIGVycl9yZXF1ZXN0X2lycTsKCgoKPj4/IAkJCX0KCgoKPj4gKwkJCWFi LT5pcnFfbnVtW2lycV9pZHhdID0gaXJxOwoKCgo+Pj8gCQl9CgoKCj4+ICsKCgoKPj4gKwkJaXJx X2dycC0+bnVtX2lycSA9IG51bV9pcnE7CgoKCj4+PyAJfQoKCgo+Pj8gCgoKCj4+PyAJcmV0dXJu IDA7CgoKCj4+ICsKCgoKPj4gK2Vycl9yZXF1ZXN0X2lycToKCgoKPj4gKwlmb3IgKGktLTsgaSA+ PSAwOyBpLS0pIHsKCgoKPj4gKwkJaXJxX2dycCA9ICZhYi0+ZXh0X2lycV9ncnBbaV07CgoKCj4+ ICsJCWF0aDExa19haGJfZnJlZV9leHRfaXJxX2dycChhYiwgaXJxX2dycCk7CgoKCj4+ICsJfQoK Cgo+PiArCXJldHVybiByZXQ7CgoKCj4+PyB9CgoKCj4+PyAKCgoKPj4/IHN0YXRpYyBpbnQgYXRo MTFrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpCgoKCj4+IEBAIC02Mjks MTYgKzY1MiwyNCBAQCBzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRo MTFrX2Jhc2UgKmFiKQoKCgo+Pj8gCQlyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJf Y2VfaW50ZXJydXB0X2hhbmRsZXIsCgoKCj4+PyAJCQkJPyBJUlFGX1RSSUdHRVJfUklTSU5HLCBp cnFfbmFtZVtpcnFfaWR4XSwKCgoKPj4/IAkJCQk/IGNlX3BpcGUpOwoKCgo+PiAtCQlpZiAocmV0 KQoKCgo+PiArCQlpZiAocmV0KSB7CgoKCj4+ICsJCQlhdGgxMWtfZXJyKGFiLCAiZmFpbGVkIHJl cXVlc3RfaXJxIGZvciAlZFxuIiwgaXJxKTsKCgoKPj4gKwkJCWF0aDExa19haGJfZnJlZV9jZV9p cnFzKGFiLCBpKTsKCgoKPj4/IAkJCXJldHVybiByZXQ7CgoKCj4+ICsJCX0KCgoKPj4/IAoKCgo+ Pj8gCQlhYi0+aXJxX251bVtpcnFfaWR4XSA9IGlycTsKCgoKPj4/IAl9CgoKCj4+PyAKCgoKPj4/ IAkvKiBDb25maWd1cmUgZXh0ZXJuYWwgaW50ZXJydXB0cyAqLwoKCgo+Pj8gCXJldCA9IGF0aDEx a19haGJfY29uZmlnX2V4dF9pcnEoYWIpOwoKCgo+PiArCWlmIChyZXQpIHsKCgoKPj4gKwkJYXRo MTFrX2VycihhYiwgImZhaWxlZCB0byBjb25maWd1cmUgZXh0IGlycTogJWRcbiIsIHJldCk7CgoK Cj4+ICsJCWF0aDExa19haGJfZnJlZV9jZV9pcnFzKGFiLCBhYi0+aHdfcGFyYW1zLmNlX2NvdW50 KTsKCgoKPj4gKwkJcmV0dXJuIHJldDsKCgoKPj4gKwl9CgoKCj4+PyAKCgoKPj4gLQlyZXR1cm4g cmV0OwoKCgo+PiArCXJldHVybiAwOwoKCgo+Pj8gfQoKCgo+Pj8gCgoKCj4+PyBzdGF0aWMgaW50 IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1 MTYgc2VydmljZV9pZCwKCgoKPgoKCgo+CgoK