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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98DE2C77B73 for ; Thu, 27 Apr 2023 18:29:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BF1B76B0071; Thu, 27 Apr 2023 14:29:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BA1656B0072; Thu, 27 Apr 2023 14:29:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A68E36B0074; Thu, 27 Apr 2023 14:29:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 9728F6B0071 for ; Thu, 27 Apr 2023 14:29:49 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5A9F4C02C9 for ; Thu, 27 Apr 2023 18:29:49 +0000 (UTC) X-FDA: 80728009698.20.609ED8B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf02.hostedemail.com (Postfix) with ESMTP id 026EA8001B for ; Thu, 27 Apr 2023 18:29:46 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=S7joLGd7; spf=pass (imf02.hostedemail.com: domain of jbrouer@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=jbrouer@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682620187; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gxz32uyudSz11rQ+jVMNuuzwgGu+1VOKW6y/XMTacg0=; b=wWvwmB5To/hFPPmRxb2ZThRRagsClRzzHz9Gix6CgVVrFt5KaQk/T6t9a43nXWmoLwRD57 f7vuHkerNXNZbG9p1f6u1j+WQSnGJvOkmPruWj7ZU/JKP+YvRNCQILukaWImhtfYoebaRY pYXkX4oy4fmw3f9OWSxUuPG296WsQBQ= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=S7joLGd7; spf=pass (imf02.hostedemail.com: domain of jbrouer@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=jbrouer@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682620187; a=rsa-sha256; cv=none; b=2c0aicfv0cr3GV2rm/7ACQ9g05+kEAtf9gUpWyYb8lwX9HPrJ/wXdF0H7pqgwvZGl76r7r Jco7UGBSicr6ucxlohsLk5vx6GzroiyKfi3A6JjnPGx0fseYnXQ+7Kqksn46mGNFsBF7K3 Y2PRS1eCOBwo0t/EnMDjAjFa+EKhLGs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1682620186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=gxz32uyudSz11rQ+jVMNuuzwgGu+1VOKW6y/XMTacg0=; b=S7joLGd7Crqq1tIOcpXB3dPvob2tYt0cPT3h8f2GYS1aNDPqB96vHsjvOYAHeQjCC0qBNi /1jtI1B6PUr93IP055IUeIPvnIO4AOrD4Nd6klF8ufym2P3/OoF8DTb6Ihit+XTUwx+TJw yN6uFRXJlFlDRSFf39Az1C0MDEzi/ys= Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-664-bENNpHiYOiG-0GtVF6hrnA-1; Thu, 27 Apr 2023 14:29:44 -0400 X-MC-Unique: bENNpHiYOiG-0GtVF6hrnA-1 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-5050340f541so8245306a12.2 for ; Thu, 27 Apr 2023 11:29:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682620183; x=1685212183; h=in-reply-to:references:to:content-language:subject:cc:user-agent :mime-version:date:message-id:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HusVMQQOSr6I+hFj5oosnsEjzdYh20SMG7G/RgkXZuU=; b=ALfwG3c8HNGMWrZinrZoL0rbzIhnhXcwGfNnLTmUhGIv6JY/b7BEHd5M/XEmoU1xd7 anAXrQSXtMzgWjCwlCf0Ww86Yg08P8WhHalPZOo2h7opsZ4uxT+Yko5FEWcvwyzcmBnc IDritBVO4fV2Iy0udd/nAjqqTD5afLxZW4xLRR4lrzBZ4oefXluWcYZd7XKUbuKTC6cz Xo3Qbd1JHyx0oweEpGrmKmcX6YvG8a6eZ986HG935yBGn8AkzweZ5+mjCsi14SNaRAfz 8DISZcjdblfcle/QJ/YiOyB1FNFAlI8hSrE86MRZP2QSqNlZTb4SnW0DnypOTqOFd4MJ HoZA== X-Gm-Message-State: AC+VfDwgFBk/AmYIPxaGrfNCcTGjkj4pVNoGsShDaXbHsKi7eohAGZxJ 9KoNiY81JlKwu6ZFqvLb7uQrOicWLrs8T+XREnQTgb/aRAPICdfsXXAaca8AUUnq+fHX/sTWJpF hhbTEAkaAMwI= X-Received: by 2002:aa7:de93:0:b0:506:b8a2:619f with SMTP id j19-20020aa7de93000000b00506b8a2619fmr1098743edv.41.1682620183098; Thu, 27 Apr 2023 11:29:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6NODZmxOrdNS4oGxCkZyp7HBlCf39dhDwV0lvyEMOVwGIo7/3C+AljZQQeVDBV3h3o5XhsDQ== X-Received: by 2002:aa7:de93:0:b0:506:b8a2:619f with SMTP id j19-20020aa7de93000000b00506b8a2619fmr1098714edv.41.1682620182672; Thu, 27 Apr 2023 11:29:42 -0700 (PDT) Received: from [192.168.42.222] (194-45-78-10.static.kviknet.net. [194.45.78.10]) by smtp.gmail.com with ESMTPSA id a7-20020aa7d907000000b00506a09795e6sm8157860edr.26.2023.04.27.11.29.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 Apr 2023 11:29:40 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <733c4402-7aea-07a8-de98-184d88fc17f0@redhat.com> Date: Thu, 27 Apr 2023 20:29:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Cc: brouer@redhat.com, lorenzo@kernel.org, =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , bpf@vger.kernel.org, "David S. Miller" , Jakub Kicinski , Paolo Abeni , Andrew Morton , willy@infradead.org Subject: Re: [PATCH RFC net-next/mm V1 1/3] page_pool: Remove workqueue in new shutdown scheme To: Yunsheng Lin , Ilias Apalodimas , netdev@vger.kernel.org, Eric Dumazet , linux-mm@kvack.org, Mel Gorman References: <168244288038.1741095.1092368365531131826.stgit@firesoul> <168244293875.1741095.10502498932946558516.stgit@firesoul> <48661b51-1cbb-e3e0-a909-6d0a1532733a@huawei.com> In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------T9z3bw6sCFIuxXHYyhIVle6B" Content-Language: en-US X-Rspamd-Queue-Id: 026EA8001B X-Stat-Signature: n3mzcim7qicxs6babh4t6tenacojwxua X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1682620186-167232 X-HE-Meta: U2FsdGVkX1/Yfku+oMxM0yaz11YYiwkHv/X2DyXuHsLObjrjv5JOh5noKAt7diHT1sr1XeTGCeHu2XeX3hedQITJ833ArJzNLUF9LoJiJuDH0Os5yM/SKn1prifUxqbr2YEfrl8U6QuYA8Czo3m/zcXzXujEXmxd4MptClLv44GZtXzHy3JYonjTrc33g2yq625vMARBFk3BeWM3YGisVRIzv5GAdpcdbHlmEtzBJf5lbn7XilvzcbVhIYNr8DOWW4lmra7iQbbH0FQsc4K+a2aLKhjtEq0gR0hRHVRi2wMpvnNj/W787QRCD4x/P7T39DxKjyMUCnDXrVsEIUabFSxPTxG+Ko1AsKbJfdPrDuet1q40fTbXkA7GbV6UQDcraYfV+wYWeKRBTfaCY5dsjlx89PqsQVD1iIHtLe0d+BVS+x+/9BgiLg6Ii5WfFyvrj0wecgfVM5ojffwAdM9ECMADK7feefQE6EK2UvmZbLOGc8hmPwgI/NTTlDY3g+ydS9HPGGhaIh2RI3Q+7+OGeijATghuRzngfzvl9UwXOs/h5ALP38b+KYX1WqRPkMeyQQSHW9HITEpti0NFfPJpS7RhxG/kT2WI4OEA/YY8E2OOt2krKf/wJZiqT/Z9TFNhzAgAUYVaBxQPz80rAgTu630cnV6EW3+ru+hJgPiLvMR8SbtwDttEpuS3V1pQvidV9n7qN+9sxeZpL5N4fdNNpxnOd3zy/r5EcB8yC8ItQO4spCOFDWEbIjhq6nTYERIsoBAH7UM+eGSEyUiuKfhko0Ovh2g9ynIscfgxqv6d8puxqdMP6fnHU4DC+CMLqbt6XFCQdv7aCoE9kaUrVf+YsPPevnNTtOjytNmmeh1Xb904m7soyGBDbnAlDy+RBU7DiEOIw8xoxd32X+tq6FkafSNVfmtYtW3Jx4YwAl5RHyGjwoqwX38HCcnSnySIq2jkxyxEoCZ+ukhbHpim5r8 CzFXap+1 H752uXu29Z2Zz+zGTc417H45p6y1XGoD+H074jtSpSyTxkgqoqDkTI27e75wMgVkpWPku1ERh8Slwr/pCxBmOIfF0pH2qStfJn2KILAuZITeItBZIB+pRnYzb5ZCWZOY7OCvtme1/EYMmT2y4f+pqbfDyq56GJM0sgNmwcXiszaGRpNiVHaQTO5sM0RmFW7jDqj5zt8V+Ww8IADCKuMB4JCRr1195sudhFxDeUO3dY3H8bx5bjrz+2/wWxlfD9mnOUDw1XbLCKvKpoTR4gsTImsCDnmF6/Rt58562jYFCU7sE3MleNyQntuWDJmTmyvLfVwYieOVXQuyvJ3ssF7ONINCsYkLpHMVP4xy4LpBeWyAMDbAGtPr8VIE1qCJyLEUAcI/tZ8+EsvLKZ2Q/BwTnPVDoBWElgtXV/56lhnODEqIpjpplP6Zr6hb/Hy2G/B51Rie/NUTgJakeFDpZpArugadPZd1c0pB80YMNI9uJbCDNEJCp91/sr066PgSBoyTbkD+HE3Yd57DXTYCGeAIZXgaLAKz3vDYv7eQlhK/2G6CEPGzsBQuJ2Q/CbzNblzawmkz0pKcoo/7QoV9Z8TiOVrukvPi8smWOqRQbyW8Yb+5TP8aCHZU5/rY0tfkk4TiAn7nWH1MVjpLoWN/coY8BWsL1YPyeqSduU5rDH862nk9Jt5EL911FozIZwhPnlbVoc0F4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: This is a multi-part message in MIME format. --------------T9z3bw6sCFIuxXHYyhIVle6B Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 27/04/2023 12.47, Jesper Dangaard Brouer wrote: > > On 27/04/2023 02.57, Yunsheng Lin wrote: >> On 2023/4/26 1:15, Jesper Dangaard Brouer wrote: >>> @@ -609,6 +609,8 @@ void page_pool_put_defragged_page(struct >>> page_pool *pool, struct page *page, >>>           recycle_stat_inc(pool, ring_full); >>>           page_pool_return_page(pool, page); >>>       } >>> +    if (pool->p.flags & PP_FLAG_SHUTDOWN) >>> +        page_pool_shutdown_attempt(pool); >> >> It seems we have allowed page_pool_shutdown_attempt() to be called >> concurrently here, isn't there a time window between >> atomic_inc_return_relaxed() >> and page_pool_inflight() for pool->pages_state_release_cnt, which may >> cause >> double calling of page_pool_free()? >> > > Yes, I think that is correct. > I actually woke up this morning thinking of this case of double freeing, > and this time window.  Thanks for spotting and confirming this issue. > > Basically: Two concurrent CPUs executing page_pool_shutdown_attempt() > can both end-up seeing inflight equal zero, resulting in both of them > kfreeing the memory (in page_pool_free()) as they both think they are > the last user of PP instance. > > I've been thinking how to address this. > This is my current idea: > > (1) Atomic variable inc and test (or cmpxchg) that resolves last user race. > (2) Defer free to call_rcu callback to let other CPUs finish. > (3) Might need rcu_read_lock() in page_pool_shutdown_attempt(). > I think I found a more simply approach (adjustment patch attached). That avoids races and any call_rcu callbacks. Will post a V2. --Jesper --------------T9z3bw6sCFIuxXHYyhIVle6B Content-Type: text/plain; charset=UTF-8; name="02-fix-race" Content-Disposition: attachment; filename="02-fix-race" Content-Transfer-Encoding: base64 Zml4IHJhY2UKCkZyb206IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29t PgoKU2lnbmVkLW9mZi1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5j b20+Ci0tLQogbmV0L2NvcmUvcGFnZV9wb29sLmMgfCAgIDQ4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM0IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BhZ2VfcG9vbC5j IGIvbmV0L2NvcmUvcGFnZV9wb29sLmMKaW5kZXggY2U3ZThkZGE2NDAzLi4yNTEzOWIxNjI2NzQg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3BhZ2VfcG9vbC5jCisrKyBiL25ldC9jb3JlL3BhZ2VfcG9v bC5jCkBAIC00NTEsOSArNDUxLDggQEAgRVhQT1JUX1NZTUJPTChwYWdlX3Bvb2xfYWxsb2NfcGFn ZXMpOwogICovCiAjZGVmaW5lIF9kaXN0YW5jZShhLCBiKQkoczMyKSgoYSkgLSAoYikpCiAKLXN0 YXRpYyBzMzIgcGFnZV9wb29sX2luZmxpZ2h0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCitzdGF0 aWMgczMyIF9fcGFnZV9wb29sX2luZmxpZ2h0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wsIHUzMiBy ZWxlYXNlX2NudCkKIHsKLQl1MzIgcmVsZWFzZV9jbnQgPSBhdG9taWNfcmVhZCgmcG9vbC0+cGFn ZXNfc3RhdGVfcmVsZWFzZV9jbnQpOwogCXUzMiBob2xkX2NudCA9IFJFQURfT05DRShwb29sLT5w YWdlc19zdGF0ZV9ob2xkX2NudCk7CiAJczMyIGluZmxpZ2h0OwogCkBAIC00NjUsNiArNDY0LDE0 IEBAIHN0YXRpYyBzMzIgcGFnZV9wb29sX2luZmxpZ2h0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wp CiAJcmV0dXJuIGluZmxpZ2h0OwogfQogCitzdGF0aWMgczMyIHBhZ2VfcG9vbF9pbmZsaWdodChz dHJ1Y3QgcGFnZV9wb29sICpwb29sKQoreworCXUzMiByZWxlYXNlX2NudCA9IGF0b21pY19yZWFk KCZwb29sLT5wYWdlc19zdGF0ZV9yZWxlYXNlX2NudCk7CisJcmV0dXJuIF9fcGFnZV9wb29sX2lu ZmxpZ2h0KHBvb2wsIHJlbGVhc2VfY250KTsKK30KKworc3RhdGljIGludCBwYWdlX3Bvb2xfZnJl ZV9hdHRlbXB0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wsIHUzMiByZWxlYXNlX2NudCk7CisKIC8q IERpc2Nvbm5lY3RzIGEgcGFnZSAoZnJvbSBhIHBhZ2VfcG9vbCkuICBBUEkgdXNlcnMgY2FuIGhh dmUgYSBuZWVkCiAgKiB0byBkaXNjb25uZWN0IGEgcGFnZSAoZnJvbSBhIHBhZ2VfcG9vbCksIHRv IGFsbG93IGl0IHRvIGJlIHVzZWQgYXMKICAqIGEgcmVndWxhciBwYWdlICh0aGF0IHdpbGwgZXZl bnR1YWxseSBiZSByZXR1cm5lZCB0byB0aGUgbm9ybWFsCkBAIC00NzMsNyArNDgwLDcgQEAgc3Rh dGljIHMzMiBwYWdlX3Bvb2xfaW5mbGlnaHQoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKIHZvaWQg cGFnZV9wb29sX3JlbGVhc2VfcGFnZShzdHJ1Y3QgcGFnZV9wb29sICpwb29sLCBzdHJ1Y3QgcGFn ZSAqcGFnZSkKIHsKIAlkbWFfYWRkcl90IGRtYTsKLQlpbnQgY291bnQ7CisJdTMyIGNvdW50Owog CiAJaWYgKCEocG9vbC0+cC5mbGFncyAmIFBQX0ZMQUdfRE1BX01BUCkpCiAJCS8qIEFsd2F5cyBh Y2NvdW50IGZvciBpbmZsaWdodCBwYWdlcywgZXZlbiBpZiB3ZSBkaWRuJ3QKQEAgLTQ5MCw4ICs0 OTcsMTIgQEAgdm9pZCBwYWdlX3Bvb2xfcmVsZWFzZV9wYWdlKHN0cnVjdCBwYWdlX3Bvb2wgKnBv b2wsIHN0cnVjdCBwYWdlICpwYWdlKQogCXBhZ2VfcG9vbF9zZXRfZG1hX2FkZHIocGFnZSwgMCk7 CiBza2lwX2RtYV91bm1hcDoKIAlwYWdlX3Bvb2xfY2xlYXJfcHBfaW5mbyhwYWdlKTsKLQljb3Vu dCA9IGF0b21pY19pbmNfcmV0dXJuX3JlbGF4ZWQoJnBvb2wtPnBhZ2VzX3N0YXRlX3JlbGVhc2Vf Y250KTsKKwljb3VudCA9IGF0b21pY19pbmNfcmV0dXJuKCZwb29sLT5wYWdlc19zdGF0ZV9yZWxl YXNlX2NudCk7CiAJdHJhY2VfcGFnZV9wb29sX3N0YXRlX3JlbGVhc2UocG9vbCwgcGFnZSwgY291 bnQpOworCisJLyogSW4gc2h1dGRvd24gcGhhc2UsIGxhc3QgcGFnZSB3aWxsIGZyZWUgcG9vbCBp bnN0YW5jZSAqLworCWlmIChwb29sLT5wLmZsYWdzICYgUFBfRkxBR19TSFVURE9XTikKKwkJcGFn ZV9wb29sX2ZyZWVfYXR0ZW1wdChwb29sLCBjb3VudCk7CiB9CiBFWFBPUlRfU1lNQk9MKHBhZ2Vf cG9vbF9yZWxlYXNlX3BhZ2UpOwogCkBAIC01NDMsNyArNTU0LDcgQEAgc3RhdGljIGJvb2wgcGFn ZV9wb29sX3JlY3ljbGVfaW5fY2FjaGUoc3RydWN0IHBhZ2UgKnBhZ2UsCiAJcmV0dXJuIHRydWU7 CiB9CiAKLXN0YXRpYyB2b2lkIHBhZ2VfcG9vbF9zaHV0ZG93bl9hdHRlbXB0KHN0cnVjdCBwYWdl X3Bvb2wgKnBvb2wpOworc3RhdGljIHZvaWQgcGFnZV9wb29sX2VtcHR5X3Jpbmcoc3RydWN0IHBh Z2VfcG9vbCAqcG9vbCk7CiAKIC8qIElmIHRoZSBwYWdlIHJlZmNudCA9PSAxLCB0aGlzIHdpbGwg dHJ5IHRvIHJlY3ljbGUgdGhlIHBhZ2UuCiAgKiBpZiBQUF9GTEFHX0RNQV9TWU5DX0RFViBpcyBz ZXQsIHdlJ2xsIHRyeSB0byBzeW5jIHRoZSBETUEgYXJlYSBmb3IKQEAgLTYxMCw3ICs2MjEsNyBA QCB2b2lkIHBhZ2VfcG9vbF9wdXRfZGVmcmFnZ2VkX3BhZ2Uoc3RydWN0IHBhZ2VfcG9vbCAqcG9v bCwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCXBhZ2VfcG9vbF9yZXR1cm5fcGFnZShwb29sLCBwYWdl KTsKIAl9CiAJaWYgKHBvb2wtPnAuZmxhZ3MgJiBQUF9GTEFHX1NIVVRET1dOKQotCQlwYWdlX3Bv b2xfc2h1dGRvd25fYXR0ZW1wdChwb29sKTsKKwkJcGFnZV9wb29sX2VtcHR5X3JpbmcocG9vbCk7 CiB9CiBFWFBPUlRfU1lNQk9MKHBhZ2VfcG9vbF9wdXRfZGVmcmFnZ2VkX3BhZ2UpOwogCkBAIC02 NjAsNyArNjcxLDcgQEAgdm9pZCBwYWdlX3Bvb2xfcHV0X3BhZ2VfYnVsayhzdHJ1Y3QgcGFnZV9w b29sICpwb29sLCB2b2lkICoqZGF0YSwKIAogb3V0OgogCWlmIChwb29sLT5wLmZsYWdzICYgUFBf RkxBR19TSFVURE9XTikKLQkJcGFnZV9wb29sX3NodXRkb3duX2F0dGVtcHQocG9vbCk7CisJCXBh Z2VfcG9vbF9lbXB0eV9yaW5nKHBvb2wpOwogfQogRVhQT1JUX1NZTUJPTChwYWdlX3Bvb2xfcHV0 X3BhZ2VfYnVsayk7CiAKQEAgLTc0Myw2ICs3NTQsNyBAQCBzdHJ1Y3QgcGFnZSAqcGFnZV9wb29s X2FsbG9jX2ZyYWcoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwKIH0KIEVYUE9SVF9TWU1CT0wocGFn ZV9wb29sX2FsbG9jX2ZyYWcpOwogCitub2lubGluZQogc3RhdGljIHZvaWQgcGFnZV9wb29sX2Vt cHR5X3Jpbmcoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKIHsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsK QEAgLTgwMiwyMiArODE0LDI4IEBAIHN0YXRpYyB2b2lkIHBhZ2VfcG9vbF9zY3J1YihzdHJ1Y3Qg cGFnZV9wb29sICpwb29sKQogCXBhZ2VfcG9vbF9lbXB0eV9yaW5nKHBvb2wpOwogfQogCi1zdGF0 aWMgaW50IHBhZ2VfcG9vbF9yZWxlYXNlKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCitub2lubGlu ZQorc3RhdGljIGludCBwYWdlX3Bvb2xfZnJlZV9hdHRlbXB0KHN0cnVjdCBwYWdlX3Bvb2wgKnBv b2wsIHUzMiByZWxlYXNlX2NudCkKIHsKIAlpbnQgaW5mbGlnaHQ7CiAKLQlwYWdlX3Bvb2xfc2Ny dWIocG9vbCk7Ci0JaW5mbGlnaHQgPSBwYWdlX3Bvb2xfaW5mbGlnaHQocG9vbCk7CisJaW5mbGln aHQgPSBfX3BhZ2VfcG9vbF9pbmZsaWdodChwb29sLCByZWxlYXNlX2NudCk7CiAJaWYgKCFpbmZs aWdodCkKIAkJcGFnZV9wb29sX2ZyZWUocG9vbCk7CiAKIAlyZXR1cm4gaW5mbGlnaHQ7CiB9CiAK LW5vaW5saW5lCi1zdGF0aWMgdm9pZCBwYWdlX3Bvb2xfc2h1dGRvd25fYXR0ZW1wdChzdHJ1Y3Qg cGFnZV9wb29sICpwb29sKQorc3RhdGljIGludCBwYWdlX3Bvb2xfcmVsZWFzZShzdHJ1Y3QgcGFn ZV9wb29sICpwb29sKQogewotCXBhZ2VfcG9vbF9yZWxlYXNlKHBvb2wpOworCWludCBpbmZsaWdo dDsKKworCXBhZ2VfcG9vbF9zY3J1Yihwb29sKTsKKwlpbmZsaWdodCA9IHBhZ2VfcG9vbF9pbmZs aWdodChwb29sKTsKKwlpZiAoIWluZmxpZ2h0KQorCQlwYWdlX3Bvb2xfZnJlZShwb29sKTsKKwor CXJldHVybiBpbmZsaWdodDsKIH0KIAogdm9pZCBwYWdlX3Bvb2xfdXNlX3hkcF9tZW0oc3RydWN0 IHBhZ2VfcG9vbCAqcG9vbCwgdm9pZCAoKmRpc2Nvbm5lY3QpKHZvaWQgKiksCkBAIC04NjEsNyAr ODc5LDkgQEAgdm9pZCBwYWdlX3Bvb2xfZGVzdHJveShzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQog CSAqIEVudGVyIGludG8gc2h1dGRvd24gcGhhc2UsIGFuZCByZXRyeSByZWxlYXNlIHRvIGhhbmRs ZSByYWNlcy4KIAkgKi8KIAlwb29sLT5wLmZsYWdzIHw9IFBQX0ZMQUdfU0hVVERPV047Ci0JcGFn ZV9wb29sX3NodXRkb3duX2F0dGVtcHQocG9vbCk7CisKKwkvKiBDb25jdXJyZW50IENQVXMgY291 bGQgaGF2ZSByZXR1cm5lZCBsYXN0IHBhZ2VzIGludG8gcHRyX3JpbmcgKi8KKwlwYWdlX3Bvb2xf ZW1wdHlfcmluZyhwb29sKTsKIH0KIEVYUE9SVF9TWU1CT0wocGFnZV9wb29sX2Rlc3Ryb3kpOwog Cg== --------------T9z3bw6sCFIuxXHYyhIVle6B--