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 X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B71CFA372C for ; Fri, 8 Nov 2019 07:17:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 51A2E214DB for ; Fri, 8 Nov 2019 07:17:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725975AbfKHHRV (ORCPT ); Fri, 8 Nov 2019 02:17:21 -0500 Received: from mx2.suse.de ([195.135.220.15]:60390 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725886AbfKHHRV (ORCPT ); Fri, 8 Nov 2019 02:17:21 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 64464AF8E; Fri, 8 Nov 2019 07:17:18 +0000 (UTC) Subject: Re: [PATCH 4/9] block: Remove partition support for zoned block devices To: Damien Le Moal , linux-block@vger.kernel.org, Jens Axboe , linux-scsi@vger.kernel.org, "Martin K . Petersen" , dm-devel@redhat.com, Mike Snitzer , linux-f2fs-devel@lists.sourceforge.net, Jaegeuk Kim , Chao Yu References: <20191108015702.233102-1-damien.lemoal@wdc.com> <20191108015702.233102-5-damien.lemoal@wdc.com> From: Hannes Reinecke Openpgp: preference=signencrypt Autocrypt: addr=hare@suse.de; prefer-encrypt=mutual; keydata= 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 azzYF4VRJsdl+d0MCaSy8mUh Message-ID: <160bfb8f-2793-af74-df2b-5f30ae9383db@suse.de> Date: Fri, 8 Nov 2019 08:17:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <20191108015702.233102-5-damien.lemoal@wdc.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org On 11/8/19 2:56 AM, Damien Le Moal wrote: > No known partitioning tool supports zoned block devices, especially the > host managed flavor with strong sequential write constraints. > Furthermore, there are also no known user nor use cases for partitioned > zoned block devices. > > This patch removes partition device creation for zoned block devices, > which allows simplifying the processing of zone commands for zoned > block devices. A warning is added if a partition table is found on the > device. > > For report zones operations no zone sector information remapping is > necessary anymore, simplifying the code. Of note is that remapping of > zone reports for DM targets is still necessary as done by > dm_remap_zone_report(). > > Similarly, remaping of a zone reset bio is not necessary anymore. > Testing for the applicability of the zone reset all request also becomes > simpler and only needs to check that the number of sectors of the > requested zone range is equal to the disk capacity. > > Signed-off-by: Damien Le Moal > --- > block/blk-core.c | 6 +--- > block/blk-zoned.c | 62 ++++++-------------------------- > block/partition-generic.c | 74 +++++---------------------------------- > drivers/md/dm.c | 3 -- > 4 files changed, 21 insertions(+), 124 deletions(-) > > diff --git a/block/blk-core.c b/block/blk-core.c > index 3306a3c5bed6..df6b70476187 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -851,11 +851,7 @@ static inline int blk_partition_remap(struct bio *bio) > if (unlikely(bio_check_ro(bio, p))) > goto out; > > - /* > - * Zone management bios do not have a sector count but they do have > - * a start sector filled out and need to be remapped. > - */ > - if (bio_sectors(bio) || op_is_zone_mgmt(bio_op(bio))) { > + if (bio_sectors(bio)) { > if (bio_check_eod(bio, part_nr_sects_read(p))) > goto out; > bio->bi_iter.bi_sector += p->start_sect; > diff --git a/block/blk-zoned.c b/block/blk-zoned.c > index ea4e086ba00e..ae665e490858 100644 > --- a/block/blk-zoned.c > +++ b/block/blk-zoned.c > @@ -93,32 +93,10 @@ unsigned int blkdev_nr_zones(struct block_device *bdev) > if (!blk_queue_is_zoned(q)) > return 0; > > - return __blkdev_nr_zones(q, bdev->bd_part->nr_sects); > + return __blkdev_nr_zones(q, get_capacity(bdev->bd_disk)); > } > EXPORT_SYMBOL_GPL(blkdev_nr_zones); > > -/* > - * Check that a zone report belongs to this partition, and if yes, fix its start > - * sector and write pointer and return true. Return false otherwise. > - */ > -static bool blkdev_report_zone(struct block_device *bdev, struct blk_zone *rep) > -{ > - sector_t offset = get_start_sect(bdev); > - > - if (rep->start < offset) > - return false; > - > - rep->start -= offset; > - if (rep->start + rep->len > bdev->bd_part->nr_sects) > - return false; > - > - if (rep->type == BLK_ZONE_TYPE_CONVENTIONAL) > - rep->wp = rep->start + rep->len; > - else > - rep->wp -= offset; > - return true; > -} > - > /** > * blkdev_report_zones - Get zones information > * @bdev: Target block device > @@ -140,8 +118,7 @@ int blkdev_report_zones(struct block_device *bdev, sector_t sector, > { > struct request_queue *q = bdev_get_queue(bdev); > struct gendisk *disk = bdev->bd_disk; > - unsigned int i, nrz; > - int ret; > + sector_t capacity = get_capacity(disk); > > if (!blk_queue_is_zoned(q)) > return -EOPNOTSUPP; > @@ -154,27 +131,14 @@ int blkdev_report_zones(struct block_device *bdev, sector_t sector, > if (WARN_ON_ONCE(!disk->fops->report_zones)) > return -EOPNOTSUPP; > > - if (!*nr_zones || sector >= bdev->bd_part->nr_sects) { > + if (!*nr_zones || sector >= capacity) { > *nr_zones = 0; > return 0; > } > > - nrz = min(*nr_zones, > - __blkdev_nr_zones(q, bdev->bd_part->nr_sects - sector)); > - ret = disk->fops->report_zones(disk, get_start_sect(bdev) + sector, > - zones, &nrz); > - if (ret) > - return ret; > + *nr_zones = min(*nr_zones, __blkdev_nr_zones(q, capacity - sector)); > > - for (i = 0; i < nrz; i++) { > - if (!blkdev_report_zone(bdev, zones)) > - break; > - zones++; > - } > - > - *nr_zones = i; > - > - return 0; > + return disk->fops->report_zones(disk, sector, zones, nr_zones); > } > EXPORT_SYMBOL_GPL(blkdev_report_zones); > > @@ -185,15 +149,11 @@ static inline bool blkdev_allow_reset_all_zones(struct block_device *bdev, > if (!blk_queue_zone_resetall(bdev_get_queue(bdev))) > return false; > > - if (sector || nr_sectors != part_nr_sects_read(bdev->bd_part)) > - return false; > /* > - * REQ_OP_ZONE_RESET_ALL can be executed only if the block device is > - * the entire disk, that is, if the blocks device start offset is 0 and > - * its capacity is the same as the entire disk. > + * REQ_OP_ZONE_RESET_ALL can be executed only if the number of sectors > + * of the applicable zone range is the entire disk. > */ > - return get_start_sect(bdev) == 0 && > - part_nr_sects_read(bdev->bd_part) == get_capacity(bdev->bd_disk); > + return !sector && nr_sectors == get_capacity(bdev->bd_disk); > } > > /** > @@ -218,6 +178,7 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op, > { > struct request_queue *q = bdev_get_queue(bdev); > sector_t zone_sectors = blk_queue_zone_sectors(q); > + sector_t capacity = get_capacity(bdev->bd_disk); > sector_t end_sector = sector + nr_sectors; > struct bio *bio = NULL; > int ret; > @@ -231,7 +192,7 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op, > if (!op_is_zone_mgmt(op)) > return -EOPNOTSUPP; > > - if (!nr_sectors || end_sector > bdev->bd_part->nr_sects) > + if (!nr_sectors || end_sector > capacity) > /* Out of range */ > return -EINVAL; > > @@ -239,8 +200,7 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op, > if (sector & (zone_sectors - 1)) > return -EINVAL; > > - if ((nr_sectors & (zone_sectors - 1)) && > - end_sector != bdev->bd_part->nr_sects) > + if ((nr_sectors & (zone_sectors - 1)) && end_sector != capacity) > return -EINVAL; > > while (sector < end_sector) { > diff --git a/block/partition-generic.c b/block/partition-generic.c > index aee643ce13d1..31bff3fb28af 100644 > --- a/block/partition-generic.c > +++ b/block/partition-generic.c > @@ -459,56 +459,6 @@ static int drop_partitions(struct gendisk *disk, struct block_device *bdev) > return 0; > } > > -static bool part_zone_aligned(struct gendisk *disk, > - struct block_device *bdev, > - sector_t from, sector_t size) > -{ > - unsigned int zone_sectors = bdev_zone_sectors(bdev); > - > - /* > - * If this function is called, then the disk is a zoned block device > - * (host-aware or host-managed). This can be detected even if the > - * zoned block device support is disabled (CONFIG_BLK_DEV_ZONED not > - * set). In this case, however, only host-aware devices will be seen > - * as a block device is not created for host-managed devices. Without > - * zoned block device support, host-aware drives can still be used as > - * regular block devices (no zone operation) and their zone size will > - * be reported as 0. Allow this case. > - */ > - if (!zone_sectors) > - return true; > - > - /* > - * Check partition start and size alignement. If the drive has a > - * smaller last runt zone, ignore it and allow the partition to > - * use it. Check the zone size too: it should be a power of 2 number > - * of sectors. > - */ > - if (WARN_ON_ONCE(!is_power_of_2(zone_sectors))) { > - u32 rem; > - > - div_u64_rem(from, zone_sectors, &rem); > - if (rem) > - return false; > - if ((from + size) < get_capacity(disk)) { > - div_u64_rem(size, zone_sectors, &rem); > - if (rem) > - return false; > - } > - > - } else { > - > - if (from & (zone_sectors - 1)) > - return false; > - if ((from + size) < get_capacity(disk) && > - (size & (zone_sectors - 1))) > - return false; > - > - } > - > - return true; > -} > - > int rescan_partitions(struct gendisk *disk, struct block_device *bdev) > { > struct parsed_partitions *state = NULL; > @@ -544,6 +494,14 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev) > } > return -EIO; > } > + > + /* Partitions are not supported on zoned block devices */ > + if (bdev_is_zoned(bdev)) { > + pr_warn("%s: ignoring partition table on zoned block device\n", > + disk->disk_name); > + goto out; > + } > + > /* > * If any partition code tried to read beyond EOD, try > * unlocking native capacity even if partition table is While I do applaud removing special cases for zoned devices, we do have the GENHD_FL_NO_PART_SCAN for precisely this use case. Any particular reason why this isn't being used, nor even set? Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@suse.de +49 911 74053 688 SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 247165 (AG München), GF: Felix Imendörffer 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 X-Spam-Level: X-Spam-Status: No, score=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97047C5DF60 for ; Fri, 8 Nov 2019 07:17:29 +0000 (UTC) Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5BB022085B; Fri, 8 Nov 2019 07:17:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sourceforge.net header.i=@sourceforge.net header.b="ax8EeOLK"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sf.net header.i=@sf.net header.b="ilmivHt8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BB022085B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-f2fs-devel-bounces@lists.sourceforge.net Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1iSyWP-0003QN-1C; Fri, 08 Nov 2019 07:17:29 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1iSyWN-0003QF-OO for linux-f2fs-devel@lists.sourceforge.net; Fri, 08 Nov 2019 07:17:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:To:Subject:Sender:Reply-To:Cc: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=6jScDP6oFYMwMApk5gP4YzEH1DWs8ufuAcxsaaVxMHw=; b=ax8EeOLKHklG0jnina8fOTQo80 nvxf/Aw1SN2sCWDNnfi1sR0sGllR0wyIPoCxYC2fRePTnaT88UuivF2lNIgTkvrSIPuF28PZoLBz0 vVCmq/Tls3yj1CnbdDjEl9T0hu2ujVKjZk/gWNGoMomIWL/Gux8MnqrLXO3OBkoZvoNE=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=6jScDP6oFYMwMApk5gP4YzEH1DWs8ufuAcxsaaVxMHw=; b=ilmivHt8Ng/WmvKK2+Q4AwSQyT 75WTa03UHLO5rNTKIGaYFkdKVZUTMIrhwrFq59Ojw+/6vEQDJSID9u+PvZjIBBxuX0Si6pRIRW1Ne JaLn8/Av0ZY0piO49vYV2J72VsYQZ/1JrWrjpXXET2rgV3G2NjpLhCm5vZyuM/5Ds+Vg=; Received: from mx2.suse.de ([195.135.220.15] helo=mx1.suse.de) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.2) id 1iSyWL-0066ya-Qg for linux-f2fs-devel@lists.sourceforge.net; Fri, 08 Nov 2019 07:17:27 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 64464AF8E; Fri, 8 Nov 2019 07:17:18 +0000 (UTC) To: Damien Le Moal , linux-block@vger.kernel.org, Jens Axboe , linux-scsi@vger.kernel.org, "Martin K . Petersen" , dm-devel@redhat.com, Mike Snitzer , linux-f2fs-devel@lists.sourceforge.net, Jaegeuk Kim , Chao Yu References: <20191108015702.233102-1-damien.lemoal@wdc.com> <20191108015702.233102-5-damien.lemoal@wdc.com> From: Hannes Reinecke Openpgp: preference=signencrypt Autocrypt: addr=hare@suse.de; prefer-encrypt=mutual; keydata= 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 azzYF4VRJsdl+d0MCaSy8mUh Message-ID: <160bfb8f-2793-af74-df2b-5f30ae9383db@suse.de> Date: Fri, 8 Nov 2019 08:17:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <20191108015702.233102-5-damien.lemoal@wdc.com> Content-Language: en-US X-Headers-End: 1iSyWL-0066ya-Qg Subject: Re: [f2fs-dev] [PATCH 4/9] block: Remove partition support for zoned block devices X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gMTEvOC8xOSAyOjU2IEFNLCBEYW1pZW4gTGUgTW9hbCB3cm90ZToKPiBObyBrbm93biBwYXJ0 aXRpb25pbmcgdG9vbCBzdXBwb3J0cyB6b25lZCBibG9jayBkZXZpY2VzLCBlc3BlY2lhbGx5IHRo ZQo+IGhvc3QgbWFuYWdlZCBmbGF2b3Igd2l0aCBzdHJvbmcgc2VxdWVudGlhbCB3cml0ZSBjb25z dHJhaW50cy4KPiBGdXJ0aGVybW9yZSwgdGhlcmUgYXJlIGFsc28gbm8ga25vd24gdXNlciBub3Ig dXNlIGNhc2VzIGZvciBwYXJ0aXRpb25lZAo+IHpvbmVkIGJsb2NrIGRldmljZXMuCj4gCj4gVGhp cyBwYXRjaCByZW1vdmVzIHBhcnRpdGlvbiBkZXZpY2UgY3JlYXRpb24gZm9yIHpvbmVkIGJsb2Nr IGRldmljZXMsCj4gd2hpY2ggYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBwcm9jZXNzaW5nIG9mIHpv bmUgY29tbWFuZHMgZm9yIHpvbmVkCj4gYmxvY2sgZGV2aWNlcy4gQSB3YXJuaW5nIGlzIGFkZGVk IGlmIGEgcGFydGl0aW9uIHRhYmxlIGlzIGZvdW5kIG9uIHRoZQo+IGRldmljZS4KPiAKPiBGb3Ig cmVwb3J0IHpvbmVzIG9wZXJhdGlvbnMgbm8gem9uZSBzZWN0b3IgaW5mb3JtYXRpb24gcmVtYXBw aW5nIGlzCj4gbmVjZXNzYXJ5IGFueW1vcmUsIHNpbXBsaWZ5aW5nIHRoZSBjb2RlLiBPZiBub3Rl IGlzIHRoYXQgcmVtYXBwaW5nIG9mCj4gem9uZSByZXBvcnRzIGZvciBETSB0YXJnZXRzIGlzIHN0 aWxsIG5lY2Vzc2FyeSBhcyBkb25lIGJ5Cj4gZG1fcmVtYXBfem9uZV9yZXBvcnQoKS4KPiAKPiBT aW1pbGFybHksIHJlbWFwaW5nIG9mIGEgem9uZSByZXNldCBiaW8gaXMgbm90IG5lY2Vzc2FyeSBh bnltb3JlLgo+IFRlc3RpbmcgZm9yIHRoZSBhcHBsaWNhYmlsaXR5IG9mIHRoZSB6b25lIHJlc2V0 IGFsbCByZXF1ZXN0IGFsc28gYmVjb21lcwo+IHNpbXBsZXIgYW5kIG9ubHkgbmVlZHMgdG8gY2hl Y2sgdGhhdCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgb2YgdGhlCj4gcmVxdWVzdGVkIHpvbmUgcmFu Z2UgaXMgZXF1YWwgdG8gdGhlIGRpc2sgY2FwYWNpdHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogRGFt aWVuIExlIE1vYWwgPGRhbWllbi5sZW1vYWxAd2RjLmNvbT4KPiAtLS0KPiAgYmxvY2svYmxrLWNv cmUuYyAgICAgICAgICB8ICA2ICstLS0KPiAgYmxvY2svYmxrLXpvbmVkLmMgICAgICAgICB8IDYy ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGJsb2NrL3BhcnRpdGlvbi1nZW5l cmljLmMgfCA3NCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJp dmVycy9tZC9kbS5jICAgICAgICAgICB8ICAzIC0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjEgaW5z ZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9ibG9jay9ibGst Y29yZS5jIGIvYmxvY2svYmxrLWNvcmUuYwo+IGluZGV4IDMzMDZhM2M1YmVkNi4uZGY2YjcwNDc2 MTg3IDEwMDY0NAo+IC0tLSBhL2Jsb2NrL2Jsay1jb3JlLmMKPiArKysgYi9ibG9jay9ibGstY29y ZS5jCj4gQEAgLTg1MSwxMSArODUxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgYmxrX3BhcnRpdGlv bl9yZW1hcChzdHJ1Y3QgYmlvICpiaW8pCj4gIAlpZiAodW5saWtlbHkoYmlvX2NoZWNrX3JvKGJp bywgcCkpKQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAtCS8qCj4gLQkgKiBab25lIG1hbmFnZW1lbnQg YmlvcyBkbyBub3QgaGF2ZSBhIHNlY3RvciBjb3VudCBidXQgdGhleSBkbyBoYXZlCj4gLQkgKiBh IHN0YXJ0IHNlY3RvciBmaWxsZWQgb3V0IGFuZCBuZWVkIHRvIGJlIHJlbWFwcGVkLgo+IC0JICov Cj4gLQlpZiAoYmlvX3NlY3RvcnMoYmlvKSB8fCBvcF9pc196b25lX21nbXQoYmlvX29wKGJpbykp KSB7Cj4gKwlpZiAoYmlvX3NlY3RvcnMoYmlvKSkgewo+ICAJCWlmIChiaW9fY2hlY2tfZW9kKGJp bywgcGFydF9ucl9zZWN0c19yZWFkKHApKSkKPiAgCQkJZ290byBvdXQ7Cj4gIAkJYmlvLT5iaV9p dGVyLmJpX3NlY3RvciArPSBwLT5zdGFydF9zZWN0Owo+IGRpZmYgLS1naXQgYS9ibG9jay9ibGst em9uZWQuYyBiL2Jsb2NrL2Jsay16b25lZC5jCj4gaW5kZXggZWE0ZTA4NmJhMDBlLi5hZTY2NWU0 OTA4NTggMTAwNjQ0Cj4gLS0tIGEvYmxvY2svYmxrLXpvbmVkLmMKPiArKysgYi9ibG9jay9ibGst em9uZWQuYwo+IEBAIC05MywzMiArOTMsMTAgQEAgdW5zaWduZWQgaW50IGJsa2Rldl9ucl96b25l cyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQo+ICAJaWYgKCFibGtfcXVldWVfaXNfem9uZWQo cSkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JcmV0dXJuIF9fYmxrZGV2X25yX3pvbmVzKHEsIGJk ZXYtPmJkX3BhcnQtPm5yX3NlY3RzKTsKPiArCXJldHVybiBfX2Jsa2Rldl9ucl96b25lcyhxLCBn ZXRfY2FwYWNpdHkoYmRldi0+YmRfZGlzaykpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGJs a2Rldl9ucl96b25lcyk7Cj4gIAo+IC0vKgo+IC0gKiBDaGVjayB0aGF0IGEgem9uZSByZXBvcnQg YmVsb25ncyB0byB0aGlzIHBhcnRpdGlvbiwgYW5kIGlmIHllcywgZml4IGl0cyBzdGFydAo+IC0g KiBzZWN0b3IgYW5kIHdyaXRlIHBvaW50ZXIgYW5kIHJldHVybiB0cnVlLiBSZXR1cm4gZmFsc2Ug b3RoZXJ3aXNlLgo+IC0gKi8KPiAtc3RhdGljIGJvb2wgYmxrZGV2X3JlcG9ydF96b25lKHN0cnVj dCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBibGtfem9uZSAqcmVwKQo+IC17Cj4gLQlzZWN0 b3JfdCBvZmZzZXQgPSBnZXRfc3RhcnRfc2VjdChiZGV2KTsKPiAtCj4gLQlpZiAocmVwLT5zdGFy dCA8IG9mZnNldCkKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0JcmVwLT5zdGFydCAtPSBvZmZz ZXQ7Cj4gLQlpZiAocmVwLT5zdGFydCArIHJlcC0+bGVuID4gYmRldi0+YmRfcGFydC0+bnJfc2Vj dHMpCj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAtCWlmIChyZXAtPnR5cGUgPT0gQkxLX1pPTkVf VFlQRV9DT05WRU5USU9OQUwpCj4gLQkJcmVwLT53cCA9IHJlcC0+c3RhcnQgKyByZXAtPmxlbjsK PiAtCWVsc2UKPiAtCQlyZXAtPndwIC09IG9mZnNldDsKPiAtCXJldHVybiB0cnVlOwo+IC19Cj4g LQo+ICAvKioKPiAgICogYmxrZGV2X3JlcG9ydF96b25lcyAtIEdldCB6b25lcyBpbmZvcm1hdGlv bgo+ICAgKiBAYmRldjoJVGFyZ2V0IGJsb2NrIGRldmljZQo+IEBAIC0xNDAsOCArMTE4LDcgQEAg aW50IGJsa2Rldl9yZXBvcnRfem9uZXMoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9y X3Qgc2VjdG9yLAo+ICB7Cj4gIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1 ZXVlKGJkZXYpOwo+ICAJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBiZGV2LT5iZF9kaXNrOwo+IC0J dW5zaWduZWQgaW50IGksIG5yejsKPiAtCWludCByZXQ7Cj4gKwlzZWN0b3JfdCBjYXBhY2l0eSA9 IGdldF9jYXBhY2l0eShkaXNrKTsKPiAgCj4gIAlpZiAoIWJsa19xdWV1ZV9pc196b25lZChxKSkK PiAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gQEAgLTE1NCwyNyArMTMxLDE0IEBAIGludCBibGtk ZXZfcmVwb3J0X3pvbmVzKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3Rv ciwKPiAgCWlmIChXQVJOX09OX09OQ0UoIWRpc2stPmZvcHMtPnJlcG9ydF96b25lcykpCj4gIAkJ cmV0dXJuIC1FT1BOT1RTVVBQOwo+ICAKPiAtCWlmICghKm5yX3pvbmVzIHx8IHNlY3RvciA+PSBi ZGV2LT5iZF9wYXJ0LT5ucl9zZWN0cykgewo+ICsJaWYgKCEqbnJfem9uZXMgfHwgc2VjdG9yID49 IGNhcGFjaXR5KSB7Cj4gIAkJKm5yX3pvbmVzID0gMDsKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAg Cj4gLQlucnogPSBtaW4oKm5yX3pvbmVzLAo+IC0JCSAgX19ibGtkZXZfbnJfem9uZXMocSwgYmRl di0+YmRfcGFydC0+bnJfc2VjdHMgLSBzZWN0b3IpKTsKPiAtCXJldCA9IGRpc2stPmZvcHMtPnJl cG9ydF96b25lcyhkaXNrLCBnZXRfc3RhcnRfc2VjdChiZGV2KSArIHNlY3RvciwKPiAtCQkJCSAg ICAgICB6b25lcywgJm5yeik7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gKwkqbnJf em9uZXMgPSBtaW4oKm5yX3pvbmVzLCBfX2Jsa2Rldl9ucl96b25lcyhxLCBjYXBhY2l0eSAtIHNl Y3RvcikpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBucno7IGkrKykgewo+IC0JCWlmICghYmxr ZGV2X3JlcG9ydF96b25lKGJkZXYsIHpvbmVzKSkKPiAtCQkJYnJlYWs7Cj4gLQkJem9uZXMrKzsK PiAtCX0KPiAtCj4gLQkqbnJfem9uZXMgPSBpOwo+IC0KPiAtCXJldHVybiAwOwo+ICsJcmV0dXJu IGRpc2stPmZvcHMtPnJlcG9ydF96b25lcyhkaXNrLCBzZWN0b3IsIHpvbmVzLCBucl96b25lcyk7 Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoYmxrZGV2X3JlcG9ydF96b25lcyk7Cj4gIAo+IEBA IC0xODUsMTUgKzE0OSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYmxrZGV2X2FsbG93X3Jlc2V0 X2FsbF96b25lcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LAo+ICAJaWYgKCFibGtfcXVldWVf em9uZV9yZXNldGFsbChiZGV2X2dldF9xdWV1ZShiZGV2KSkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ ICAKPiAtCWlmIChzZWN0b3IgfHwgbnJfc2VjdG9ycyAhPSBwYXJ0X25yX3NlY3RzX3JlYWQoYmRl di0+YmRfcGFydCkpCj4gLQkJcmV0dXJuIGZhbHNlOwo+ICAJLyoKPiAtCSAqIFJFUV9PUF9aT05F X1JFU0VUX0FMTCBjYW4gYmUgZXhlY3V0ZWQgb25seSBpZiB0aGUgYmxvY2sgZGV2aWNlIGlzCj4g LQkgKiB0aGUgZW50aXJlIGRpc2ssIHRoYXQgaXMsIGlmIHRoZSBibG9ja3MgZGV2aWNlIHN0YXJ0 IG9mZnNldCBpcyAwIGFuZAo+IC0JICogaXRzIGNhcGFjaXR5IGlzIHRoZSBzYW1lIGFzIHRoZSBl bnRpcmUgZGlzay4KPiArCSAqIFJFUV9PUF9aT05FX1JFU0VUX0FMTCBjYW4gYmUgZXhlY3V0ZWQg b25seSBpZiB0aGUgbnVtYmVyIG9mIHNlY3RvcnMKPiArCSAqIG9mIHRoZSBhcHBsaWNhYmxlIHpv bmUgcmFuZ2UgaXMgdGhlIGVudGlyZSBkaXNrLgo+ICAJICovCj4gLQlyZXR1cm4gZ2V0X3N0YXJ0 X3NlY3QoYmRldikgPT0gMCAmJgo+IC0JICAgICAgIHBhcnRfbnJfc2VjdHNfcmVhZChiZGV2LT5i ZF9wYXJ0KSA9PSBnZXRfY2FwYWNpdHkoYmRldi0+YmRfZGlzayk7Cj4gKwlyZXR1cm4gIXNlY3Rv ciAmJiBucl9zZWN0b3JzID09IGdldF9jYXBhY2l0eShiZGV2LT5iZF9kaXNrKTsKPiAgfQo+ICAK PiAgLyoqCj4gQEAgLTIxOCw2ICsxNzgsNyBAQCBpbnQgYmxrZGV2X3pvbmVfbWdtdChzdHJ1Y3Qg YmxvY2tfZGV2aWNlICpiZGV2LCBlbnVtIHJlcV9vcGYgb3AsCj4gIHsKPiAgCXN0cnVjdCByZXF1 ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoYmRldik7Cj4gIAlzZWN0b3JfdCB6b25lX3Nl Y3RvcnMgPSBibGtfcXVldWVfem9uZV9zZWN0b3JzKHEpOwo+ICsJc2VjdG9yX3QgY2FwYWNpdHkg PSBnZXRfY2FwYWNpdHkoYmRldi0+YmRfZGlzayk7Cj4gIAlzZWN0b3JfdCBlbmRfc2VjdG9yID0g c2VjdG9yICsgbnJfc2VjdG9yczsKPiAgCXN0cnVjdCBiaW8gKmJpbyA9IE5VTEw7Cj4gIAlpbnQg cmV0Owo+IEBAIC0yMzEsNyArMTkyLDcgQEAgaW50IGJsa2Rldl96b25lX21nbXQoc3RydWN0IGJs b2NrX2RldmljZSAqYmRldiwgZW51bSByZXFfb3BmIG9wLAo+ICAJaWYgKCFvcF9pc196b25lX21n bXQob3ApKQo+ICAJCXJldHVybiAtRU9QTk9UU1VQUDsKPiAgCj4gLQlpZiAoIW5yX3NlY3RvcnMg fHwgZW5kX3NlY3RvciA+IGJkZXYtPmJkX3BhcnQtPm5yX3NlY3RzKQo+ICsJaWYgKCFucl9zZWN0 b3JzIHx8IGVuZF9zZWN0b3IgPiBjYXBhY2l0eSkKPiAgCQkvKiBPdXQgb2YgcmFuZ2UgKi8KPiAg CQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gQEAgLTIzOSw4ICsyMDAsNyBAQCBpbnQgYmxrZGV2X3pv bmVfbWdtdChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBlbnVtIHJlcV9vcGYgb3AsCj4gIAlp ZiAoc2VjdG9yICYgKHpvbmVfc2VjdG9ycyAtIDEpKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAK PiAtCWlmICgobnJfc2VjdG9ycyAmICh6b25lX3NlY3RvcnMgLSAxKSkgJiYKPiAtCSAgICBlbmRf c2VjdG9yICE9IGJkZXYtPmJkX3BhcnQtPm5yX3NlY3RzKQo+ICsJaWYgKChucl9zZWN0b3JzICYg KHpvbmVfc2VjdG9ycyAtIDEpKSAmJiBlbmRfc2VjdG9yICE9IGNhcGFjaXR5KQo+ICAJCXJldHVy biAtRUlOVkFMOwo+ICAKPiAgCXdoaWxlIChzZWN0b3IgPCBlbmRfc2VjdG9yKSB7Cj4gZGlmZiAt LWdpdCBhL2Jsb2NrL3BhcnRpdGlvbi1nZW5lcmljLmMgYi9ibG9jay9wYXJ0aXRpb24tZ2VuZXJp Yy5jCj4gaW5kZXggYWVlNjQzY2UxM2QxLi4zMWJmZjNmYjI4YWYgMTAwNjQ0Cj4gLS0tIGEvYmxv Y2svcGFydGl0aW9uLWdlbmVyaWMuYwo+ICsrKyBiL2Jsb2NrL3BhcnRpdGlvbi1nZW5lcmljLmMK PiBAQCAtNDU5LDU2ICs0NTksNiBAQCBzdGF0aWMgaW50IGRyb3BfcGFydGl0aW9ucyhzdHJ1Y3Qg Z2VuZGlzayAqZGlzaywgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKPiAgCXJldHVybiAwOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBwYXJ0X3pvbmVfYWxpZ25lZChzdHJ1Y3QgZ2VuZGlzayAq ZGlzaywKPiAtCQkJICAgICAgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKPiAtCQkJICAgICAg c2VjdG9yX3QgZnJvbSwgc2VjdG9yX3Qgc2l6ZSkKPiAtewo+IC0JdW5zaWduZWQgaW50IHpvbmVf c2VjdG9ycyA9IGJkZXZfem9uZV9zZWN0b3JzKGJkZXYpOwo+IC0KPiAtCS8qCj4gLQkgKiBJZiB0 aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCwgdGhlbiB0aGUgZGlzayBpcyBhIHpvbmVkIGJsb2NrIGRl dmljZQo+IC0JICogKGhvc3QtYXdhcmUgb3IgaG9zdC1tYW5hZ2VkKS4gVGhpcyBjYW4gYmUgZGV0 ZWN0ZWQgZXZlbiBpZiB0aGUKPiAtCSAqIHpvbmVkIGJsb2NrIGRldmljZSBzdXBwb3J0IGlzIGRp c2FibGVkIChDT05GSUdfQkxLX0RFVl9aT05FRCBub3QKPiAtCSAqIHNldCkuIEluIHRoaXMgY2Fz ZSwgaG93ZXZlciwgb25seSBob3N0LWF3YXJlIGRldmljZXMgd2lsbCBiZSBzZWVuCj4gLQkgKiBh cyBhIGJsb2NrIGRldmljZSBpcyBub3QgY3JlYXRlZCBmb3IgaG9zdC1tYW5hZ2VkIGRldmljZXMu IFdpdGhvdXQKPiAtCSAqIHpvbmVkIGJsb2NrIGRldmljZSBzdXBwb3J0LCBob3N0LWF3YXJlIGRy aXZlcyBjYW4gc3RpbGwgYmUgdXNlZCBhcwo+IC0JICogcmVndWxhciBibG9jayBkZXZpY2VzIChu byB6b25lIG9wZXJhdGlvbikgYW5kIHRoZWlyIHpvbmUgc2l6ZSB3aWxsCj4gLQkgKiBiZSByZXBv cnRlZCBhcyAwLiBBbGxvdyB0aGlzIGNhc2UuCj4gLQkgKi8KPiAtCWlmICghem9uZV9zZWN0b3Jz KQo+IC0JCXJldHVybiB0cnVlOwo+IC0KPiAtCS8qCj4gLQkgKiBDaGVjayBwYXJ0aXRpb24gc3Rh cnQgYW5kIHNpemUgYWxpZ25lbWVudC4gSWYgdGhlIGRyaXZlIGhhcyBhCj4gLQkgKiBzbWFsbGVy IGxhc3QgcnVudCB6b25lLCBpZ25vcmUgaXQgYW5kIGFsbG93IHRoZSBwYXJ0aXRpb24gdG8KPiAt CSAqIHVzZSBpdC4gQ2hlY2sgdGhlIHpvbmUgc2l6ZSB0b286IGl0IHNob3VsZCBiZSBhIHBvd2Vy IG9mIDIgbnVtYmVyCj4gLQkgKiBvZiBzZWN0b3JzLgo+IC0JICovCj4gLQlpZiAoV0FSTl9PTl9P TkNFKCFpc19wb3dlcl9vZl8yKHpvbmVfc2VjdG9ycykpKSB7Cj4gLQkJdTMyIHJlbTsKPiAtCj4g LQkJZGl2X3U2NF9yZW0oZnJvbSwgem9uZV9zZWN0b3JzLCAmcmVtKTsKPiAtCQlpZiAocmVtKQo+ IC0JCQlyZXR1cm4gZmFsc2U7Cj4gLQkJaWYgKChmcm9tICsgc2l6ZSkgPCBnZXRfY2FwYWNpdHko ZGlzaykpIHsKPiAtCQkJZGl2X3U2NF9yZW0oc2l6ZSwgem9uZV9zZWN0b3JzLCAmcmVtKTsKPiAt CQkJaWYgKHJlbSkKPiAtCQkJCXJldHVybiBmYWxzZTsKPiAtCQl9Cj4gLQo+IC0JfSBlbHNlIHsK PiAtCj4gLQkJaWYgKGZyb20gJiAoem9uZV9zZWN0b3JzIC0gMSkpCj4gLQkJCXJldHVybiBmYWxz ZTsKPiAtCQlpZiAoKGZyb20gKyBzaXplKSA8IGdldF9jYXBhY2l0eShkaXNrKSAmJgo+IC0JCSAg ICAoc2l6ZSAmICh6b25lX3NlY3RvcnMgLSAxKSkpCj4gLQkJCXJldHVybiBmYWxzZTsKPiAtCj4g LQl9Cj4gLQo+IC0JcmV0dXJuIHRydWU7Cj4gLX0KPiAtCj4gIGludCByZXNjYW5fcGFydGl0aW9u cyhzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKPiAgewo+ ICAJc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSA9IE5VTEw7Cj4gQEAgLTU0NCw2ICs0 OTQsMTQgQEAgaW50IHJlc2Nhbl9wYXJ0aXRpb25zKHN0cnVjdCBnZW5kaXNrICpkaXNrLCBzdHJ1 Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQo+ICAJCX0KPiAgCQlyZXR1cm4gLUVJTzsKPiAgCX0KPiAr Cj4gKwkvKiBQYXJ0aXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHpvbmVkIGJsb2NrIGRldmlj ZXMgKi8KPiArCWlmIChiZGV2X2lzX3pvbmVkKGJkZXYpKSB7Cj4gKwkJcHJfd2FybigiJXM6IGln bm9yaW5nIHBhcnRpdGlvbiB0YWJsZSBvbiB6b25lZCBibG9jayBkZXZpY2VcbiIsCj4gKwkJCWRp c2stPmRpc2tfbmFtZSk7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICAJLyoKPiAgCSAqIElm IGFueSBwYXJ0aXRpb24gY29kZSB0cmllZCB0byByZWFkIGJleW9uZCBFT0QsIHRyeQo+ICAJICog dW5sb2NraW5nIG5hdGl2ZSBjYXBhY2l0eSBldmVuIGlmIHBhcnRpdGlvbiB0YWJsZSBpcwoKV2hp bGUgSSBkbyBhcHBsYXVkIHJlbW92aW5nIHNwZWNpYWwgY2FzZXMgZm9yIHpvbmVkIGRldmljZXMs IHdlIGRvIGhhdmUKdGhlIEdFTkhEX0ZMX05PX1BBUlRfU0NBTiBmb3IgcHJlY2lzZWx5IHRoaXMg dXNlIGNhc2UuCkFueSBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgdGhpcyBpc24ndCBiZWluZyB1c2Vk LCBub3IgZXZlbiBzZXQ/CgpDaGVlcnMsCgpIYW5uZXMKLS0gCkRyLiBIYW5uZXMgUmVpbmVja2UJ CSAgICAgIFRlYW1sZWFkIFN0b3JhZ2UgJiBOZXR3b3JraW5nCmhhcmVAc3VzZS5kZQkJCSAgICAg ICAgICAgICAgICAgICs0OSA5MTEgNzQwNTMgNjg4ClNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdl cm1hbnkgR21iSCwgTWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnCkhSQiAyNDcxNjUgKEFH IE3DvG5jaGVuKSwgR0Y6IEZlbGl4IEltZW5kw7ZyZmZlcgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0 CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291 cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hannes Reinecke Subject: Re: [PATCH 4/9] block: Remove partition support for zoned block devices Date: Fri, 8 Nov 2019 08:17:17 +0100 Message-ID: <160bfb8f-2793-af74-df2b-5f30ae9383db@suse.de> References: <20191108015702.233102-1-damien.lemoal@wdc.com> <20191108015702.233102-5-damien.lemoal@wdc.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191108015702.233102-5-damien.lemoal@wdc.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net To: Damien Le Moal , linux-block@vger.kernel.org, Jens Axboe , linux-scsi@vger.kernel.org, "Martin K . Petersen" , dm-devel@redhat.com, Mike Snitzer , linux-f2fs-devel@lists.sourceforge.net, Jaegeuk Kim , Chao Yu List-Id: dm-devel.ids T24gMTEvOC8xOSAyOjU2IEFNLCBEYW1pZW4gTGUgTW9hbCB3cm90ZToKPiBObyBrbm93biBwYXJ0 aXRpb25pbmcgdG9vbCBzdXBwb3J0cyB6b25lZCBibG9jayBkZXZpY2VzLCBlc3BlY2lhbGx5IHRo ZQo+IGhvc3QgbWFuYWdlZCBmbGF2b3Igd2l0aCBzdHJvbmcgc2VxdWVudGlhbCB3cml0ZSBjb25z dHJhaW50cy4KPiBGdXJ0aGVybW9yZSwgdGhlcmUgYXJlIGFsc28gbm8ga25vd24gdXNlciBub3Ig dXNlIGNhc2VzIGZvciBwYXJ0aXRpb25lZAo+IHpvbmVkIGJsb2NrIGRldmljZXMuCj4gCj4gVGhp cyBwYXRjaCByZW1vdmVzIHBhcnRpdGlvbiBkZXZpY2UgY3JlYXRpb24gZm9yIHpvbmVkIGJsb2Nr IGRldmljZXMsCj4gd2hpY2ggYWxsb3dzIHNpbXBsaWZ5aW5nIHRoZSBwcm9jZXNzaW5nIG9mIHpv bmUgY29tbWFuZHMgZm9yIHpvbmVkCj4gYmxvY2sgZGV2aWNlcy4gQSB3YXJuaW5nIGlzIGFkZGVk IGlmIGEgcGFydGl0aW9uIHRhYmxlIGlzIGZvdW5kIG9uIHRoZQo+IGRldmljZS4KPiAKPiBGb3Ig cmVwb3J0IHpvbmVzIG9wZXJhdGlvbnMgbm8gem9uZSBzZWN0b3IgaW5mb3JtYXRpb24gcmVtYXBw aW5nIGlzCj4gbmVjZXNzYXJ5IGFueW1vcmUsIHNpbXBsaWZ5aW5nIHRoZSBjb2RlLiBPZiBub3Rl IGlzIHRoYXQgcmVtYXBwaW5nIG9mCj4gem9uZSByZXBvcnRzIGZvciBETSB0YXJnZXRzIGlzIHN0 aWxsIG5lY2Vzc2FyeSBhcyBkb25lIGJ5Cj4gZG1fcmVtYXBfem9uZV9yZXBvcnQoKS4KPiAKPiBT aW1pbGFybHksIHJlbWFwaW5nIG9mIGEgem9uZSByZXNldCBiaW8gaXMgbm90IG5lY2Vzc2FyeSBh bnltb3JlLgo+IFRlc3RpbmcgZm9yIHRoZSBhcHBsaWNhYmlsaXR5IG9mIHRoZSB6b25lIHJlc2V0 IGFsbCByZXF1ZXN0IGFsc28gYmVjb21lcwo+IHNpbXBsZXIgYW5kIG9ubHkgbmVlZHMgdG8gY2hl Y2sgdGhhdCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgb2YgdGhlCj4gcmVxdWVzdGVkIHpvbmUgcmFu Z2UgaXMgZXF1YWwgdG8gdGhlIGRpc2sgY2FwYWNpdHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogRGFt aWVuIExlIE1vYWwgPGRhbWllbi5sZW1vYWxAd2RjLmNvbT4KPiAtLS0KPiAgYmxvY2svYmxrLWNv cmUuYyAgICAgICAgICB8ICA2ICstLS0KPiAgYmxvY2svYmxrLXpvbmVkLmMgICAgICAgICB8IDYy ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGJsb2NrL3BhcnRpdGlvbi1nZW5l cmljLmMgfCA3NCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJp dmVycy9tZC9kbS5jICAgICAgICAgICB8ICAzIC0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjEgaW5z ZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9ibG9jay9ibGst Y29yZS5jIGIvYmxvY2svYmxrLWNvcmUuYwo+IGluZGV4IDMzMDZhM2M1YmVkNi4uZGY2YjcwNDc2 MTg3IDEwMDY0NAo+IC0tLSBhL2Jsb2NrL2Jsay1jb3JlLmMKPiArKysgYi9ibG9jay9ibGstY29y ZS5jCj4gQEAgLTg1MSwxMSArODUxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgYmxrX3BhcnRpdGlv bl9yZW1hcChzdHJ1Y3QgYmlvICpiaW8pCj4gIAlpZiAodW5saWtlbHkoYmlvX2NoZWNrX3JvKGJp bywgcCkpKQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAtCS8qCj4gLQkgKiBab25lIG1hbmFnZW1lbnQg YmlvcyBkbyBub3QgaGF2ZSBhIHNlY3RvciBjb3VudCBidXQgdGhleSBkbyBoYXZlCj4gLQkgKiBh IHN0YXJ0IHNlY3RvciBmaWxsZWQgb3V0IGFuZCBuZWVkIHRvIGJlIHJlbWFwcGVkLgo+IC0JICov Cj4gLQlpZiAoYmlvX3NlY3RvcnMoYmlvKSB8fCBvcF9pc196b25lX21nbXQoYmlvX29wKGJpbykp KSB7Cj4gKwlpZiAoYmlvX3NlY3RvcnMoYmlvKSkgewo+ICAJCWlmIChiaW9fY2hlY2tfZW9kKGJp bywgcGFydF9ucl9zZWN0c19yZWFkKHApKSkKPiAgCQkJZ290byBvdXQ7Cj4gIAkJYmlvLT5iaV9p dGVyLmJpX3NlY3RvciArPSBwLT5zdGFydF9zZWN0Owo+IGRpZmYgLS1naXQgYS9ibG9jay9ibGst em9uZWQuYyBiL2Jsb2NrL2Jsay16b25lZC5jCj4gaW5kZXggZWE0ZTA4NmJhMDBlLi5hZTY2NWU0 OTA4NTggMTAwNjQ0Cj4gLS0tIGEvYmxvY2svYmxrLXpvbmVkLmMKPiArKysgYi9ibG9jay9ibGst em9uZWQuYwo+IEBAIC05MywzMiArOTMsMTAgQEAgdW5zaWduZWQgaW50IGJsa2Rldl9ucl96b25l cyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQo+ICAJaWYgKCFibGtfcXVldWVfaXNfem9uZWQo cSkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JcmV0dXJuIF9fYmxrZGV2X25yX3pvbmVzKHEsIGJk ZXYtPmJkX3BhcnQtPm5yX3NlY3RzKTsKPiArCXJldHVybiBfX2Jsa2Rldl9ucl96b25lcyhxLCBn ZXRfY2FwYWNpdHkoYmRldi0+YmRfZGlzaykpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGJs a2Rldl9ucl96b25lcyk7Cj4gIAo+IC0vKgo+IC0gKiBDaGVjayB0aGF0IGEgem9uZSByZXBvcnQg YmVsb25ncyB0byB0aGlzIHBhcnRpdGlvbiwgYW5kIGlmIHllcywgZml4IGl0cyBzdGFydAo+IC0g KiBzZWN0b3IgYW5kIHdyaXRlIHBvaW50ZXIgYW5kIHJldHVybiB0cnVlLiBSZXR1cm4gZmFsc2Ug b3RoZXJ3aXNlLgo+IC0gKi8KPiAtc3RhdGljIGJvb2wgYmxrZGV2X3JlcG9ydF96b25lKHN0cnVj dCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBibGtfem9uZSAqcmVwKQo+IC17Cj4gLQlzZWN0 b3JfdCBvZmZzZXQgPSBnZXRfc3RhcnRfc2VjdChiZGV2KTsKPiAtCj4gLQlpZiAocmVwLT5zdGFy dCA8IG9mZnNldCkKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0JcmVwLT5zdGFydCAtPSBvZmZz ZXQ7Cj4gLQlpZiAocmVwLT5zdGFydCArIHJlcC0+bGVuID4gYmRldi0+YmRfcGFydC0+bnJfc2Vj dHMpCj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAtCWlmIChyZXAtPnR5cGUgPT0gQkxLX1pPTkVf VFlQRV9DT05WRU5USU9OQUwpCj4gLQkJcmVwLT53cCA9IHJlcC0+c3RhcnQgKyByZXAtPmxlbjsK PiAtCWVsc2UKPiAtCQlyZXAtPndwIC09IG9mZnNldDsKPiAtCXJldHVybiB0cnVlOwo+IC19Cj4g LQo+ICAvKioKPiAgICogYmxrZGV2X3JlcG9ydF96b25lcyAtIEdldCB6b25lcyBpbmZvcm1hdGlv bgo+ICAgKiBAYmRldjoJVGFyZ2V0IGJsb2NrIGRldmljZQo+IEBAIC0xNDAsOCArMTE4LDcgQEAg aW50IGJsa2Rldl9yZXBvcnRfem9uZXMoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9y X3Qgc2VjdG9yLAo+ICB7Cj4gIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1 ZXVlKGJkZXYpOwo+ICAJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBiZGV2LT5iZF9kaXNrOwo+IC0J dW5zaWduZWQgaW50IGksIG5yejsKPiAtCWludCByZXQ7Cj4gKwlzZWN0b3JfdCBjYXBhY2l0eSA9 IGdldF9jYXBhY2l0eShkaXNrKTsKPiAgCj4gIAlpZiAoIWJsa19xdWV1ZV9pc196b25lZChxKSkK PiAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gQEAgLTE1NCwyNyArMTMxLDE0IEBAIGludCBibGtk ZXZfcmVwb3J0X3pvbmVzKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3Rv ciwKPiAgCWlmIChXQVJOX09OX09OQ0UoIWRpc2stPmZvcHMtPnJlcG9ydF96b25lcykpCj4gIAkJ cmV0dXJuIC1FT1BOT1RTVVBQOwo+ICAKPiAtCWlmICghKm5yX3pvbmVzIHx8IHNlY3RvciA+PSBi ZGV2LT5iZF9wYXJ0LT5ucl9zZWN0cykgewo+ICsJaWYgKCEqbnJfem9uZXMgfHwgc2VjdG9yID49 IGNhcGFjaXR5KSB7Cj4gIAkJKm5yX3pvbmVzID0gMDsKPiAgCQlyZXR1cm4gMDsKPiAgCX0KPiAg Cj4gLQlucnogPSBtaW4oKm5yX3pvbmVzLAo+IC0JCSAgX19ibGtkZXZfbnJfem9uZXMocSwgYmRl di0+YmRfcGFydC0+bnJfc2VjdHMgLSBzZWN0b3IpKTsKPiAtCXJldCA9IGRpc2stPmZvcHMtPnJl cG9ydF96b25lcyhkaXNrLCBnZXRfc3RhcnRfc2VjdChiZGV2KSArIHNlY3RvciwKPiAtCQkJCSAg ICAgICB6b25lcywgJm5yeik7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gKwkqbnJf em9uZXMgPSBtaW4oKm5yX3pvbmVzLCBfX2Jsa2Rldl9ucl96b25lcyhxLCBjYXBhY2l0eSAtIHNl Y3RvcikpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBucno7IGkrKykgewo+IC0JCWlmICghYmxr ZGV2X3JlcG9ydF96b25lKGJkZXYsIHpvbmVzKSkKPiAtCQkJYnJlYWs7Cj4gLQkJem9uZXMrKzsK PiAtCX0KPiAtCj4gLQkqbnJfem9uZXMgPSBpOwo+IC0KPiAtCXJldHVybiAwOwo+ICsJcmV0dXJu IGRpc2stPmZvcHMtPnJlcG9ydF96b25lcyhkaXNrLCBzZWN0b3IsIHpvbmVzLCBucl96b25lcyk7 Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoYmxrZGV2X3JlcG9ydF96b25lcyk7Cj4gIAo+IEBA IC0xODUsMTUgKzE0OSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYmxrZGV2X2FsbG93X3Jlc2V0 X2FsbF96b25lcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LAo+ICAJaWYgKCFibGtfcXVldWVf em9uZV9yZXNldGFsbChiZGV2X2dldF9xdWV1ZShiZGV2KSkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ ICAKPiAtCWlmIChzZWN0b3IgfHwgbnJfc2VjdG9ycyAhPSBwYXJ0X25yX3NlY3RzX3JlYWQoYmRl di0+YmRfcGFydCkpCj4gLQkJcmV0dXJuIGZhbHNlOwo+ICAJLyoKPiAtCSAqIFJFUV9PUF9aT05F X1JFU0VUX0FMTCBjYW4gYmUgZXhlY3V0ZWQgb25seSBpZiB0aGUgYmxvY2sgZGV2aWNlIGlzCj4g LQkgKiB0aGUgZW50aXJlIGRpc2ssIHRoYXQgaXMsIGlmIHRoZSBibG9ja3MgZGV2aWNlIHN0YXJ0 IG9mZnNldCBpcyAwIGFuZAo+IC0JICogaXRzIGNhcGFjaXR5IGlzIHRoZSBzYW1lIGFzIHRoZSBl bnRpcmUgZGlzay4KPiArCSAqIFJFUV9PUF9aT05FX1JFU0VUX0FMTCBjYW4gYmUgZXhlY3V0ZWQg b25seSBpZiB0aGUgbnVtYmVyIG9mIHNlY3RvcnMKPiArCSAqIG9mIHRoZSBhcHBsaWNhYmxlIHpv bmUgcmFuZ2UgaXMgdGhlIGVudGlyZSBkaXNrLgo+ICAJICovCj4gLQlyZXR1cm4gZ2V0X3N0YXJ0 X3NlY3QoYmRldikgPT0gMCAmJgo+IC0JICAgICAgIHBhcnRfbnJfc2VjdHNfcmVhZChiZGV2LT5i ZF9wYXJ0KSA9PSBnZXRfY2FwYWNpdHkoYmRldi0+YmRfZGlzayk7Cj4gKwlyZXR1cm4gIXNlY3Rv ciAmJiBucl9zZWN0b3JzID09IGdldF9jYXBhY2l0eShiZGV2LT5iZF9kaXNrKTsKPiAgfQo+ICAK PiAgLyoqCj4gQEAgLTIxOCw2ICsxNzgsNyBAQCBpbnQgYmxrZGV2X3pvbmVfbWdtdChzdHJ1Y3Qg YmxvY2tfZGV2aWNlICpiZGV2LCBlbnVtIHJlcV9vcGYgb3AsCj4gIHsKPiAgCXN0cnVjdCByZXF1 ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoYmRldik7Cj4gIAlzZWN0b3JfdCB6b25lX3Nl Y3RvcnMgPSBibGtfcXVldWVfem9uZV9zZWN0b3JzKHEpOwo+ICsJc2VjdG9yX3QgY2FwYWNpdHkg PSBnZXRfY2FwYWNpdHkoYmRldi0+YmRfZGlzayk7Cj4gIAlzZWN0b3JfdCBlbmRfc2VjdG9yID0g c2VjdG9yICsgbnJfc2VjdG9yczsKPiAgCXN0cnVjdCBiaW8gKmJpbyA9IE5VTEw7Cj4gIAlpbnQg cmV0Owo+IEBAIC0yMzEsNyArMTkyLDcgQEAgaW50IGJsa2Rldl96b25lX21nbXQoc3RydWN0IGJs b2NrX2RldmljZSAqYmRldiwgZW51bSByZXFfb3BmIG9wLAo+ICAJaWYgKCFvcF9pc196b25lX21n bXQob3ApKQo+ICAJCXJldHVybiAtRU9QTk9UU1VQUDsKPiAgCj4gLQlpZiAoIW5yX3NlY3RvcnMg fHwgZW5kX3NlY3RvciA+IGJkZXYtPmJkX3BhcnQtPm5yX3NlY3RzKQo+ICsJaWYgKCFucl9zZWN0 b3JzIHx8IGVuZF9zZWN0b3IgPiBjYXBhY2l0eSkKPiAgCQkvKiBPdXQgb2YgcmFuZ2UgKi8KPiAg CQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gQEAgLTIzOSw4ICsyMDAsNyBAQCBpbnQgYmxrZGV2X3pv bmVfbWdtdChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBlbnVtIHJlcV9vcGYgb3AsCj4gIAlp ZiAoc2VjdG9yICYgKHpvbmVfc2VjdG9ycyAtIDEpKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAK PiAtCWlmICgobnJfc2VjdG9ycyAmICh6b25lX3NlY3RvcnMgLSAxKSkgJiYKPiAtCSAgICBlbmRf c2VjdG9yICE9IGJkZXYtPmJkX3BhcnQtPm5yX3NlY3RzKQo+ICsJaWYgKChucl9zZWN0b3JzICYg KHpvbmVfc2VjdG9ycyAtIDEpKSAmJiBlbmRfc2VjdG9yICE9IGNhcGFjaXR5KQo+ICAJCXJldHVy biAtRUlOVkFMOwo+ICAKPiAgCXdoaWxlIChzZWN0b3IgPCBlbmRfc2VjdG9yKSB7Cj4gZGlmZiAt LWdpdCBhL2Jsb2NrL3BhcnRpdGlvbi1nZW5lcmljLmMgYi9ibG9jay9wYXJ0aXRpb24tZ2VuZXJp Yy5jCj4gaW5kZXggYWVlNjQzY2UxM2QxLi4zMWJmZjNmYjI4YWYgMTAwNjQ0Cj4gLS0tIGEvYmxv Y2svcGFydGl0aW9uLWdlbmVyaWMuYwo+ICsrKyBiL2Jsb2NrL3BhcnRpdGlvbi1nZW5lcmljLmMK PiBAQCAtNDU5LDU2ICs0NTksNiBAQCBzdGF0aWMgaW50IGRyb3BfcGFydGl0aW9ucyhzdHJ1Y3Qg Z2VuZGlzayAqZGlzaywgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKPiAgCXJldHVybiAwOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBwYXJ0X3pvbmVfYWxpZ25lZChzdHJ1Y3QgZ2VuZGlzayAq ZGlzaywKPiAtCQkJICAgICAgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKPiAtCQkJICAgICAg c2VjdG9yX3QgZnJvbSwgc2VjdG9yX3Qgc2l6ZSkKPiAtewo+IC0JdW5zaWduZWQgaW50IHpvbmVf c2VjdG9ycyA9IGJkZXZfem9uZV9zZWN0b3JzKGJkZXYpOwo+IC0KPiAtCS8qCj4gLQkgKiBJZiB0 aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCwgdGhlbiB0aGUgZGlzayBpcyBhIHpvbmVkIGJsb2NrIGRl dmljZQo+IC0JICogKGhvc3QtYXdhcmUgb3IgaG9zdC1tYW5hZ2VkKS4gVGhpcyBjYW4gYmUgZGV0 ZWN0ZWQgZXZlbiBpZiB0aGUKPiAtCSAqIHpvbmVkIGJsb2NrIGRldmljZSBzdXBwb3J0IGlzIGRp c2FibGVkIChDT05GSUdfQkxLX0RFVl9aT05FRCBub3QKPiAtCSAqIHNldCkuIEluIHRoaXMgY2Fz ZSwgaG93ZXZlciwgb25seSBob3N0LWF3YXJlIGRldmljZXMgd2lsbCBiZSBzZWVuCj4gLQkgKiBh cyBhIGJsb2NrIGRldmljZSBpcyBub3QgY3JlYXRlZCBmb3IgaG9zdC1tYW5hZ2VkIGRldmljZXMu IFdpdGhvdXQKPiAtCSAqIHpvbmVkIGJsb2NrIGRldmljZSBzdXBwb3J0LCBob3N0LWF3YXJlIGRy aXZlcyBjYW4gc3RpbGwgYmUgdXNlZCBhcwo+IC0JICogcmVndWxhciBibG9jayBkZXZpY2VzIChu byB6b25lIG9wZXJhdGlvbikgYW5kIHRoZWlyIHpvbmUgc2l6ZSB3aWxsCj4gLQkgKiBiZSByZXBv cnRlZCBhcyAwLiBBbGxvdyB0aGlzIGNhc2UuCj4gLQkgKi8KPiAtCWlmICghem9uZV9zZWN0b3Jz KQo+IC0JCXJldHVybiB0cnVlOwo+IC0KPiAtCS8qCj4gLQkgKiBDaGVjayBwYXJ0aXRpb24gc3Rh cnQgYW5kIHNpemUgYWxpZ25lbWVudC4gSWYgdGhlIGRyaXZlIGhhcyBhCj4gLQkgKiBzbWFsbGVy IGxhc3QgcnVudCB6b25lLCBpZ25vcmUgaXQgYW5kIGFsbG93IHRoZSBwYXJ0aXRpb24gdG8KPiAt CSAqIHVzZSBpdC4gQ2hlY2sgdGhlIHpvbmUgc2l6ZSB0b286IGl0IHNob3VsZCBiZSBhIHBvd2Vy IG9mIDIgbnVtYmVyCj4gLQkgKiBvZiBzZWN0b3JzLgo+IC0JICovCj4gLQlpZiAoV0FSTl9PTl9P TkNFKCFpc19wb3dlcl9vZl8yKHpvbmVfc2VjdG9ycykpKSB7Cj4gLQkJdTMyIHJlbTsKPiAtCj4g LQkJZGl2X3U2NF9yZW0oZnJvbSwgem9uZV9zZWN0b3JzLCAmcmVtKTsKPiAtCQlpZiAocmVtKQo+ IC0JCQlyZXR1cm4gZmFsc2U7Cj4gLQkJaWYgKChmcm9tICsgc2l6ZSkgPCBnZXRfY2FwYWNpdHko ZGlzaykpIHsKPiAtCQkJZGl2X3U2NF9yZW0oc2l6ZSwgem9uZV9zZWN0b3JzLCAmcmVtKTsKPiAt CQkJaWYgKHJlbSkKPiAtCQkJCXJldHVybiBmYWxzZTsKPiAtCQl9Cj4gLQo+IC0JfSBlbHNlIHsK PiAtCj4gLQkJaWYgKGZyb20gJiAoem9uZV9zZWN0b3JzIC0gMSkpCj4gLQkJCXJldHVybiBmYWxz ZTsKPiAtCQlpZiAoKGZyb20gKyBzaXplKSA8IGdldF9jYXBhY2l0eShkaXNrKSAmJgo+IC0JCSAg ICAoc2l6ZSAmICh6b25lX3NlY3RvcnMgLSAxKSkpCj4gLQkJCXJldHVybiBmYWxzZTsKPiAtCj4g LQl9Cj4gLQo+IC0JcmV0dXJuIHRydWU7Cj4gLX0KPiAtCj4gIGludCByZXNjYW5fcGFydGl0aW9u cyhzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKPiAgewo+ ICAJc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSA9IE5VTEw7Cj4gQEAgLTU0NCw2ICs0 OTQsMTQgQEAgaW50IHJlc2Nhbl9wYXJ0aXRpb25zKHN0cnVjdCBnZW5kaXNrICpkaXNrLCBzdHJ1 Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQo+ICAJCX0KPiAgCQlyZXR1cm4gLUVJTzsKPiAgCX0KPiAr Cj4gKwkvKiBQYXJ0aXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHpvbmVkIGJsb2NrIGRldmlj ZXMgKi8KPiArCWlmIChiZGV2X2lzX3pvbmVkKGJkZXYpKSB7Cj4gKwkJcHJfd2FybigiJXM6IGln bm9yaW5nIHBhcnRpdGlvbiB0YWJsZSBvbiB6b25lZCBibG9jayBkZXZpY2VcbiIsCj4gKwkJCWRp c2stPmRpc2tfbmFtZSk7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICAJLyoKPiAgCSAqIElm IGFueSBwYXJ0aXRpb24gY29kZSB0cmllZCB0byByZWFkIGJleW9uZCBFT0QsIHRyeQo+ICAJICog dW5sb2NraW5nIG5hdGl2ZSBjYXBhY2l0eSBldmVuIGlmIHBhcnRpdGlvbiB0YWJsZSBpcwoKV2hp bGUgSSBkbyBhcHBsYXVkIHJlbW92aW5nIHNwZWNpYWwgY2FzZXMgZm9yIHpvbmVkIGRldmljZXMs IHdlIGRvIGhhdmUKdGhlIEdFTkhEX0ZMX05PX1BBUlRfU0NBTiBmb3IgcHJlY2lzZWx5IHRoaXMg dXNlIGNhc2UuCkFueSBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgdGhpcyBpc24ndCBiZWluZyB1c2Vk LCBub3IgZXZlbiBzZXQ/CgpDaGVlcnMsCgpIYW5uZXMKLS0gCkRyLiBIYW5uZXMgUmVpbmVja2UJ CSAgICAgIFRlYW1sZWFkIFN0b3JhZ2UgJiBOZXR3b3JraW5nCmhhcmVAc3VzZS5kZQkJCSAgICAg ICAgICAgICAgICAgICs0OSA5MTEgNzQwNTMgNjg4ClNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdl cm1hbnkgR21iSCwgTWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnCkhSQiAyNDcxNjUgKEFH IE3DvG5jaGVuKSwgR0Y6IEZlbGl4IEltZW5kw7ZyZmZlcgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0 CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291 cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwK