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 54843C6FD1D for ; Tue, 4 Apr 2023 10:52:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CB974900002; Tue, 4 Apr 2023 06:52:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C69A06B007D; Tue, 4 Apr 2023 06:52:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A94BA900002; Tue, 4 Apr 2023 06:52:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 921F76B007B for ; Tue, 4 Apr 2023 06:52:26 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5725F40DCB for ; Tue, 4 Apr 2023 10:52:26 +0000 (UTC) X-FDA: 80643394692.06.EA32CD7 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf22.hostedemail.com (Postfix) with ESMTP id 53A39C001E for ; Tue, 4 Apr 2023 10:52:22 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=qjqe5Cq9; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf22.hostedemail.com: domain of BMT@zurich.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=BMT@zurich.ibm.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680605543; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gbAOBueTTNwr+57vvFneHcf0PHF0slaHxVA7NFnmJtU=; b=5fKiepRJopVQwQw/Cw4XZcSKnd8YhH51YZakn+M/I9l9HL2VaJUz5RnilCbl+XFPHUN7Zk MC1pWdFRAvL3QWo2bqObywka5hZ8FRq5/xYpUofhbL2tmqVkZB3jGWKYTDVJ/y1KCgNIxD OYoe90d53jihdsEiFYEn4BqY4L2MAUY= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=qjqe5Cq9; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf22.hostedemail.com: domain of BMT@zurich.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=BMT@zurich.ibm.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1680605543; a=rsa-sha256; cv=fail; b=TptppQIKGvWeCZfNFJxt6chUZdW6+p3daCCjJkbn0o2OL54rvoOh1UGnxs7A3W8kj9zTV1 jV+dKApTK1G+OXWapZAjjSTNvsWSPeIwwVNkso5J07gvwlneQG4YWqcOVP/vdGsXpwp6Tp OEdx+OMAHB42VBKzNZU/7Ve+chXB61w= Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3349b8YC016142; Tue, 4 Apr 2023 10:52:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version : subject; s=pp1; bh=gbAOBueTTNwr+57vvFneHcf0PHF0slaHxVA7NFnmJtU=; b=qjqe5Cq9ILCyNPxiemnwcHLUpBbGSpXHVNAiSPvhC/bcbqFxHo1BzWfQCkDJ7Cnd0vL3 gXDV/IW9l0920vvgXgge3kvDnWWmYb8w3PeidBN34IbpHvJeoxYvdpceUp3AAnlOmGg4 qR2TYZHIPk2YuxMY2G3+azZtskd87pazqqzjNdBgGSY+G0xydOEh+BobbOBBeG4tnJPK +kYoS/ltTjUFzhOPbiS9or18JpQdWIDss8xfZICpySLNc0A6C6cZqKU2GhccVKUkFC3l RUMZ95vw2BT1paTyB7nQjO30+qFQHVfT1mt0ISt3XzDQ62ObPloeby2rxfignzKoqZf7 mQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3prfxfbsum-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 04 Apr 2023 10:52:06 +0000 Received: from m0098396.ppops.net (m0098396.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 334APK0P001735; Tue, 4 Apr 2023 10:52:05 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2172.outbound.protection.outlook.com [104.47.56.172]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3prfxfbstv-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 04 Apr 2023 10:52:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fa6h1/R1j8CmlQa13qfEhYQduR72YnERKllQN5BM4uYcmBHYFI2Fx+qXNz0bqIuDPNH8lR15ABPN/ETBM+RRr9nSB+j+K6iF1oxpwdGE5c7l6T7JCg/qxSVlfu1kfLFdiFZ+baKmFUEspt5TyjC8Q6E7dH/a/dvwN05J8H9CEdUm/s2wXFTi510r9wzGzmfiJEdaDPTPS4II4si1QYUk3hZpjnPBFp35lyuR1mJTKWZppHx23/qPVFq3qNTgXpNnPS7u4vD4bw33/9lvQH7c8w8JC3mpJSpQZR0LZHPCjA3ghMpncGMFtwZ2kTUX5SLwdEiSqazNuDG6V4xnc4aafQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gbAOBueTTNwr+57vvFneHcf0PHF0slaHxVA7NFnmJtU=; b=ErxHzriGwng3sMJBTY1ZJadYzjjbxZeFdQXNYXIN3VpenJ9QUGqsCh5LYyNQSaC/h+QF247WijJG/+JYELyLdQCceZGmvoDXWMQ1I+O6/Ci+xpwj5+DYRIZlDM2Kl081eeYpYQQ3Id3Y6A/yOrAo9dkuBhM86dAxecxAiqnGaO6Jwh+gDi5w/NptyInAxKia+MugAEFG3CiDGxidVxcZsRKaThD6WT4B2gyNK7iHSxKxaQKqkArGdrqZIi1oY/UBhsWNKoz7o1MPlxlswnaVs9VPkKudt60yMRZTPy1O23y1oF23kWve/G+ydNjHx536KQUccc/M2OCBTH0gsKPX/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=zurich.ibm.com; dmarc=pass action=none header.from=zurich.ibm.com; dkim=pass header.d=zurich.ibm.com; arc=none Received: from SA0PR15MB3919.namprd15.prod.outlook.com (2603:10b6:806:91::20) by BLAPR15MB3777.namprd15.prod.outlook.com (2603:10b6:208:27f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.35; Tue, 4 Apr 2023 10:52:01 +0000 Received: from SA0PR15MB3919.namprd15.prod.outlook.com ([fe80::4746:c32d:b4d2:ad88]) by SA0PR15MB3919.namprd15.prod.outlook.com ([fe80::4746:c32d:b4d2:ad88%6]) with mapi id 15.20.6254.035; Tue, 4 Apr 2023 10:52:00 +0000 From: Bernard Metzler To: David Howells , Matthew Wilcox , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni CC: David Howells , Al Viro , Christoph Hellwig , Jens Axboe , Jeff Layton , Christian Brauner , Chuck Lever III , Linus Torvalds , "netdev@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , Tom Talpey , "linux-rdma@vger.kernel.org" Thread-Topic: [EXTERNAL] [PATCH v3 38/55] siw: Use sendmsg(MSG_SPLICE_PAGES) rather than sendpage to transmit Thread-Index: AQHZY+ttsU8ZNp7ABU29+GfuDQWGGa8a6oQg Date: Tue, 4 Apr 2023 10:52:00 +0000 Message-ID: References: <20230331160914.1608208-1-dhowells@redhat.com> <20230331160914.1608208-39-dhowells@redhat.com> In-Reply-To: <20230331160914.1608208-39-dhowells@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA0PR15MB3919:EE_|BLAPR15MB3777:EE_ x-ms-office365-filtering-correlation-id: ff9a0dda-7d2b-4939-aea7-08db34fa9e82 x-ld-processed: fcf67057-50c9-4ad4-98f3-ffca64add9e9,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AilXQKOdQcQGEzMjlWGuGwpfIbusd/pm2rZIKMnQggMWvStYNywB8eJ3LeEw7UM8s2dLswdZEAmg9XzotnLJz5MOnlIdXaHKOMjN3E7c+sz0DhH0I6fWxXGTpFNC9poqhonNOy3ysMDORJNwiDn+i5y1oLqn+ReT/Jtbg094ZymwDJjGPjImulImeAyv1GMmX1pQKSr9yhWBrT8GD+3TrlqRMuhg4zLEw49A3wPcBnyV4W/73MhcXpRBSftTTYAL1vzuD3yzwr42lWQyqSeubS6Gy0HSSm6IUQiuYEIfyvcVa1aJWo6y5MyR/2O95GGiK1/IdkEZGWoXrwtOPmXFIsQQXfWG1yOyaMEgRvYPu9rny94zuQm4eb4v6lhPzMHpwlrw17zS9qPpGlsh7bk9dab5BV1ZQh9UennT49VSjQUJJlcFTCLFSwPH5G8T4R1uCNBqzTL5HxXtuHN7/xEP3DeXu6423tt5hXZoCX4mLHXP4o91ShdT2lDSG1KLF0kli1Kwm0PILtNkALBnZrbpbAzt0Paat3rm+iVGh5/Ku3gJT4Yt6wRVBpRFlXbyaDpK1KL10bcbcl/aSG2hUxg3OgOjKgjkiQJX8p7yDsq3/xZtLREwl3BylfA4vwdQDtSQ x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA0PR15MB3919.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(39860400002)(396003)(346002)(376002)(366004)(451199021)(86362001)(38070700005)(2906002)(33656002)(55016003)(7696005)(71200400001)(53546011)(186003)(83380400001)(9686003)(6506007)(4326008)(8676002)(41300700001)(64756008)(66556008)(66446008)(66946007)(76116006)(66476007)(478600001)(122000001)(7416002)(38100700002)(5660300002)(54906003)(316002)(110136005)(30864003)(8936002)(52536014);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RWZ3c3BGSnFlak5BOE1yZmN6ZisyeE5ZZnJ6T0VIZS95TmQ2UmVxMnh5YjNr?= =?utf-8?B?YmRoVDkxR2h6d1g2TWUvWGZXcEFWdTA4YlgzVStBbG9zT1YxN0pCVTRPQ3py?= =?utf-8?B?cHlQT0ZKUGJGSzA2MEVzT012MGJBTThoRkk0ekdaMVEvSWZsMW1oWWIxSCtw?= =?utf-8?B?ZU11UnBpNXdjMElJYVh4dlNBUURrbXFyT25YeHRjK2VVRW5CWGl5UTNoWEtk?= =?utf-8?B?ZEdMc291a0VoOGErYjQvQmlCUjJMYmZnYmc2SnZ6OHJBai9uRzVWOUJPMUho?= =?utf-8?B?TWd2U25MWGdFamZUV1BrTm1KZ0lTc2JFMXRKckxZalArUDNPZEtSWXFzcGZC?= =?utf-8?B?bmtrNk5HU0txRUVSMnNHeUltTUE4TkVGalhZdHE5cWk3eXpoVXk4OEtFdWMy?= =?utf-8?B?UlNlZi9idERzVUFwc01nK3VkZ0ZIZFJsVDhZaDNiNE5vNGs4dW9CZHNDajlX?= =?utf-8?B?QlZlY1dXdHNBNWFYMDlRd3ZLNFlVY0g1cHFnUTZjOStWVWt4Ym5rd2lzcmt6?= =?utf-8?B?MENNclBJcXpPMU8rYkRsaG4wTm9yTytra2M4NlhpMTZ6djk5bG10OGk5YWtZ?= =?utf-8?B?TGM5cnQ4b1Y2VDU1VVNmNlR3UmJrbWo0YjIzV1JSY1FEMnJ3REhIc0MrcmRR?= =?utf-8?B?R0NCREFsQlV2UUlYcFpTUklmMUt2SW91QW1wM2xqaFJBeW5MaDVYTkE0dDU1?= =?utf-8?B?K1hKNUlKWHdESmZmaE9UNmxFSjZXMU13TDN5VWhrbk1ndWNJUXVwSTdteHY3?= =?utf-8?B?OEdrSFhadE0xWFdDQTRnZmFUWFdRQzJXbFh1TnRqZWdON0JXc2R1RGdNU29m?= =?utf-8?B?OG9tSlFtVXpXSlF1MVdxU0E2RnFoVHF1a3pVL3RlOWVremlYYTF2TEJOSW9p?= =?utf-8?B?cFludWhLVnhseVZqMWZmdjJRQkpoOG1BNHlGdHNDdG1wVkEwZ0p2Sjk5empR?= =?utf-8?B?bXQyM1lmYnFoclVBOUtmdnZZbHNGdzA0RmdwV1poR0J6Um5WTjEvVDU5NjRB?= =?utf-8?B?bm9DeGxqRmVFZVNqMVJOdHBEL3hCVGJQdURkbVZoZmpmOEVhM0phL2tPNks4?= =?utf-8?B?Nk1PaXlIQjdTaXhZZUd2M2V4NjNVclMxTnRobjFONkFCZWV4NW5ZeHA5ekZE?= =?utf-8?B?SzE0UEZwOVVURnZidVlCd1BJUDRpWGlCMnJvZXBOemx6bFNVNzg2azArMDhF?= =?utf-8?B?QjdheS9XMXFSeGFjK2g3aWhzZVowLzhWTkV5cGhwRHNNMHdIZTk2MUw0WERW?= =?utf-8?B?VVhIS2xwSlR0MVIzWU9waXIwd1dXWjVGam4rQmNKajd6QXRjRDNwclRpclpY?= =?utf-8?B?L0I2Yjk0aHRUK3JKMDIrSTFVc2ZWNDI0UHNFc2pmdEtUZjRodUE0RkN2TDBK?= =?utf-8?B?dXRaRC9tTm92MWUrRkdoZzdQbTR5emlJclphc0lLMHJLano1S05NRzA1Ykh2?= =?utf-8?B?ZGkzL0QrNVQ4eEU2bXFtd2swR1l6T2tNU3Y2RGN0RXRPQmhDMVRSbWIwQWFt?= =?utf-8?B?WGhLQ2tNV2dqNXhVT01TV2Z3ZDNuYTRMankwQ3psb2ZNK0JiZkVHam5tLzhN?= =?utf-8?B?TEpHcXV3cEltWUhrSUtPVDZ6ZWN5QStBcUc4bzZzNjNZZjk1UDAvY3NEV0ZE?= =?utf-8?B?NEMyNGV0cndlK3p4UVdXcVRSSUJZakZCQzJlS00rdXM1NmV3SFdIMFBKZ29X?= =?utf-8?B?Njg0ZkdFcVJ6M3NFZVJyNGdSNlVVbDNNZUQyU0k3NEtpZFJ5dVcvV2RUQWkv?= =?utf-8?B?WDhkSnZyYVVVamRaRUNVZU5TY1lhaG9tTEkrWUZrK2hONGtxaWVuUnVkWTQz?= =?utf-8?B?RWxwbFRvWjdEQ2E5ZVQvSFBWOEdSRUxwOTczbnRNbjBORHFCYXJHaTVQd3NV?= =?utf-8?B?blIvRm5FSVVzeUN0VDhqV3lZRDhqeDNyYlZ2aTJJekRtOWxoSU5lSllqNEhK?= =?utf-8?B?eENxN014Vm9BdEYwSmxCd3FXOFFBNzg5ZjRlZ0hwNW9yUzZzREJYR28zaTU5?= =?utf-8?B?NExXL2ViZDBYQVlLNFZJb1djRW9lQmliZDlsMFUxaW5rM0RHaFZ2NTVpWVpU?= =?utf-8?B?QjFRdGlTc09lRjh0dldFR0E5VkFNSTd6SHVucjB6WGpGa3VWMG5oZys4R25z?= =?utf-8?B?S1RIclFaY0E5azN0ZHpSb0k3ODBtRmxER0VaR0UxWW93azZvS2IvRk5BUk9a?= =?utf-8?Q?aFl4TiH4o2mTuLr0gWTbHoc=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Zurich.ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA0PR15MB3919.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff9a0dda-7d2b-4939-aea7-08db34fa9e82 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2023 10:52:00.8520 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: egPJg9R9bXIHQ8BQUni/eW4YSjxSjQOwEEmrbjMiUgiQ+zA7rJS2AIqV9aoOKOXnc7sPMfjWC2TGqvxiXG+9Ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR15MB3777 X-Proofpoint-GUID: RLc25CO9SON3mXoON8PaYP-Dotgj7DiO X-Proofpoint-ORIG-GUID: -cMFYu2Qeh8M9bAe3dSdjZ-OWXQBgYoP Subject: RE: [PATCH v3 38/55] siw: Use sendmsg(MSG_SPLICE_PAGES) rather than sendpage to transmit X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-04_03,2023-04-04_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 mlxscore=0 mlxlogscore=999 lowpriorityscore=0 suspectscore=0 phishscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304040097 X-Rspamd-Queue-Id: 53A39C001E X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: m1umxsrr9g17wwinzybwzbutx63ooyb3 X-HE-Tag: 1680605542-406498 X-HE-Meta: U2FsdGVkX19b4ujxMYWyiYBb6zuhVbMe7jcX28UJ/DYg5uHrvCf8h2gwbZdrDlRWGY0AwbVuMmd5D8Jjr6BjBOTcVh7aafut2brNMa4VDM0YhhLGWsSLhhyRwl+0w17bt5v1Ke2C1xL5rVYI0d0wLbbaSRLtE08eip/qNDuQKWwKkHI0+gE9S14KW7I7FyOL87Tc8D0BAShrOdvA0lciDa6RAlxZVYZzoQrNNqbXpw2O8fWjWx5tF3buId8V+gZJlwAY5vlypqTV77mJAauoURSRpoln2AdmC0/8tJh2x5Yc/Rn5qqc/48GajIqz6mvNj5z1MDAV68ifWy/k5sgMhzEAcYRk0BEUzuvCcONWQDvF5IjKpGT8WGTfgeQY8ngUkaGhAXouLaSELABP2b5RNg5ajbtcXGAea0Kic8+l2NHe9E5HtvNxBNYNDOQIYMnOOBhBvwzNCgEbjs5Rd+prZcNPMC6y+furvHBLL8NEWoPjUO6B6Xqx/QmPiD8rg3gpJVdbqQz1CGgZ2P2HgOAwfG1PAhZtA3EXapsSj/cHscJvrlk2hcI4SZzGtoVyoo23jdOX0I94O7XtW3CptMZ+9xqphzTV/U1iLoYxD7dLN9kwcFqwcIdsww706frypU0iJIo4btNcX2jnrvklYsHzUgeWq8d+lBErtCyAUXjqqW1tWr9vrAUkB8e53XiX9YFcsFLUbvAtizDIP8o9S/4U+s1vPQe8zmIugSWF7RDgit1Was1RlRrCGhSkKoR2QivEZjVUNCTCQhAlKBLyPjMXj8O+sxcnLi8ciSr1lY/4SseFHoK1DmincnfxqRBRoZ9+bmvg7y5QdMaZPqhyA/cVwHD0rrzq0VjYcykfF2ec7xytwqMaqkZObGHEUIhiKLcdIhG88VK6v5ZKM97/6XLlFr7a+Ek856QEX/5r0fMQ5gwiDVrV8dU50zJ5ZkZman9dDzcXFwVMyBsNv8FnkMs A/yUH1Em bwVJl7UDUpLd1riuHYdegOjUZGaensUy3ucGTib4nrfFPeXVSQG06fQdSVhgplRKw/snOM86KIS04QL9oPn06JiZugVedTS6VU+fUJc2Kc+fgLaUy/kd45UodeszyAoA+nlWxbc9yq4twUVeRvJIojtEGOYiQERsq/k68z6CoZ3PvAg9L8mocnFfW9CGM4a27sps57YzJP57T+gvgfysmaJ2aXjtTMjbRHFwM6rCs5JecdSJVgwHLstgrgGC1Osa30s/bv+bZJrehhLPMWQEpJbiOgL5j1WnJ1BQVXAtGA/k8IKYvJo3COUKHlqnJOqCvW3AdfGvGT0FTiR5VTHeiGGLztxMO0vklsnwnnCi89bfdOnj2Mzymgzbv50w6zClYiK3djZakz0FSHSHe0g6hVa0aDxZwrBzA91lba8EKAAYhImcT4HamkdhYnwr800zSoweSp2L1PEEbEOdVWhD9ksfyUn74g28q4gWc1rjiaoEmdIGT/DFVtQllyfm4hbQZJLhLLYETSSgtQY/jGKFc663sBDVWg6pPuuyHfYEouG6eOHMAD96wv7wKY1rX315MRCrkPRSwVzIygpCXiklGCUr/rrSaO3OGzm8jtE34hD5l3JQj88ehpJnbm+GlpfbgSLQ9XfBL/1FkPzgUdhSbnJCI9PxEwHLFuFHVEDClKoe9+eDpY8A/rnWDHMWMHyXbGRA2FR7fm+ngK7HpfHMWi0LpXeKz1QX6bLX32OiE7KoqLkkHiaMxVNdY72dkWBfv8QKUyWsGA4OrRuh70Eu0N+hc6dRZq+CnSKpwRBsg/IIjvoJ6zhNOU4324pmyMCJx9oXOBxy1kshOdwvIK1UvxFukBm/8jK3IJM2ySCHjhXBiTImZJcRGjNR2/w9TZsLiKHh2+bcvRGFfWjxTh4vPcEmP1505BB3eDzqzfFVq9oZLP70h+Zy17oAkDGThsXO/QLTiNEbXJLunqQQ4u/jVrIu8s2a/ r9SXqtwT qzJBqCNSWlFV6cgfvXQoqSL9cBa/dz3M 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: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2aWQgSG93ZWxscyA8 ZGhvd2VsbHNAcmVkaGF0LmNvbT4NCj4gU2VudDogRnJpZGF5LCAzMSBNYXJjaCAyMDIzIDE4OjA5 DQo+IFRvOiBNYXR0aGV3IFdpbGNveCA8d2lsbHlAaW5mcmFkZWFkLm9yZz47IERhdmlkIFMuIE1p bGxlcg0KPiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD47IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT47IEpha3ViIEtpY2luc2tpDQo+IDxrdWJhQGtlcm5lbC5vcmc+OyBQYW9sbyBBYmVu aSA8cGFiZW5pQHJlZGhhdC5jb20+DQo+IENjOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRo YXQuY29tPjsgQWwgVmlybyA8dmlyb0B6ZW5pdi5saW51eC5vcmcudWs+Ow0KPiBDaHJpc3RvcGgg SGVsbHdpZyA8aGNoQGluZnJhZGVhZC5vcmc+OyBKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+ OyBKZWZmDQo+IExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPjsgQ2hyaXN0aWFuIEJyYXVuZXIg PGJyYXVuZXJAa2VybmVsLm9yZz47IENodWNrDQo+IExldmVyIElJSSA8Y2h1Y2subGV2ZXJAb3Jh Y2xlLmNvbT47IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC0NCj4gZm91bmRhdGlvbi5v cmc+OyBuZXRkZXZAdmdlci5rZXJuZWwub3JnOyBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9y ZzsNCj4gbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtbW1Aa3ZhY2sub3JnOyBC ZXJuYXJkIE1ldHpsZXINCj4gPEJNVEB6dXJpY2guaWJtLmNvbT47IFRvbSBUYWxwZXkgPHRvbUB0 YWxwZXkuY29tPjsgbGludXgtDQo+IHJkbWFAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFtF WFRFUk5BTF0gW1BBVENIIHYzIDM4LzU1XSBzaXc6IFVzZSBzZW5kbXNnKE1TR19TUExJQ0VfUEFH RVMpDQo+IHJhdGhlciB0aGFuIHNlbmRwYWdlIHRvIHRyYW5zbWl0DQo+IA0KPiBXaGVuIHRyYW5z bWl0dGluZyBkYXRhLCBjYWxsIGRvd24gaW50byBUQ1AgdXNpbmcgYSBzaW5nbGUgc2VuZG1zZyB3 aXRoDQo+IE1TR19TUExJQ0VfUEFHRVMgdG8gaW5kaWNhdGUgdGhhdCBjb250ZW50IHNob3VsZCBi ZSBzcGxpY2VkIHJhdGhlciB0aGFuDQo+IHBlcmZvcm1pbmcgc2V2ZXJhbCBzZW5kbXNnIGFuZCBz ZW5kcGFnZSBjYWxscyB0byB0cmFuc21pdCBoZWFkZXIsIGRhdGENCj4gcGFnZXMgYW5kIHRyYWls ZXIuDQo+IA0KPiBUbyBtYWtlIHRoaXMgd29yaywgdGhlIGRhdGEgaXMgYXNzZW1ibGVkIGluIGEg YmlvX3ZlYyBhcnJheSBhbmQgYXR0YWNoZWQgdG8NCj4gYSBCVkVDLXR5cGUgaXRlcmF0b3IuICBU aGUgaGVhZGVyIGFuZCB0cmFpbGVyIChpZiBwcmVzZW50KSBhcmUgY29waWVkIGludG8NCj4gcGFn ZSBmcmFnbWVudHMgdGhhdCBjYW4gYmUgZnJlZWQgd2l0aCBwdXRfcGFnZSgpLg0KPiANCj4gU2ln bmVkLW9mZi1ieTogRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4NCj4gY2M6IEJl cm5hcmQgTWV0emxlciA8Ym10QHp1cmljaC5pYm0uY29tPg0KPiBjYzogVG9tIFRhbHBleSA8dG9t QHRhbHBleS5jb20+DQo+IGNjOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4NCj4gY2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4NCj4gY2M6IEpha3Vi IEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+DQo+IGNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJl ZGhhdC5jb20+DQo+IGNjOiBKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+DQo+IGNjOiBNYXR0 aGV3IFdpbGNveCA8d2lsbHlAaW5mcmFkZWFkLm9yZz4NCj4gY2M6IGxpbnV4LXJkbWFAdmdlci5r ZXJuZWwub3JnDQo+IGNjOiBuZXRkZXZAdmdlci5rZXJuZWwub3JnDQo+IC0tLQ0KPiAgZHJpdmVy cy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfcXBfdHguYyB8IDIzNCArKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDE4NiBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvc2l3L3Npd19x cF90eC5jDQo+IGIvZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfcXBfdHguYw0KPiBpbmRl eCBmYTVkZTQwZDg1ZDUuLmZiZTgwYzA2ZDBjYSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9pbmZp bmliYW5kL3N3L3Npdy9zaXdfcXBfdHguYw0KPiArKysgYi9kcml2ZXJzL2luZmluaWJhbmQvc3cv c2l3L3Npd19xcF90eC5jDQo+IEBAIC0zMTIsMTE0ICszMTIsOCBAQCBzdGF0aWMgaW50IHNpd190 eF9jdHJsKHN0cnVjdCBzaXdfaXdhcnBfdHggKmNfdHgsDQo+IHN0cnVjdCBzb2NrZXQgKnMsDQo+ ICAJcmV0dXJuIHJ2Ow0KPiAgfQ0KPiANCj4gLS8qDQo+IC0gKiAwY29weSBUQ1AgdHJhbnNtaXQg aW50ZXJmYWNlOiBVc2UgTVNHX1NQTElDRV9QQUdFUy4NCj4gLSAqDQo+IC0gKiBVc2luZyBzZW5k cGFnZSB0byBwdXNoIHBhZ2UgYnkgcGFnZSBhcHBlYXJzIHRvIGJlIGxlc3MgZWZmaWNpZW50DQo+ IC0gKiB0aGFuIHVzaW5nIHNlbmRtc2csIGV2ZW4gaWYgZGF0YSBhcmUgY29waWVkLg0KPiAtICoN Cj4gLSAqIEEgZ2VuZXJhbCBwZXJmb3JtYW5jZSBsaW1pdGF0aW9uIG1pZ2h0IGJlIHRoZSBleHRy YSBmb3VyIGJ5dGVzDQo+IC0gKiB0cmFpbGVyIGNoZWNrc3VtIHNlZ21lbnQgdG8gYmUgcHVzaGVk IGFmdGVyIHVzZXIgZGF0YS4NCj4gLSAqLw0KPiAtc3RhdGljIGludCBzaXdfdGNwX3NlbmRwYWdl cyhzdHJ1Y3Qgc29ja2V0ICpzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2UsIGludA0KPiBvZmZzZXQsDQo+ IC0JCQkgICAgIHNpemVfdCBzaXplKQ0KPiAtew0KPiAtCXN0cnVjdCBiaW9fdmVjIGJ2ZWM7DQo+ IC0Jc3RydWN0IG1zZ2hkciBtc2cgPSB7DQo+IC0JCS5tc2dfZmxhZ3MgPSAoTVNHX01PUkUgfCBN U0dfRE9OVFdBSVQgfCBNU0dfU0VORFBBR0VfTk9UTEFTVCB8DQo+IC0JCQkgICAgICBNU0dfU1BM SUNFX1BBR0VTKSwNCj4gLQl9Ow0KPiAtCXN0cnVjdCBzb2NrICpzayA9IHMtPnNrOw0KPiAtCWlu dCBpID0gMCwgcnYgPSAwLCBzZW50ID0gMDsNCj4gLQ0KPiAtCXdoaWxlIChzaXplKSB7DQo+IC0J CXNpemVfdCBieXRlcyA9IG1pbl90KHNpemVfdCwgUEFHRV9TSVpFIC0gb2Zmc2V0LCBzaXplKTsN Cj4gLQ0KPiAtCQlpZiAoc2l6ZSArIG9mZnNldCA8PSBQQUdFX1NJWkUpDQo+IC0JCQltc2cubXNn X2ZsYWdzID0gTVNHX01PUkUgfCBNU0dfRE9OVFdBSVQ7DQo+IC0NCj4gLQkJdGNwX3JhdGVfY2hl Y2tfYXBwX2xpbWl0ZWQoc2spOw0KPiAtCQlidmVjX3NldF9wYWdlKCZidmVjLCBwYWdlW2ldLCBi eXRlcywgb2Zmc2V0KTsNCj4gLQkJaW92X2l0ZXJfYnZlYygmbXNnLm1zZ19pdGVyLCBJVEVSX1NP VVJDRSwgJmJ2ZWMsIDEsIHNpemUpOw0KPiAtDQo+IC10cnlfcGFnZV9hZ2FpbjoNCj4gLQkJbG9j a19zb2NrKHNrKTsNCj4gLQkJcnYgPSB0Y3Bfc2VuZG1zZ19sb2NrZWQoc2ssICZtc2csIHNpemUp Ow0KPiAtCQlyZWxlYXNlX3NvY2soc2spOw0KPiAtDQo+IC0JCWlmIChydiA+IDApIHsNCj4gLQkJ CXNpemUgLT0gcnY7DQo+IC0JCQlzZW50ICs9IHJ2Ow0KPiAtCQkJaWYgKHJ2ICE9IGJ5dGVzKSB7 DQo+IC0JCQkJb2Zmc2V0ICs9IHJ2Ow0KPiAtCQkJCWJ5dGVzIC09IHJ2Ow0KPiAtCQkJCWdvdG8g dHJ5X3BhZ2VfYWdhaW47DQo+IC0JCQl9DQo+IC0JCQlvZmZzZXQgPSAwOw0KPiAtCQl9IGVsc2Ug ew0KPiAtCQkJaWYgKHJ2ID09IC1FQUdBSU4gfHwgcnYgPT0gMCkNCj4gLQkJCQlicmVhazsNCj4g LQkJCXJldHVybiBydjsNCj4gLQkJfQ0KPiAtCQlpKys7DQo+IC0JfQ0KPiAtCXJldHVybiBzZW50 Ow0KPiAtfQ0KPiAtDQo+IC0vKg0KPiAtICogc2l3XzBjb3B5X3R4KCkNCj4gLSAqDQo+IC0gKiBQ dXNoZXMgbGlzdCBvZiBwYWdlcyB0byBUQ1Agc29ja2V0LiBJZiBwYWdlcyBmcm9tIG11bHRpcGxl DQo+IC0gKiBTR0UncywgYWxsIHJlZmVyZW5jZWQgcGFnZXMgb2YgZWFjaCBTR0UgYXJlIHB1c2hl ZCBpbiBvbmUNCj4gLSAqIHNob3QuDQo+IC0gKi8NCj4gLXN0YXRpYyBpbnQgc2l3XzBjb3B5X3R4 KHN0cnVjdCBzb2NrZXQgKnMsIHN0cnVjdCBwYWdlICoqcGFnZSwNCj4gLQkJCXN0cnVjdCBzaXdf c2dlICpzZ2UsIHVuc2lnbmVkIGludCBvZmZzZXQsDQo+IC0JCQl1bnNpZ25lZCBpbnQgc2l6ZSkN Cj4gLXsNCj4gLQlpbnQgaSA9IDAsIHNlbnQgPSAwLCBydjsNCj4gLQlpbnQgc2dlX2J5dGVzID0g bWluKHNnZS0+bGVuZ3RoIC0gb2Zmc2V0LCBzaXplKTsNCj4gLQ0KPiAtCW9mZnNldCA9IChzZ2Ut PmxhZGRyICsgb2Zmc2V0KSAmIH5QQUdFX01BU0s7DQo+IC0NCj4gLQl3aGlsZSAoc2VudCAhPSBz aXplKSB7DQo+IC0JCXJ2ID0gc2l3X3RjcF9zZW5kcGFnZXMocywgJnBhZ2VbaV0sIG9mZnNldCwg c2dlX2J5dGVzKTsNCj4gLQkJaWYgKHJ2ID49IDApIHsNCj4gLQkJCXNlbnQgKz0gcnY7DQo+IC0J CQlpZiAoc2l6ZSA9PSBzZW50IHx8IHNnZV9ieXRlcyA+IHJ2KQ0KPiAtCQkJCWJyZWFrOw0KPiAt DQo+IC0JCQlpICs9IFBBR0VfQUxJR04oc2dlX2J5dGVzICsgb2Zmc2V0KSA+PiBQQUdFX1NISUZU Ow0KPiAtCQkJc2dlKys7DQo+IC0JCQlzZ2VfYnl0ZXMgPSBtaW4oc2dlLT5sZW5ndGgsIHNpemUg LSBzZW50KTsNCj4gLQkJCW9mZnNldCA9IHNnZS0+bGFkZHIgJiB+UEFHRV9NQVNLOw0KPiAtCQl9 IGVsc2Ugew0KPiAtCQkJc2VudCA9IHJ2Ow0KPiAtCQkJYnJlYWs7DQo+IC0JCX0NCj4gLQl9DQo+ IC0JcmV0dXJuIHNlbnQ7DQo+IC19DQo+IC0NCj4gICNkZWZpbmUgTUFYX1RSQUlMRVIgKE1QQV9D UkNfU0laRSArIDQpDQo+IA0KPiAtc3RhdGljIHZvaWQgc2l3X3VubWFwX3BhZ2VzKHN0cnVjdCBr dmVjICppb3YsIHVuc2lnbmVkIGxvbmcga21hcF9tYXNrLCBpbnQNCj4gbGVuKQ0KPiAtew0KPiAt CWludCBpOw0KPiAtDQo+IC0JLyoNCj4gLQkgKiBXb3JrIGJhY2t3YXJkcyB0aHJvdWdoIHRoZSBh cnJheSB0byBob25vciB0aGUga21hcF9sb2NhbF9wYWdlKCkNCj4gLQkgKiBvcmRlcmluZyByZXF1 aXJlbWVudHMuDQo+IC0JICovDQo+IC0JZm9yIChpID0gKGxlbi0xKTsgaSA+PSAwOyBpLS0pIHsN Cj4gLQkJaWYgKGttYXBfbWFzayAmIEJJVChpKSkgew0KPiAtCQkJdW5zaWduZWQgbG9uZyBhZGRy ID0gKHVuc2lnbmVkIGxvbmcpaW92W2ldLmlvdl9iYXNlOw0KPiAtDQo+IC0JCQlrdW5tYXBfbG9j YWwoKHZvaWQgKikoYWRkciAmIFBBR0VfTUFTSykpOw0KPiAtCQl9DQo+IC0JfQ0KPiAtfQ0KPiAt DQo+ICAvKg0KPiAgICogc2l3X3R4X2hkdCgpIHRyaWVzIHRvIHB1c2ggYSBjb21wbGV0ZSBwYWNr ZXQgdG8gVENQIHdoZXJlIGFsbA0KPiAgICogcGFja2V0IGZyYWdtZW50cyBhcmUgcmVmZXJlbmNl ZCBieSB0aGUgZWxlbWVudHMgb2Ygb25lIGlvdmVjLg0KPiBAQCAtNDM5LDE1ICszMzMsMTQgQEAg c3RhdGljIGludCBzaXdfdHhfaGR0KHN0cnVjdCBzaXdfaXdhcnBfdHggKmNfdHgsDQo+IHN0cnVj dCBzb2NrZXQgKnMpDQo+ICB7DQo+ICAJc3RydWN0IHNpd193cWUgKndxZSA9ICZjX3R4LT53cWVf YWN0aXZlOw0KPiAgCXN0cnVjdCBzaXdfc2dlICpzZ2UgPSAmd3FlLT5zcWUuc2dlW2NfdHgtPnNn ZV9pZHhdOw0KPiAtCXN0cnVjdCBrdmVjIGlvdltNQVhfQVJSQVldOw0KPiAtCXN0cnVjdCBwYWdl ICpwYWdlX2FycmF5W01BWF9BUlJBWV07DQo+ICsJc3RydWN0IGJpb192ZWMgYnZlY1tNQVhfQVJS QVldOw0KPiAgCXN0cnVjdCBtc2doZHIgbXNnID0geyAubXNnX2ZsYWdzID0gTVNHX0RPTlRXQUlU IHwgTVNHX0VPUiB9Ow0KPiArCXZvaWQgKnRybCwgKnQ7DQo+IA0KPiAgCWludCBzZWcgPSAwLCBk b19jcmMgPSBjX3R4LT5kb19jcmMsIGlzX2t2YSA9IDAsIHJ2Ow0KPiAgCXVuc2lnbmVkIGludCBk YXRhX2xlbiA9IGNfdHgtPmJ5dGVzX3Vuc2VudCwgaGRyX2xlbiA9IDAsIHRybF9sZW4gPSAwLA0K PiAgCQkgICAgIHNnZV9vZmYgPSBjX3R4LT5zZ2Vfb2ZmLCBzZ2VfaWR4ID0gY190eC0+c2dlX2lk eCwNCj4gIAkJICAgICBwYmxfaWR4ID0gY190eC0+cGJsX2lkeDsNCj4gLQl1bnNpZ25lZCBsb25n IGttYXBfbWFzayA9IDBMOw0KPiANCj4gIAlpZiAoY190eC0+c3RhdGUgPT0gU0lXX1NFTkRfSERS KSB7DQo+ICAJCWlmIChjX3R4LT51c2Vfc2VuZHBhZ2UpIHsNCj4gQEAgLTQ1NywxMCArMzUwLDE1 IEBAIHN0YXRpYyBpbnQgc2l3X3R4X2hkdChzdHJ1Y3Qgc2l3X2l3YXJwX3R4ICpjX3R4LA0KPiBz dHJ1Y3Qgc29ja2V0ICpzKQ0KPiANCg0KQ291bGRuJ3Qgd2Ugbm93IGNvbGxhcHNlIHRoZSB0d28g aGVhZGVyIGhhbmRsaW5nIHBhdGhzDQppbnRvIG9uZSwgYXZvaWRpbmcgZXh0cmEgDQonaWYgKGNf dHgtPnVzZV9zZW5kcGFnZSkge30gZWxzZSB7fScgY29uZGl0aW9ucz8NCg0KDQo+ICAJCQljX3R4 LT5zdGF0ZSA9IFNJV19TRU5EX0RBVEE7DQo+ICAJCX0gZWxzZSB7DQo+IC0JCQlpb3ZbMF0uaW92 X2Jhc2UgPQ0KPiAtCQkJCShjaGFyICopJmNfdHgtPnBrdC5jdHJsICsgY190eC0+Y3RybF9zZW50 Ow0KPiAtCQkJaW92WzBdLmlvdl9sZW4gPSBoZHJfbGVuID0NCj4gLQkJCQljX3R4LT5jdHJsX2xl biAtIGNfdHgtPmN0cmxfc2VudDsNCj4gKwkJCWNvbnN0IHZvaWQgKmhkciA9ICZjX3R4LT5wa3Qu Y3RybCArIGNfdHgtPmN0cmxfc2VudDsNCj4gKwkJCXZvaWQgKmg7DQo+ICsNCj4gKwkJCXJ2ID0g LUVOT01FTTsNCj4gKwkJCWhkcl9sZW4gPSBjX3R4LT5jdHJsX2xlbiAtIGNfdHgtPmN0cmxfc2Vu dDsNCj4gKwkJCWggPSBwYWdlX2ZyYWdfbWVtZHVwKE5VTEwsIGhkciwgaGRyX2xlbiwgR0ZQX05P RlMsDQo+IFVMT05HX01BWCk7DQoNCkxldCdzIHN0YXkgd2l0aCA8IDgwIGNoYXJzIHBlciBsaW5l IGZvciB0aGUgUkRNQQ0Kc3Vic3lzdGVtIGNvZGUuIFR3byBtb3JlIGNhc2VzIGZ1cnRoZXIgZG93 bi4uLi50aGFua3MhDQoNCj4gKwkJCWlmICghaCkNCj4gKwkJCQlnb3RvIGRvbmU7DQo+ICsJCQli dmVjX3NldF92aXJ0KCZidmVjWzBdLCBoLCBoZHJfbGVuKTsNCj4gIAkJCXNlZyA9IDE7DQo+ICAJ CX0NCj4gIAl9DQo+IEBAIC00NzgsMjggKzM3Niw5IEBAIHN0YXRpYyBpbnQgc2l3X3R4X2hkdChz dHJ1Y3Qgc2l3X2l3YXJwX3R4ICpjX3R4LA0KPiBzdHJ1Y3Qgc29ja2V0ICpzKQ0KPiAgCQl9IGVs c2Ugew0KPiAgCQkJaXNfa3ZhID0gMTsNCj4gIAkJfQ0KPiAtCQlpZiAoaXNfa3ZhICYmICFjX3R4 LT51c2Vfc2VuZHBhZ2UpIHsNCj4gLQkJCS8qDQo+IC0JCQkgKiB0eCBmcm9tIGtlcm5lbCB2aXJ0 dWFsIGFkZHJlc3M6IGVpdGhlciBpbmxpbmUgZGF0YQ0KPiAtCQkJICogb3IgbWVtb3J5IHJlZ2lv biB3aXRoIGFzc2lnbmVkIGtlcm5lbCBidWZmZXINCj4gLQkJCSAqLw0KPiAtCQkJaW92W3NlZ10u aW92X2Jhc2UgPQ0KPiAtCQkJCSh2b2lkICopKHVpbnRwdHJfdCkoc2dlLT5sYWRkciArIHNnZV9v ZmYpOw0KPiAtCQkJaW92W3NlZ10uaW92X2xlbiA9IHNnZV9sZW47DQo+IC0NCj4gLQkJCWlmIChk b19jcmMpDQo+IC0JCQkJY3J5cHRvX3NoYXNoX3VwZGF0ZShjX3R4LT5tcGFfY3JjX2hkLA0KPiAt CQkJCQkJICAgIGlvdltzZWddLmlvdl9iYXNlLA0KPiAtCQkJCQkJICAgIHNnZV9sZW4pOw0KPiAt CQkJc2dlX29mZiArPSBzZ2VfbGVuOw0KPiAtCQkJZGF0YV9sZW4gLT0gc2dlX2xlbjsNCj4gLQkJ CXNlZysrOw0KPiAtCQkJZ290byBzZ2VfZG9uZTsNCj4gLQkJfQ0KPiANCj4gIAkJd2hpbGUgKHNn ZV9sZW4pIHsNCj4gIAkJCXNpemVfdCBwbGVuID0gbWluKChpbnQpUEFHRV9TSVpFIC0gZnBfb2Zm LCBzZ2VfbGVuKTsNCj4gLQkJCXZvaWQgKmthZGRyOw0KPiANCj4gIAkJCWlmICghaXNfa3ZhKSB7 DQo+ICAJCQkJc3RydWN0IHBhZ2UgKnA7DQo+IEBAIC01MTIsMzMgKzM5MSwxMiBAQCBzdGF0aWMg aW50IHNpd190eF9oZHQoc3RydWN0IHNpd19pd2FycF90eCAqY190eCwNCj4gc3RydWN0IHNvY2tl dCAqcykNCj4gIAkJCQkJcCA9IHNpd19nZXRfdXBhZ2UobWVtLT51bWVtLA0KPiAgCQkJCQkJCSAg c2dlLT5sYWRkciArIHNnZV9vZmYpOw0KPiAgCQkJCWlmICh1bmxpa2VseSghcCkpIHsNCj4gLQkJ CQkJc2l3X3VubWFwX3BhZ2VzKGlvdiwga21hcF9tYXNrLCBzZWcpOw0KPiAgCQkJCQl3cWUtPnBy b2Nlc3NlZCAtPSBjX3R4LT5ieXRlc191bnNlbnQ7DQo+ICAJCQkJCXJ2ID0gLUVGQVVMVDsNCj4g IAkJCQkJZ290byBkb25lX2NyYzsNCj4gIAkJCQl9DQo+IC0JCQkJcGFnZV9hcnJheVtzZWddID0g cDsNCj4gLQ0KPiAtCQkJCWlmICghY190eC0+dXNlX3NlbmRwYWdlKSB7DQo+IC0JCQkJCXZvaWQg KmthZGRyID0ga21hcF9sb2NhbF9wYWdlKHApOw0KPiAtDQo+IC0JCQkJCS8qIFJlbWVtYmVyIGZv ciBsYXRlciBrdW5tYXAoKSAqLw0KPiAtCQkJCQlrbWFwX21hc2sgfD0gQklUKHNlZyk7DQo+IC0J CQkJCWlvdltzZWddLmlvdl9iYXNlID0ga2FkZHIgKyBmcF9vZmY7DQo+IC0JCQkJCWlvdltzZWdd Lmlvdl9sZW4gPSBwbGVuOw0KPiAtDQo+IC0JCQkJCWlmIChkb19jcmMpDQo+IC0JCQkJCQljcnlw dG9fc2hhc2hfdXBkYXRlKA0KPiAtCQkJCQkJCWNfdHgtPm1wYV9jcmNfaGQsDQo+IC0JCQkJCQkJ aW92W3NlZ10uaW92X2Jhc2UsDQo+IC0JCQkJCQkJcGxlbik7DQo+IC0JCQkJfSBlbHNlIGlmIChk b19jcmMpIHsNCj4gLQkJCQkJa2FkZHIgPSBrbWFwX2xvY2FsX3BhZ2UocCk7DQo+IC0JCQkJCWNy eXB0b19zaGFzaF91cGRhdGUoY190eC0+bXBhX2NyY19oZCwNCj4gLQkJCQkJCQkgICAga2FkZHIg KyBmcF9vZmYsDQo+IC0JCQkJCQkJICAgIHBsZW4pOw0KPiAtCQkJCQlrdW5tYXBfbG9jYWwoa2Fk ZHIpOw0KPiAtCQkJCX0NCj4gKw0KPiArCQkJCWJ2ZWNfc2V0X3BhZ2UoJmJ2ZWNbc2VnXSwgcCwg cGxlbiwgZnBfb2ZmKTsNCj4gIAkJCX0gZWxzZSB7DQo+ICAJCQkJLyoNCj4gIAkJCQkgKiBDYXN0 IHRvIGFuIHVpbnRwdHJfdCB0byBwcmVzZXJ2ZSBhbGwgNjQgYml0cw0KPiBAQCAtNTUyLDEyICs0 MTAsMTUgQEAgc3RhdGljIGludCBzaXdfdHhfaGR0KHN0cnVjdCBzaXdfaXdhcnBfdHggKmNfdHgs DQo+IHN0cnVjdCBzb2NrZXQgKnMpDQo+ICAJCQkJICogYml0cyBvbiBhIDY0IGJpdCBwbGF0Zm9y bSBhbmQgMzIgYml0cyBvbiBhDQo+ICAJCQkJICogMzIgYml0IHBsYXRmb3JtLg0KPiAgCQkJCSAq Lw0KPiAtCQkJCXBhZ2VfYXJyYXlbc2VnXSA9IHZpcnRfdG9fcGFnZSgodm9pZCAqKSh2YSAmDQo+ IFBBR0VfTUFTSykpOw0KPiAtCQkJCWlmIChkb19jcmMpDQo+IC0JCQkJCWNyeXB0b19zaGFzaF91 cGRhdGUoDQo+IC0JCQkJCQljX3R4LT5tcGFfY3JjX2hkLA0KPiAtCQkJCQkJKHZvaWQgKil2YSwN Cj4gLQkJCQkJCXBsZW4pOw0KPiArCQkJCWJ2ZWNfc2V0X3ZpcnQoJmJ2ZWNbc2VnXSwgKHZvaWQg Kil2YSwgcGxlbik7DQo+ICsJCQl9DQo+ICsNCj4gKwkJCWlmIChkb19jcmMpIHsNCj4gKwkJCQl2 b2lkICprYWRkciA9IGttYXBfbG9jYWxfcGFnZShidmVjW3NlZ10uYnZfcGFnZSk7DQo+ICsJCQkJ Y3J5cHRvX3NoYXNoX3VwZGF0ZShjX3R4LT5tcGFfY3JjX2hkLA0KPiArCQkJCQkJICAgIGthZGRy ICsgYnZlY1tzZWddLmJ2X29mZnNldCwNCj4gKwkJCQkJCSAgICBidmVjW3NlZ10uYnZfbGVuKTsN Cj4gKwkJCQlrdW5tYXBfbG9jYWwoa2FkZHIpOw0KPiAgCQkJfQ0KPiANCj4gIAkJCXNnZV9sZW4g LT0gcGxlbjsNCj4gQEAgLTU2NywxMyArNDI4LDEyIEBAIHN0YXRpYyBpbnQgc2l3X3R4X2hkdChz dHJ1Y3Qgc2l3X2l3YXJwX3R4ICpjX3R4LA0KPiBzdHJ1Y3Qgc29ja2V0ICpzKQ0KPiANCj4gIAkJ CWlmICgrK3NlZyA+IChpbnQpTUFYX0FSUkFZKSB7DQo+ICAJCQkJc2l3X2RiZ19xcCh0eF9xcChj X3R4KSwgInRvIG1hbnkgZnJhZ21lbnRzXG4iKTsNCj4gLQkJCQlzaXdfdW5tYXBfcGFnZXMoaW92 LCBrbWFwX21hc2ssIHNlZy0xKTsNCj4gIAkJCQl3cWUtPnByb2Nlc3NlZCAtPSBjX3R4LT5ieXRl c191bnNlbnQ7DQo+ICAJCQkJcnYgPSAtRU1TR1NJWkU7DQo+ICAJCQkJZ290byBkb25lX2NyYzsN Cj4gIAkJCX0NCj4gIAkJfQ0KPiAtc2dlX2RvbmU6DQo+ICsNCj4gIAkJLyogVXBkYXRlIFNHRSB2 YXJpYWJsZXMgYXQgZW5kIG9mIFNHRSAqLw0KPiAgCQlpZiAoc2dlX29mZiA9PSBzZ2UtPmxlbmd0 aCAmJg0KPiAgCQkgICAgKGRhdGFfbGVuICE9IDAgfHwgd3FlLT5wcm9jZXNzZWQgPCB3cWUtPmJ5 dGVzKSkgew0KPiBAQCAtNTgyLDE1ICs0NDIsOCBAQCBzdGF0aWMgaW50IHNpd190eF9oZHQoc3Ry dWN0IHNpd19pd2FycF90eCAqY190eCwNCj4gc3RydWN0IHNvY2tldCAqcykNCj4gIAkJCXNnZV9v ZmYgPSAwOw0KPiAgCQl9DQo+ICAJfQ0KPiAtCS8qIHRyYWlsZXIgKi8NCj4gLQlpZiAobGlrZWx5 KGNfdHgtPnN0YXRlICE9IFNJV19TRU5EX1RSQUlMRVIpKSB7DQo+IC0JCWlvdltzZWddLmlvdl9i YXNlID0gJmNfdHgtPnRyYWlsZXIucGFkWzQgLSBjX3R4LT5wYWRdOw0KPiAtCQlpb3Zbc2VnXS5p b3ZfbGVuID0gdHJsX2xlbiA9IE1BWF9UUkFJTEVSIC0gKDQgLSBjX3R4LT5wYWQpOw0KPiAtCX0g ZWxzZSB7DQo+IC0JCWlvdltzZWddLmlvdl9iYXNlID0gJmNfdHgtPnRyYWlsZXIucGFkW2NfdHgt PmN0cmxfc2VudF07DQo+IC0JCWlvdltzZWddLmlvdl9sZW4gPSB0cmxfbGVuID0gTUFYX1RSQUlM RVIgLSBjX3R4LT5jdHJsX3NlbnQ7DQo+IC0JfQ0KPiANCj4gKwkvKiBTZXQgdGhlIENSQyBpbiB0 aGUgdHJhaWxlciAqLw0KPiAgCWlmIChjX3R4LT5wYWQpIHsNCj4gIAkJKih1MzIgKiljX3R4LT50 cmFpbGVyLnBhZCA9IDA7DQo+ICAJCWlmIChkb19jcmMpDQo+IEBAIC02MDMsMjMgKzQ1NiwyOSBA QCBzdGF0aWMgaW50IHNpd190eF9oZHQoc3RydWN0IHNpd19pd2FycF90eCAqY190eCwNCj4gc3Ry dWN0IHNvY2tldCAqcykNCj4gIAllbHNlIGlmIChkb19jcmMpDQo+ICAJCWNyeXB0b19zaGFzaF9m aW5hbChjX3R4LT5tcGFfY3JjX2hkLCAodTggKikmY190eC0+dHJhaWxlci5jcmMpOw0KPiANCj4g LQlkYXRhX2xlbiA9IGNfdHgtPmJ5dGVzX3Vuc2VudDsNCj4gLQ0KPiAtCWlmIChjX3R4LT51c2Vf c2VuZHBhZ2UpIHsNCj4gLQkJcnYgPSBzaXdfMGNvcHlfdHgocywgcGFnZV9hcnJheSwgJndxZS0+ c3FlLnNnZVtjX3R4LT5zZ2VfaWR4XSwNCj4gLQkJCQkgIGNfdHgtPnNnZV9vZmYsIGRhdGFfbGVu KTsNCj4gLQkJaWYgKHJ2ID09IGRhdGFfbGVuKSB7DQo+IC0JCQlydiA9IGtlcm5lbF9zZW5kbXNn KHMsICZtc2csICZpb3Zbc2VnXSwgMSwgdHJsX2xlbik7DQo+IC0JCQlpZiAocnYgPiAwKQ0KPiAt CQkJCXJ2ICs9IGRhdGFfbGVuOw0KPiAtCQkJZWxzZQ0KPiAtCQkJCXJ2ID0gZGF0YV9sZW47DQo+ IC0JCX0NCj4gKwkvKiBDb3B5IHRoZSB0cmFpbGVyIGFuZCBhZGQgaXQgdG8gdGhlIG91dHB1dCBs aXN0ICovDQo+ICsJaWYgKGxpa2VseShjX3R4LT5zdGF0ZSAhPSBTSVdfU0VORF9UUkFJTEVSKSkg ew0KPiArCQl0cmwgPSAmY190eC0+dHJhaWxlci5wYWRbNCAtIGNfdHgtPnBhZF07DQo+ICsJCXRy bF9sZW4gPSBNQVhfVFJBSUxFUiAtICg0IC0gY190eC0+cGFkKTsNCj4gIAl9IGVsc2Ugew0KPiAt CQlydiA9IGtlcm5lbF9zZW5kbXNnKHMsICZtc2csIGlvdiwgc2VnICsgMSwNCj4gLQkJCQkgICAg aGRyX2xlbiArIGRhdGFfbGVuICsgdHJsX2xlbik7DQo+IC0JCXNpd191bm1hcF9wYWdlcyhpb3Ys IGttYXBfbWFzaywgc2VnKTsNCj4gKwkJdHJsID0gJmNfdHgtPnRyYWlsZXIucGFkW2NfdHgtPmN0 cmxfc2VudF07DQo+ICsJCXRybF9sZW4gPSBNQVhfVFJBSUxFUiAtIGNfdHgtPmN0cmxfc2VudDsN Cj4gIAl9DQo+ICsNCj4gKwlydiA9IC1FTk9NRU07DQo+ICsJdCA9IHBhZ2VfZnJhZ19tZW1kdXAo TlVMTCwgdHJsLCB0cmxfbGVuLCBHRlBfTk9GUywgVUxPTkdfTUFYKTsNCj4gKwlpZiAoIXQpDQo+ ICsJCWdvdG8gZG9uZV9jcmM7DQo+ICsJYnZlY19zZXRfdmlydCgmYnZlY1tzZWddLCB0LCB0cmxf bGVuKTsNCj4gKw0KPiArCWRhdGFfbGVuID0gY190eC0+Ynl0ZXNfdW5zZW50Ow0KPiArDQo+ICsJ aWYgKGNfdHgtPnVzZV9zZW5kcGFnZSkNCj4gKwkJbXNnLm1zZ19mbGFncyB8PSBNU0dfU1BMSUNF X1BBR0VTOw0KPiArCWlvdl9pdGVyX2J2ZWMoJm1zZy5tc2dfaXRlciwgSVRFUl9TT1VSQ0UsIGJ2 ZWMsIHNlZyArIDEsDQo+ICsJCSAgICAgIGhkcl9sZW4gKyBkYXRhX2xlbiArIHRybF9sZW4pOw0K PiArCXJ2ID0gc29ja19zZW5kbXNnKHMsICZtc2cpOw0KPiArDQo+ICAJaWYgKHJ2IDwgKGludClo ZHJfbGVuKSB7DQo+ICAJCS8qIE5vdCBldmVuIGNvbXBsZXRlIGhkciBwdXNoZWQgb3IgbmVnYXRp dmUgcnYgKi8NCj4gIAkJd3FlLT5wcm9jZXNzZWQgLT0gZGF0YV9sZW47DQo+IEBAIC02ODAsNiAr NTM5LDkgQEAgc3RhdGljIGludCBzaXdfdHhfaGR0KHN0cnVjdCBzaXdfaXdhcnBfdHggKmNfdHgs IHN0cnVjdA0KPiBzb2NrZXQgKnMpDQo+ICAJfQ0KPiAgZG9uZV9jcmM6DQo+ICAJY190eC0+ZG9f Y3JjID0gMDsNCj4gKwlpZiAoY190eC0+c3RhdGUgPT0gU0lXX1NFTkRfSERSKQ0KPiArCQlmb2xp b19wdXQocGFnZV9mb2xpbyhidmVjWzBdLmJ2X3BhZ2UpKTsNCj4gKwlmb2xpb19wdXQocGFnZV9m b2xpbyhidmVjW3NlZ10uYnZfcGFnZSkpOw0KPiAgZG9uZToNCj4gIAlyZXR1cm4gcnY7DQo+ICB9 DQoNCg==