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=-18.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable 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 72050C433FE for ; Fri, 11 Dec 2020 15:21:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4012120793 for ; Fri, 11 Dec 2020 15:21:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2406415AbgLKO6S (ORCPT ); Fri, 11 Dec 2020 09:58:18 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:20829 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2406400AbgLKO6P (ORCPT ); Fri, 11 Dec 2020 09:58:15 -0500 Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20201211145730epoutp046b1461842d4fe99c1292cf6ee6868cbe~PsWekjhu33008930089epoutp04E for ; Fri, 11 Dec 2020 14:57:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20201211145730epoutp046b1461842d4fe99c1292cf6ee6868cbe~PsWekjhu33008930089epoutp04E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1607698650; bh=R5FcDS/TS17GZcZwvPhvmqWTKtggijaSfKGhePCYnr4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rkFvPXtPj7TrGoz33ISud3AqLVKNron7cU2pR82daTE3Mo8zGQ4R+yqtQKdcHJdSM AMpjUtv04PB8b1ygvztSfaXPayWupWyF6CGlkMu1g0XYaf9TkEdvKGo3RQgy0i8jIW 4N8oUzufesiikJzp2IePGXWVaO/3iHFZkAYVEQeo= Received: from epsmges5p2new.samsung.com (unknown [182.195.42.74]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20201211145729epcas5p32c66a0996a1c53b24668c1be9d615611~PsWdpWNVp2218722187epcas5p35; Fri, 11 Dec 2020 14:57:29 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 0E.00.50652.9D883DF5; Fri, 11 Dec 2020 23:57:29 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c~PrdW6fQb60154201542epcas5p1m; Fri, 11 Dec 2020 13:52:05 +0000 (GMT) Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201211135205epsmtrp2fe2f38d12e5212d5f5464f91ae3d27ce~PrdW5WhCB0569205692epsmtrp2S; Fri, 11 Dec 2020 13:52:05 +0000 (GMT) X-AuditID: b6c32a4a-6b3ff7000000c5dc-24-5fd388d96153 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id D5.71.08745.58973DF5; Fri, 11 Dec 2020 22:52:05 +0900 (KST) Received: from localhost.localdomain (unknown [107.110.206.5]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20201211135202epsmtip26706456da2bdcb8021663f93a8476308~PrdTz_pmh2927029270epsmtip2H; Fri, 11 Dec 2020 13:52:02 +0000 (GMT) From: SelvaKumar S To: linux-nvme@lists.infradead.org Cc: kbusch@kernel.org, axboe@kernel.dk, damien.lemoal@wdc.com, Johannes.Thumshirn@wdc.com, hch@lst.de, sagi@grimberg.me, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, martin.petersen@oracle.com, bvanassche@acm.org, mpatocka@redhat.com, hare@suse.de, dm-devel@redhat.com, snitzer@redhat.com, selvajove@gmail.com, nj.shetty@samsung.com, joshi.k@samsung.com, javier.gonz@samsung.com, SelvaKumar S Subject: [RFC PATCH v3 2/2] nvme: add simple copy support Date: Fri, 11 Dec 2020 19:21:39 +0530 Message-Id: <20201211135139.49232-3-selvakuma.s1@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201211135139.49232-1-selvakuma.s1@samsung.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sf0wTZxjH996dd9eykgORvaJzS5PpcLPIhtvLVFyyut00S7YRFkKywbme hQmla+lQt2hxY0LZUJg/YpFhCMFRfzBKB11piSlzhbpftCCipYFAySbR8mM4tCvO9lj0v8/7 PJ8n3zxPXhqPLyOT6AJVCa9RcYVSUkx09CSv2zBc4c3deOymFJ0bOUKiE9N3cVR++A6GHLfr liF7Yy2GWs5dxtC4b45CYYMfQ5fv3yJRrfMqQI7rzyGv7TSJGpoDFKoaspLorGsRQzUVgxjq CDXgaOBYI44uTgUJNBocotDUQh+JvmybB68mst6BneyPxhGK/d3fRrDeX3Ws2VRJsu1NB9mu YT3JzgSuE2ywe5Bkqy0mwLZf+ZSdM69hD1+qwt6W5Ii3KPjCgk94TUpGnjjfXbmIqQ9t3mua byX0wC0zAJqGTBoc/y3HAER0PNMFYMD9sgGIH/AsgKNlnaTwmANw2GAgI1ZkwOlvXmrYACz/ ZuahZZjspiIWyWyAV5vMRIQTGCkMtx4iIhLODOPQc282Ki1n0qFvsR6PMME8Ayd/MkVZwmyF s+FbQIh7Cp7y/BP1RUwGrLb4lpw42HdqIhqAP3A+/6EOjwRApkEEOxf6CGFYDmv1dbjAy+FN l4USOAnO3XYs7VMKJytPYALrAawOlgq8Dfbbw1jkSDiTDFttKUL5SXjcfRETcmPh16GJpVEJ tH47gQk3XQvdnS8J5dVwusdGCmUWmnoLhFvVADj4rx0/Cp42PrKN8ZFtjA+DzwDcBFbyam2R ktduUr+g4ktlWq5Iq1MpZR8WF5lB9Jeu32EFY6PTMifAaOAEkMalCZLQQW9uvETB7dvPa4pz NbpCXusEq2hC+oREuvDLB/GMkivh9/C8mtf838VoUZIe2+S50NC9RX1j+zrvAYVoJs19PDSz 2i2t/1g/mHbh2TWnA/tZlrixKvh44ldvDr2/dYe8y+/Clu1tst4L71LJUSoI5cWUvqYjuQRv ieWkD1WfrTc2iRXZno78liMpoqy3qN7dhrt/1FzZXtlqk42hk4kqsrw/tJn++e8Vne8p+6mx DCL9szvv6pMbXR5caS+OIb+fv1RxLfuv4lDewPl02XdDxt1fOP58TNdvHW/L0r1jtTp8r6S/ qK4508K8zuka07btS86QfzRlt1SF3jgwYnbZs+/74q4p4pozM4E1c8WkX5O6MqZ3Z1mKbuP5 57upnizPnp6OnAAXuyt2bbtcSmjzudT1uEbL/Qec0lPFFAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDIsWRmVeSWpSXmKPExsWy7bCSvG5r5eV4g8UnhC1W3+1ns5j24Sez RWv7NyaLve9ms1rsWTSJyWLl6qNMFo/vfGa3+Nt1j8ni6P+3bBaTDl1jtNh7S9vi8q45bBbz lz1lt+i+voPNYvnxf0wWEzuuMlls+z2f2eLKlEXMFutev2exePD+OrvF6x8n2SzaNn5ldBDz uHzF22PnrLvsHufvbWTxuHy21GPTqk42j81L6j1232xg8/j49BaLx/t9V9k8+rasYvTYfLra 4/MmOY/2A91MAbxRXDYpqTmZZalF+nYJXBmnOv8xFTRZV6z6up6lgfGUXhcjJ4eEgInEoXvL 2LoYuTiEBHYwSvyZ1cYOkZCRWHu3kw3CFpZY+e85O0TRR0aJuefPMYIk2AR0Ja4t2cQCYosI KEn8Xd/EAlLELPCZWWL+rjawhLCApcSdf3OZQWwWAVWJZ0dWgdm8ArYSn/6+ZYTYIC8x89J3 sM2cAnYSfVvugNUIAdXcP9nPClEvKHFy5hOgmRxAC9Ql1s8TAgkzA7U2b53NPIFRcBaSqlkI VbOQVC1gZF7FKJlaUJybnltsWGCUl1quV5yYW1yal66XnJ+7iREc4VpaOxj3rPqgd4iRiYPx EKMEB7OSCK8sy6V4Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4rwXuk7GCwmkJ5akZqemFqQWwWSZ ODilGpiWNjy2vW/y8cV5nRVPNrSZ560yKDywskhy0uv/BYdXv0vUTr/6/K/CsUUu79lzE9v2 76nSXf3e6XjQXm8hqSMzpGofOoqG8yT0sj7/fP7W/RtTb16rduk/9sY8pmKzYC+znGKtHP+k I3tjbKdZyb8Qvpyd86twxbO/OryTjXqzTNK2ur/YHx59OiLjg3+53T6LI/+uq+zOn+nrJDLJ 0b/Pndsp4vH0fcfLpu38dzPlzvb5DSqOW/57tKUXl9bon4/s5BBJvz9t/tHVna/1rt9Z+rvm 2KaPoTHaur3yP+urXBe/3ayyZP+7QIevHV+2trsttjeNuucs/lju4Z9/Qi4mb17vmnDbiedK iyRL37I2JZbijERDLeai4kQAJ1oB6F8DAAA= X-CMS-MailID: 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P X-CMS-RootMailID: 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c References: <20201211135139.49232-1-selvakuma.s1@samsung.com> Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org Add support for TP 4065a ("Simple Copy Command"), v2020.05.04 ("Ratified") The implementation uses the payload passed from the block layer to form simple copy command. Set the device copy limits to queue limits. Signed-off-by: SelvaKumar S Signed-off-by: Kanchan Joshi Signed-off-by: Nitesh Shetty Signed-off-by: Javier González --- drivers/nvme/host/core.c | 89 ++++++++++++++++++++++++++++++++++++++++ include/linux/nvme.h | 43 +++++++++++++++++-- 2 files changed, 129 insertions(+), 3 deletions(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 9b6ebeb29cca..d235156ff565 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -647,6 +647,65 @@ static inline void nvme_setup_flush(struct nvme_ns *ns, cmnd->common.nsid = cpu_to_le32(ns->head->ns_id); } +static inline blk_status_t nvme_setup_copy(struct nvme_ns *ns, + struct request *req, struct nvme_command *cmnd) +{ + struct nvme_ctrl *ctrl = ns->ctrl; + struct nvme_copy_range *range = NULL; + struct blk_copy_payload *payload; + unsigned short nr_range = 0; + u16 control = 0, ssrl; + u32 dsmgmt = 0; + u64 slba; + int i; + + payload = bio_data(req->bio); + nr_range = payload->copy_range; + + if (req->cmd_flags & REQ_FUA) + control |= NVME_RW_FUA; + + if (req->cmd_flags & REQ_FAILFAST_DEV) + control |= NVME_RW_LR; + + cmnd->copy.opcode = nvme_cmd_copy; + cmnd->copy.nsid = cpu_to_le32(ns->head->ns_id); + cmnd->copy.sdlba = cpu_to_le64(blk_rq_pos(req) >> (ns->lba_shift - 9)); + + range = kmalloc_array(nr_range, sizeof(*range), + GFP_ATOMIC | __GFP_NOWARN); + if (!range) + return BLK_STS_RESOURCE; + + for (i = 0; i < nr_range; i++) { + slba = payload->range[i].src; + slba = slba >> (ns->lba_shift - 9); + + ssrl = payload->range[i].len; + ssrl = ssrl >> (ns->lba_shift - 9); + + range[i].slba = cpu_to_le64(slba); + range[i].nlb = cpu_to_le16(ssrl - 1); + } + + cmnd->copy.nr_range = nr_range - 1; + + req->special_vec.bv_page = virt_to_page(range); + req->special_vec.bv_offset = offset_in_page(range); + req->special_vec.bv_len = sizeof(*range) * nr_range; + req->rq_flags |= RQF_SPECIAL_PAYLOAD; + + if (ctrl->nr_streams) + nvme_assign_write_stream(ctrl, req, &control, &dsmgmt); + + //TBD end-to-end + + cmnd->rw.control = cpu_to_le16(control); + cmnd->rw.dsmgmt = cpu_to_le32(dsmgmt); + + return BLK_STS_OK; +} + static blk_status_t nvme_setup_discard(struct nvme_ns *ns, struct request *req, struct nvme_command *cmnd) { @@ -829,6 +888,9 @@ blk_status_t nvme_setup_cmd(struct nvme_ns *ns, struct request *req, case REQ_OP_DISCARD: ret = nvme_setup_discard(ns, req, cmd); break; + case REQ_OP_COPY: + ret = nvme_setup_copy(ns, req, cmd); + break; case REQ_OP_READ: ret = nvme_setup_rw(ns, req, cmd, nvme_cmd_read); break; @@ -1850,6 +1912,31 @@ static void nvme_config_discard(struct gendisk *disk, struct nvme_ns *ns) blk_queue_max_write_zeroes_sectors(queue, UINT_MAX); } +static void nvme_config_copy(struct gendisk *disk, struct nvme_ns *ns, + struct nvme_id_ns *id) +{ + struct nvme_ctrl *ctrl = ns->ctrl; + struct request_queue *queue = disk->queue; + + if (!(ctrl->oncs & NVME_CTRL_ONCS_COPY)) { + queue->limits.copy_offload = 0; + queue->limits.max_copy_sectors = 0; + queue->limits.max_copy_range_sectors = 0; + queue->limits.max_copy_nr_ranges = 0; + blk_queue_flag_clear(QUEUE_FLAG_COPY, queue); + return; + } + + /* setting copy limits */ + blk_queue_flag_test_and_set(QUEUE_FLAG_COPY, queue); + queue->limits.copy_offload = 0; + queue->limits.max_copy_sectors = le64_to_cpu(id->mcl) * + (1 << (ns->lba_shift - 9)); + queue->limits.max_copy_range_sectors = le32_to_cpu(id->mssrl) * + (1 << (ns->lba_shift - 9)); + queue->limits.max_copy_nr_ranges = id->msrc + 1; +} + static void nvme_config_write_zeroes(struct gendisk *disk, struct nvme_ns *ns) { u64 max_blocks; @@ -2045,6 +2132,7 @@ static void nvme_update_disk_info(struct gendisk *disk, set_capacity_and_notify(disk, capacity); nvme_config_discard(disk, ns); + nvme_config_copy(disk, ns, id); nvme_config_write_zeroes(disk, ns); if (id->nsattr & NVME_NS_ATTR_RO) @@ -4616,6 +4704,7 @@ static inline void _nvme_check_size(void) BUILD_BUG_ON(sizeof(struct nvme_download_firmware) != 64); BUILD_BUG_ON(sizeof(struct nvme_format_cmd) != 64); BUILD_BUG_ON(sizeof(struct nvme_dsm_cmd) != 64); + BUILD_BUG_ON(sizeof(struct nvme_copy_command) != 64); BUILD_BUG_ON(sizeof(struct nvme_write_zeroes_cmd) != 64); BUILD_BUG_ON(sizeof(struct nvme_abort_cmd) != 64); BUILD_BUG_ON(sizeof(struct nvme_get_log_page_command) != 64); diff --git a/include/linux/nvme.h b/include/linux/nvme.h index d92535997687..11ed72a2164d 100644 --- a/include/linux/nvme.h +++ b/include/linux/nvme.h @@ -289,7 +289,7 @@ struct nvme_id_ctrl { __u8 nvscc; __u8 nwpc; __le16 acwu; - __u8 rsvd534[2]; + __le16 ocfs; __le32 sgls; __le32 mnan; __u8 rsvd544[224]; @@ -314,6 +314,7 @@ enum { NVME_CTRL_ONCS_WRITE_ZEROES = 1 << 3, NVME_CTRL_ONCS_RESERVATIONS = 1 << 5, NVME_CTRL_ONCS_TIMESTAMP = 1 << 6, + NVME_CTRL_ONCS_COPY = 1 << 8, NVME_CTRL_VWC_PRESENT = 1 << 0, NVME_CTRL_OACS_SEC_SUPP = 1 << 0, NVME_CTRL_OACS_DIRECTIVES = 1 << 5, @@ -362,7 +363,10 @@ struct nvme_id_ns { __le16 npdg; __le16 npda; __le16 nows; - __u8 rsvd74[18]; + __le16 mssrl; + __le32 mcl; + __u8 msrc; + __u8 rsvd91[11]; __le32 anagrpid; __u8 rsvd96[3]; __u8 nsattr; @@ -673,6 +677,7 @@ enum nvme_opcode { nvme_cmd_resv_report = 0x0e, nvme_cmd_resv_acquire = 0x11, nvme_cmd_resv_release = 0x15, + nvme_cmd_copy = 0x19, nvme_cmd_zone_mgmt_send = 0x79, nvme_cmd_zone_mgmt_recv = 0x7a, nvme_cmd_zone_append = 0x7d, @@ -691,7 +696,8 @@ enum nvme_opcode { nvme_opcode_name(nvme_cmd_resv_register), \ nvme_opcode_name(nvme_cmd_resv_report), \ nvme_opcode_name(nvme_cmd_resv_acquire), \ - nvme_opcode_name(nvme_cmd_resv_release)) + nvme_opcode_name(nvme_cmd_resv_release), \ + nvme_opcode_name(nvme_cmd_copy)) /* @@ -863,6 +869,36 @@ struct nvme_dsm_range { __le64 slba; }; +struct nvme_copy_command { + __u8 opcode; + __u8 flags; + __u16 command_id; + __le32 nsid; + __u64 rsvd2; + __le64 metadata; + union nvme_data_ptr dptr; + __le64 sdlba; + __u8 nr_range; + __u8 rsvd12; + __le16 control; + __le16 rsvd13; + __le16 dspec; + __le32 ilbrt; + __le16 lbat; + __le16 lbatm; +}; + +struct nvme_copy_range { + __le64 rsvd0; + __le64 slba; + __le16 nlb; + __le16 rsvd18; + __le32 rsvd20; + __le32 eilbrt; + __le16 elbat; + __le16 elbatm; +}; + struct nvme_write_zeroes_cmd { __u8 opcode; __u8 flags; @@ -1400,6 +1436,7 @@ struct nvme_command { struct nvme_download_firmware dlfw; struct nvme_format_cmd format; struct nvme_dsm_cmd dsm; + struct nvme_copy_command copy; struct nvme_write_zeroes_cmd write_zeroes; struct nvme_zone_mgmt_send_cmd zms; struct nvme_zone_mgmt_recv_cmd zmr; -- 2.25.1 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=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT 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 CD482C4361B for ; Fri, 11 Dec 2020 14:57:39 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 3AC1E20637 for ; Fri, 11 Dec 2020 14:57:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3AC1E20637 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:MIME-Version:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=RxRx12sy5tvyFXJpdJ/k5mUNm6dFqsAQ8XqUBg+GzKI=; b=ZP3AG9JbwGzFXyfo4XFDSf59A P6B0yZtY8zKNBXCvdka0yO+eKSeKsL8mSuDn48+0KH/OlNwUwjYHPd0OpO8NTJwBh3HgHUl7kTL/z rCWSAoBA0xZuTMDOvLDF+gwQ3nd5N9ISaNj1o4DDdUr15RkdKYexbcXSBZA96VFlsytDzCK/NUod4 GxID7TlsYdg+jMNxadIXfLxj6XY2wl5fhm9cgx6Mg8LoB68jnw5jPepZSALXpEyVMQJXDeo9d8QsX EcAmvG1tl9k6gpmHMo8yUv8n67caUDCH1ecdQyCuE1fWxq5XnSvkMDFJGrHwuzMZHscx9RJeRuo9F s824SE82w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1knjrV-0005QW-1J; Fri, 11 Dec 2020 14:57:37 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1knjrS-0005PA-1p for linux-nvme@lists.infradead.org; Fri, 11 Dec 2020 14:57:35 +0000 Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20201211145730epoutp026339c1f4c459c8b6f5bfbb9459c45242~PsWedswsP1724117241epoutp02K for ; Fri, 11 Dec 2020 14:57:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20201211145730epoutp026339c1f4c459c8b6f5bfbb9459c45242~PsWedswsP1724117241epoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1607698650; bh=R5FcDS/TS17GZcZwvPhvmqWTKtggijaSfKGhePCYnr4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rkFvPXtPj7TrGoz33ISud3AqLVKNron7cU2pR82daTE3Mo8zGQ4R+yqtQKdcHJdSM AMpjUtv04PB8b1ygvztSfaXPayWupWyF6CGlkMu1g0XYaf9TkEdvKGo3RQgy0i8jIW 4N8oUzufesiikJzp2IePGXWVaO/3iHFZkAYVEQeo= Received: from epsmges5p2new.samsung.com (unknown [182.195.42.74]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20201211145729epcas5p32c66a0996a1c53b24668c1be9d615611~PsWdpWNVp2218722187epcas5p35; Fri, 11 Dec 2020 14:57:29 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 0E.00.50652.9D883DF5; Fri, 11 Dec 2020 23:57:29 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c~PrdW6fQb60154201542epcas5p1m; Fri, 11 Dec 2020 13:52:05 +0000 (GMT) Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201211135205epsmtrp2fe2f38d12e5212d5f5464f91ae3d27ce~PrdW5WhCB0569205692epsmtrp2S; Fri, 11 Dec 2020 13:52:05 +0000 (GMT) X-AuditID: b6c32a4a-6b3ff7000000c5dc-24-5fd388d96153 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id D5.71.08745.58973DF5; Fri, 11 Dec 2020 22:52:05 +0900 (KST) Received: from localhost.localdomain (unknown [107.110.206.5]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20201211135202epsmtip26706456da2bdcb8021663f93a8476308~PrdTz_pmh2927029270epsmtip2H; Fri, 11 Dec 2020 13:52:02 +0000 (GMT) From: SelvaKumar S To: linux-nvme@lists.infradead.org Subject: [RFC PATCH v3 2/2] nvme: add simple copy support Date: Fri, 11 Dec 2020 19:21:39 +0530 Message-Id: <20201211135139.49232-3-selvakuma.s1@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201211135139.49232-1-selvakuma.s1@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Sf0wTZxjH996dd9eykgORvaJzS5PpcLPIhtvLVFyyut00S7YRFkKywbme hQmla+lQt2hxY0LZUJg/YpFhCMFRfzBKB11piSlzhbpftCCipYFAySbR8mM4tCvO9lj0v8/7 PJ8n3zxPXhqPLyOT6AJVCa9RcYVSUkx09CSv2zBc4c3deOymFJ0bOUKiE9N3cVR++A6GHLfr liF7Yy2GWs5dxtC4b45CYYMfQ5fv3yJRrfMqQI7rzyGv7TSJGpoDFKoaspLorGsRQzUVgxjq CDXgaOBYI44uTgUJNBocotDUQh+JvmybB68mst6BneyPxhGK/d3fRrDeX3Ws2VRJsu1NB9mu YT3JzgSuE2ywe5Bkqy0mwLZf+ZSdM69hD1+qwt6W5Ii3KPjCgk94TUpGnjjfXbmIqQ9t3mua byX0wC0zAJqGTBoc/y3HAER0PNMFYMD9sgGIH/AsgKNlnaTwmANw2GAgI1ZkwOlvXmrYACz/ ZuahZZjspiIWyWyAV5vMRIQTGCkMtx4iIhLODOPQc282Ki1n0qFvsR6PMME8Ayd/MkVZwmyF s+FbQIh7Cp7y/BP1RUwGrLb4lpw42HdqIhqAP3A+/6EOjwRApkEEOxf6CGFYDmv1dbjAy+FN l4USOAnO3XYs7VMKJytPYALrAawOlgq8Dfbbw1jkSDiTDFttKUL5SXjcfRETcmPh16GJpVEJ tH47gQk3XQvdnS8J5dVwusdGCmUWmnoLhFvVADj4rx0/Cp42PrKN8ZFtjA+DzwDcBFbyam2R ktduUr+g4ktlWq5Iq1MpZR8WF5lB9Jeu32EFY6PTMifAaOAEkMalCZLQQW9uvETB7dvPa4pz NbpCXusEq2hC+oREuvDLB/GMkivh9/C8mtf838VoUZIe2+S50NC9RX1j+zrvAYVoJs19PDSz 2i2t/1g/mHbh2TWnA/tZlrixKvh44ldvDr2/dYe8y+/Clu1tst4L71LJUSoI5cWUvqYjuQRv ieWkD1WfrTc2iRXZno78liMpoqy3qN7dhrt/1FzZXtlqk42hk4kqsrw/tJn++e8Vne8p+6mx DCL9szvv6pMbXR5caS+OIb+fv1RxLfuv4lDewPl02XdDxt1fOP58TNdvHW/L0r1jtTp8r6S/ qK4508K8zuka07btS86QfzRlt1SF3jgwYnbZs+/74q4p4pozM4E1c8WkX5O6MqZ3Z1mKbuP5 57upnizPnp6OnAAXuyt2bbtcSmjzudT1uEbL/Qec0lPFFAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDIsWRmVeSWpSXmKPExsWy7bCSvG5r5eV4g8UnhC1W3+1ns5j24Sez RWv7NyaLve9ms1rsWTSJyWLl6qNMFo/vfGa3+Nt1j8ni6P+3bBaTDl1jtNh7S9vi8q45bBbz lz1lt+i+voPNYvnxf0wWEzuuMlls+z2f2eLKlEXMFutev2exePD+OrvF6x8n2SzaNn5ldBDz uHzF22PnrLvsHufvbWTxuHy21GPTqk42j81L6j1232xg8/j49BaLx/t9V9k8+rasYvTYfLra 4/MmOY/2A91MAbxRXDYpqTmZZalF+nYJXBmnOv8xFTRZV6z6up6lgfGUXhcjJ4eEgInEoXvL 2LoYuTiEBHYwSvyZ1cYOkZCRWHu3kw3CFpZY+e85O0TRR0aJuefPMYIk2AR0Ja4t2cQCYosI KEn8Xd/EAlLELPCZWWL+rjawhLCApcSdf3OZQWwWAVWJZ0dWgdm8ArYSn/6+ZYTYIC8x89J3 sM2cAnYSfVvugNUIAdXcP9nPClEvKHFy5hOgmRxAC9Ql1s8TAgkzA7U2b53NPIFRcBaSqlkI VbOQVC1gZF7FKJlaUJybnltsWGCUl1quV5yYW1yal66XnJ+7iREc4VpaOxj3rPqgd4iRiYPx EKMEB7OSCK8sy6V4Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4rwXuk7GCwmkJ5akZqemFqQWwWSZ ODilGpiWNjy2vW/y8cV5nRVPNrSZ560yKDywskhy0uv/BYdXv0vUTr/6/K/CsUUu79lzE9v2 76nSXf3e6XjQXm8hqSMzpGofOoqG8yT0sj7/fP7W/RtTb16rduk/9sY8pmKzYC+znGKtHP+k I3tjbKdZyb8Qvpyd86twxbO/OryTjXqzTNK2ur/YHx59OiLjg3+53T6LI/+uq+zOn+nrJDLJ 0b/Pndsp4vH0fcfLpu38dzPlzvb5DSqOW/57tKUXl9bon4/s5BBJvz9t/tHVna/1rt9Z+rvm 2KaPoTHaur3yP+urXBe/3ayyZP+7QIevHV+2trsttjeNuucs/lju4Z9/Qi4mb17vmnDbiedK iyRL37I2JZbijERDLeai4kQAJ1oB6F8DAAA= X-CMS-MailID: 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P X-CMS-RootMailID: 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c References: <20201211135139.49232-1-selvakuma.s1@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201211_095734_365646_6AEB1910 X-CRM114-Status: GOOD ( 21.93 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: axboe@kernel.dk, damien.lemoal@wdc.com, SelvaKumar S , sagi@grimberg.me, linux-scsi@vger.kernel.org, selvajove@gmail.com, Johannes.Thumshirn@wdc.com, snitzer@redhat.com, linux-kernel@vger.kernel.org, nj.shetty@samsung.com, linux-block@vger.kernel.org, dm-devel@redhat.com, mpatocka@redhat.com, hare@suse.de, joshi.k@samsung.com, martin.petersen@oracle.com, kbusch@kernel.org, javier.gonz@samsung.com, hch@lst.de, bvanassche@acm.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org QWRkIHN1cHBvcnQgZm9yICBUUCA0MDY1YSAoIlNpbXBsZSBDb3B5IENvbW1hbmQiKSwgdjIwMjAu MDUuMDQKKCJSYXRpZmllZCIpCgpUaGUgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgcGF5bG9hZCBw YXNzZWQgZnJvbSB0aGUgYmxvY2sgbGF5ZXIKdG8gZm9ybSBzaW1wbGUgY29weSBjb21tYW5kLiBT ZXQgdGhlIGRldmljZSBjb3B5IGxpbWl0cyB0byBxdWV1ZQpsaW1pdHMuCgpTaWduZWQtb2ZmLWJ5 OiBTZWx2YUt1bWFyIFMgPHNlbHZha3VtYS5zMUBzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTog S2FuY2hhbiBKb3NoaSA8am9zaGkua0BzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogTml0ZXNo IFNoZXR0eSA8bmouc2hldHR5QHNhbXN1bmcuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYXZpZXIgR29u esOhbGV6IDxqYXZpZXIuZ29uekBzYW1zdW5nLmNvbT4KLS0tCiBkcml2ZXJzL252bWUvaG9zdC9j b3JlLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL2xpbnV4L252bWUuaCAgICAgfCA0MyArKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwppbmRleCA5 YjZlYmViMjljY2EuLmQyMzUxNTZmZjU2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9udm1lL2hvc3Qv Y29yZS5jCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwpAQCAtNjQ3LDYgKzY0Nyw2NSBA QCBzdGF0aWMgaW5saW5lIHZvaWQgbnZtZV9zZXR1cF9mbHVzaChzdHJ1Y3QgbnZtZV9ucyAqbnMs CiAJY21uZC0+Y29tbW9uLm5zaWQgPSBjcHVfdG9fbGUzMihucy0+aGVhZC0+bnNfaWQpOwogfQog CitzdGF0aWMgaW5saW5lIGJsa19zdGF0dXNfdCBudm1lX3NldHVwX2NvcHkoc3RydWN0IG52bWVf bnMgKm5zLAorCSAgICAgICBzdHJ1Y3QgcmVxdWVzdCAqcmVxLCBzdHJ1Y3QgbnZtZV9jb21tYW5k ICpjbW5kKQoreworCXN0cnVjdCBudm1lX2N0cmwgKmN0cmwgPSBucy0+Y3RybDsKKwlzdHJ1Y3Qg bnZtZV9jb3B5X3JhbmdlICpyYW5nZSA9IE5VTEw7CisJc3RydWN0IGJsa19jb3B5X3BheWxvYWQg KnBheWxvYWQ7CisJdW5zaWduZWQgc2hvcnQgbnJfcmFuZ2UgPSAwOworCXUxNiBjb250cm9sID0g MCwgc3NybDsKKwl1MzIgZHNtZ210ID0gMDsKKwl1NjQgc2xiYTsKKwlpbnQgaTsKKworCXBheWxv YWQgPSBiaW9fZGF0YShyZXEtPmJpbyk7CisJbnJfcmFuZ2UgPSBwYXlsb2FkLT5jb3B5X3Jhbmdl OworCisJaWYgKHJlcS0+Y21kX2ZsYWdzICYgUkVRX0ZVQSkKKwkJY29udHJvbCB8PSBOVk1FX1JX X0ZVQTsKKworCWlmIChyZXEtPmNtZF9mbGFncyAmIFJFUV9GQUlMRkFTVF9ERVYpCisJCWNvbnRy b2wgfD0gTlZNRV9SV19MUjsKKworCWNtbmQtPmNvcHkub3Bjb2RlID0gbnZtZV9jbWRfY29weTsK KwljbW5kLT5jb3B5Lm5zaWQgPSBjcHVfdG9fbGUzMihucy0+aGVhZC0+bnNfaWQpOworCWNtbmQt PmNvcHkuc2RsYmEgPSBjcHVfdG9fbGU2NChibGtfcnFfcG9zKHJlcSkgPj4gKG5zLT5sYmFfc2hp ZnQgLSA5KSk7CisKKwlyYW5nZSA9IGttYWxsb2NfYXJyYXkobnJfcmFuZ2UsIHNpemVvZigqcmFu Z2UpLAorCQkJR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTik7CisJaWYgKCFyYW5nZSkKKwkJcmV0 dXJuIEJMS19TVFNfUkVTT1VSQ0U7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykg eworCQlzbGJhID0gcGF5bG9hZC0+cmFuZ2VbaV0uc3JjOworCQlzbGJhID0gc2xiYSA+PiAobnMt PmxiYV9zaGlmdCAtIDkpOworCisJCXNzcmwgPSBwYXlsb2FkLT5yYW5nZVtpXS5sZW47CisJCXNz cmwgPSBzc3JsID4+IChucy0+bGJhX3NoaWZ0IC0gOSk7CisKKwkJcmFuZ2VbaV0uc2xiYSA9IGNw dV90b19sZTY0KHNsYmEpOworCQlyYW5nZVtpXS5ubGIgPSBjcHVfdG9fbGUxNihzc3JsIC0gMSk7 CisJfQorCisJY21uZC0+Y29weS5ucl9yYW5nZSA9IG5yX3JhbmdlIC0gMTsKKworCXJlcS0+c3Bl Y2lhbF92ZWMuYnZfcGFnZSA9IHZpcnRfdG9fcGFnZShyYW5nZSk7CisJcmVxLT5zcGVjaWFsX3Zl Yy5idl9vZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShyYW5nZSk7CisJcmVxLT5zcGVjaWFsX3ZlYy5i dl9sZW4gPSBzaXplb2YoKnJhbmdlKSAqIG5yX3JhbmdlOworCXJlcS0+cnFfZmxhZ3MgfD0gUlFG X1NQRUNJQUxfUEFZTE9BRDsKKworCWlmIChjdHJsLT5ucl9zdHJlYW1zKQorCQludm1lX2Fzc2ln bl93cml0ZV9zdHJlYW0oY3RybCwgcmVxLCAmY29udHJvbCwgJmRzbWdtdCk7CisKKwkvL1RCRCBl bmQtdG8tZW5kCisKKwljbW5kLT5ydy5jb250cm9sID0gY3B1X3RvX2xlMTYoY29udHJvbCk7CisJ Y21uZC0+cncuZHNtZ210ID0gY3B1X3RvX2xlMzIoZHNtZ210KTsKKworCXJldHVybiBCTEtfU1RT X09LOworfQorCiBzdGF0aWMgYmxrX3N0YXR1c190IG52bWVfc2V0dXBfZGlzY2FyZChzdHJ1Y3Qg bnZtZV9ucyAqbnMsIHN0cnVjdCByZXF1ZXN0ICpyZXEsCiAJCXN0cnVjdCBudm1lX2NvbW1hbmQg KmNtbmQpCiB7CkBAIC04MjksNiArODg4LDkgQEAgYmxrX3N0YXR1c190IG52bWVfc2V0dXBfY21k KHN0cnVjdCBudm1lX25zICpucywgc3RydWN0IHJlcXVlc3QgKnJlcSwKIAljYXNlIFJFUV9PUF9E SVNDQVJEOgogCQlyZXQgPSBudm1lX3NldHVwX2Rpc2NhcmQobnMsIHJlcSwgY21kKTsKIAkJYnJl YWs7CisJY2FzZSBSRVFfT1BfQ09QWToKKwkJcmV0ID0gbnZtZV9zZXR1cF9jb3B5KG5zLCByZXEs IGNtZCk7CisJCWJyZWFrOwogCWNhc2UgUkVRX09QX1JFQUQ6CiAJCXJldCA9IG52bWVfc2V0dXBf cncobnMsIHJlcSwgY21kLCBudm1lX2NtZF9yZWFkKTsKIAkJYnJlYWs7CkBAIC0xODUwLDYgKzE5 MTIsMzEgQEAgc3RhdGljIHZvaWQgbnZtZV9jb25maWdfZGlzY2FyZChzdHJ1Y3QgZ2VuZGlzayAq ZGlzaywgc3RydWN0IG52bWVfbnMgKm5zKQogCQlibGtfcXVldWVfbWF4X3dyaXRlX3plcm9lc19z ZWN0b3JzKHF1ZXVlLCBVSU5UX01BWCk7CiB9CiAKK3N0YXRpYyB2b2lkIG52bWVfY29uZmlnX2Nv cHkoc3RydWN0IGdlbmRpc2sgKmRpc2ssIHN0cnVjdCBudm1lX25zICpucywKKwkJCQkgICAgICAg c3RydWN0IG52bWVfaWRfbnMgKmlkKQoreworCXN0cnVjdCBudm1lX2N0cmwgKmN0cmwgPSBucy0+ Y3RybDsKKwlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcXVldWUgPSBkaXNrLT5xdWV1ZTsKKworCWlm ICghKGN0cmwtPm9uY3MgJiBOVk1FX0NUUkxfT05DU19DT1BZKSkgeworCQlxdWV1ZS0+bGltaXRz LmNvcHlfb2ZmbG9hZCA9IDA7CisJCXF1ZXVlLT5saW1pdHMubWF4X2NvcHlfc2VjdG9ycyA9IDA7 CisJCXF1ZXVlLT5saW1pdHMubWF4X2NvcHlfcmFuZ2Vfc2VjdG9ycyA9IDA7CisJCXF1ZXVlLT5s aW1pdHMubWF4X2NvcHlfbnJfcmFuZ2VzID0gMDsKKwkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVF VUVfRkxBR19DT1BZLCBxdWV1ZSk7CisJCXJldHVybjsKKwl9CisKKwkvKiBzZXR0aW5nIGNvcHkg bGltaXRzICovCisJYmxrX3F1ZXVlX2ZsYWdfdGVzdF9hbmRfc2V0KFFVRVVFX0ZMQUdfQ09QWSwg cXVldWUpOworCXF1ZXVlLT5saW1pdHMuY29weV9vZmZsb2FkID0gMDsKKwlxdWV1ZS0+bGltaXRz Lm1heF9jb3B5X3NlY3RvcnMgPSBsZTY0X3RvX2NwdShpZC0+bWNsKSAqCisJCSgxIDw8IChucy0+ bGJhX3NoaWZ0IC0gOSkpOworCXF1ZXVlLT5saW1pdHMubWF4X2NvcHlfcmFuZ2Vfc2VjdG9ycyA9 IGxlMzJfdG9fY3B1KGlkLT5tc3NybCkgKgorCQkoMSA8PCAobnMtPmxiYV9zaGlmdCAtIDkpKTsK KwlxdWV1ZS0+bGltaXRzLm1heF9jb3B5X25yX3JhbmdlcyA9IGlkLT5tc3JjICsgMTsKK30KKwog c3RhdGljIHZvaWQgbnZtZV9jb25maWdfd3JpdGVfemVyb2VzKHN0cnVjdCBnZW5kaXNrICpkaXNr LCBzdHJ1Y3QgbnZtZV9ucyAqbnMpCiB7CiAJdTY0IG1heF9ibG9ja3M7CkBAIC0yMDQ1LDYgKzIx MzIsNyBAQCBzdGF0aWMgdm9pZCBudm1lX3VwZGF0ZV9kaXNrX2luZm8oc3RydWN0IGdlbmRpc2sg KmRpc2ssCiAJc2V0X2NhcGFjaXR5X2FuZF9ub3RpZnkoZGlzaywgY2FwYWNpdHkpOwogCiAJbnZt ZV9jb25maWdfZGlzY2FyZChkaXNrLCBucyk7CisJbnZtZV9jb25maWdfY29weShkaXNrLCBucywg aWQpOwogCW52bWVfY29uZmlnX3dyaXRlX3plcm9lcyhkaXNrLCBucyk7CiAKIAlpZiAoaWQtPm5z YXR0ciAmIE5WTUVfTlNfQVRUUl9STykKQEAgLTQ2MTYsNiArNDcwNCw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBfbnZtZV9jaGVja19zaXplKHZvaWQpCiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1 Y3QgbnZtZV9kb3dubG9hZF9maXJtd2FyZSkgIT0gNjQpOwogCUJVSUxEX0JVR19PTihzaXplb2Yo c3RydWN0IG52bWVfZm9ybWF0X2NtZCkgIT0gNjQpOwogCUJVSUxEX0JVR19PTihzaXplb2Yoc3Ry dWN0IG52bWVfZHNtX2NtZCkgIT0gNjQpOworCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IG52 bWVfY29weV9jb21tYW5kKSAhPSA2NCk7CiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZt ZV93cml0ZV96ZXJvZXNfY21kKSAhPSA2NCk7CiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qg bnZtZV9hYm9ydF9jbWQpICE9IDY0KTsKIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBudm1l X2dldF9sb2dfcGFnZV9jb21tYW5kKSAhPSA2NCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L252bWUuaCBiL2luY2x1ZGUvbGludXgvbnZtZS5oCmluZGV4IGQ5MjUzNTk5NzY4Ny4uMTFlZDcy YTIxNjRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L252bWUuaAorKysgYi9pbmNsdWRlL2xp bnV4L252bWUuaApAQCAtMjg5LDcgKzI4OSw3IEBAIHN0cnVjdCBudm1lX2lkX2N0cmwgewogCV9f dTgJCQludnNjYzsKIAlfX3U4CQkJbndwYzsKIAlfX2xlMTYJCQlhY3d1OwotCV9fdTgJCQlyc3Zk NTM0WzJdOworCV9fbGUxNgkJCW9jZnM7CiAJX19sZTMyCQkJc2dsczsKIAlfX2xlMzIJCQltbmFu OwogCV9fdTgJCQlyc3ZkNTQ0WzIyNF07CkBAIC0zMTQsNiArMzE0LDcgQEAgZW51bSB7CiAJTlZN RV9DVFJMX09OQ1NfV1JJVEVfWkVST0VTCQk9IDEgPDwgMywKIAlOVk1FX0NUUkxfT05DU19SRVNF UlZBVElPTlMJCT0gMSA8PCA1LAogCU5WTUVfQ1RSTF9PTkNTX1RJTUVTVEFNUAkJPSAxIDw8IDYs CisJTlZNRV9DVFJMX09OQ1NfQ09QWQkJCT0gMSA8PCA4LAogCU5WTUVfQ1RSTF9WV0NfUFJFU0VO VAkJCT0gMSA8PCAwLAogCU5WTUVfQ1RSTF9PQUNTX1NFQ19TVVBQICAgICAgICAgICAgICAgICA9 IDEgPDwgMCwKIAlOVk1FX0NUUkxfT0FDU19ESVJFQ1RJVkVTCQk9IDEgPDwgNSwKQEAgLTM2Miw3 ICszNjMsMTAgQEAgc3RydWN0IG52bWVfaWRfbnMgewogCV9fbGUxNgkJCW5wZGc7CiAJX19sZTE2 CQkJbnBkYTsKIAlfX2xlMTYJCQlub3dzOwotCV9fdTgJCQlyc3ZkNzRbMThdOworCV9fbGUxNgkJ CW1zc3JsOworCV9fbGUzMgkJCW1jbDsKKwlfX3U4CQkJbXNyYzsKKwlfX3U4CQkJcnN2ZDkxWzEx XTsKIAlfX2xlMzIJCQlhbmFncnBpZDsKIAlfX3U4CQkJcnN2ZDk2WzNdOwogCV9fdTgJCQluc2F0 dHI7CkBAIC02NzMsNiArNjc3LDcgQEAgZW51bSBudm1lX29wY29kZSB7CiAJbnZtZV9jbWRfcmVz dl9yZXBvcnQJPSAweDBlLAogCW52bWVfY21kX3Jlc3ZfYWNxdWlyZQk9IDB4MTEsCiAJbnZtZV9j bWRfcmVzdl9yZWxlYXNlCT0gMHgxNSwKKwludm1lX2NtZF9jb3B5CQk9IDB4MTksCiAJbnZtZV9j bWRfem9uZV9tZ210X3NlbmQJPSAweDc5LAogCW52bWVfY21kX3pvbmVfbWdtdF9yZWN2CT0gMHg3 YSwKIAludm1lX2NtZF96b25lX2FwcGVuZAk9IDB4N2QsCkBAIC02OTEsNyArNjk2LDggQEAgZW51 bSBudm1lX29wY29kZSB7CiAJCW52bWVfb3Bjb2RlX25hbWUobnZtZV9jbWRfcmVzdl9yZWdpc3Rl ciksCVwKIAkJbnZtZV9vcGNvZGVfbmFtZShudm1lX2NtZF9yZXN2X3JlcG9ydCksCQlcCiAJCW52 bWVfb3Bjb2RlX25hbWUobnZtZV9jbWRfcmVzdl9hY3F1aXJlKSwJXAotCQludm1lX29wY29kZV9u YW1lKG52bWVfY21kX3Jlc3ZfcmVsZWFzZSkpCisJCW52bWVfb3Bjb2RlX25hbWUobnZtZV9jbWRf cmVzdl9yZWxlYXNlKSwJXAorCQludm1lX29wY29kZV9uYW1lKG52bWVfY21kX2NvcHkpKQogCiAK IC8qCkBAIC04NjMsNiArODY5LDM2IEBAIHN0cnVjdCBudm1lX2RzbV9yYW5nZSB7CiAJX19sZTY0 CQkJc2xiYTsKIH07CiAKK3N0cnVjdCBudm1lX2NvcHlfY29tbWFuZCB7CisJX191OCAgICAgICAg ICAgICAgICAgICAgb3Bjb2RlOworCV9fdTggICAgICAgICAgICAgICAgICAgIGZsYWdzOworCV9f dTE2ICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfaWQ7CisJX19sZTMyICAgICAgICAgICAgICAg ICAgbnNpZDsKKwlfX3U2NCAgICAgICAgICAgICAgICAgICByc3ZkMjsKKwlfX2xlNjQgICAgICAg ICAgICAgICAgICBtZXRhZGF0YTsKKwl1bmlvbiBudm1lX2RhdGFfcHRyICAgICBkcHRyOworCV9f bGU2NCAgICAgICAgICAgICAgICAgIHNkbGJhOworCV9fdTgJCQlucl9yYW5nZTsKKwlfX3U4CQkJ cnN2ZDEyOworCV9fbGUxNiAgICAgICAgICAgICAgICAgIGNvbnRyb2w7CisJX19sZTE2ICAgICAg ICAgICAgICAgICAgcnN2ZDEzOworCV9fbGUxNgkJCWRzcGVjOworCV9fbGUzMiAgICAgICAgICAg ICAgICAgIGlsYnJ0OworCV9fbGUxNiAgICAgICAgICAgICAgICAgIGxiYXQ7CisJX19sZTE2ICAg ICAgICAgICAgICAgICAgbGJhdG07Cit9OworCitzdHJ1Y3QgbnZtZV9jb3B5X3JhbmdlIHsKKwlf X2xlNjQJCQlyc3ZkMDsKKwlfX2xlNjQJCQlzbGJhOworCV9fbGUxNgkJCW5sYjsKKwlfX2xlMTYJ CQlyc3ZkMTg7CisJX19sZTMyCQkJcnN2ZDIwOworCV9fbGUzMgkJCWVpbGJydDsKKwlfX2xlMTYJ CQllbGJhdDsKKwlfX2xlMTYJCQllbGJhdG07Cit9OworCiBzdHJ1Y3QgbnZtZV93cml0ZV96ZXJv ZXNfY21kIHsKIAlfX3U4CQkJb3Bjb2RlOwogCV9fdTgJCQlmbGFnczsKQEAgLTE0MDAsNiArMTQz Niw3IEBAIHN0cnVjdCBudm1lX2NvbW1hbmQgewogCQlzdHJ1Y3QgbnZtZV9kb3dubG9hZF9maXJt d2FyZSBkbGZ3OwogCQlzdHJ1Y3QgbnZtZV9mb3JtYXRfY21kIGZvcm1hdDsKIAkJc3RydWN0IG52 bWVfZHNtX2NtZCBkc207CisJCXN0cnVjdCBudm1lX2NvcHlfY29tbWFuZCBjb3B5OwogCQlzdHJ1 Y3QgbnZtZV93cml0ZV96ZXJvZXNfY21kIHdyaXRlX3plcm9lczsKIAkJc3RydWN0IG52bWVfem9u ZV9tZ210X3NlbmRfY21kIHptczsKIAkJc3RydWN0IG52bWVfem9uZV9tZ210X3JlY3ZfY21kIHpt cjsKLS0gCjIuMjUuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkxpbnV4LW52bWUgbWFpbGluZyBsaXN0CkxpbnV4LW52bWVAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52 bWUK 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=-13.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 B05E0C1B0D8 for ; Mon, 14 Dec 2020 11:00:55 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F01AF22BEF for ; Mon, 14 Dec 2020 11:00:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F01AF22BEF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=dm-devel-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-274-TZHP5dnGP6icetqMKbWyRA-1; Mon, 14 Dec 2020 06:00:51 -0500 X-MC-Unique: TZHP5dnGP6icetqMKbWyRA-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 37D7D107ACF8; Mon, 14 Dec 2020 11:00:47 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 13D442BCD2; Mon, 14 Dec 2020 11:00:47 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D6EF31809CA1; Mon, 14 Dec 2020 11:00:46 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 0BBEvdbp008670 for ; Fri, 11 Dec 2020 09:57:40 -0500 Received: by smtp.corp.redhat.com (Postfix) id C555D112C08B; Fri, 11 Dec 2020 14:57:39 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C0B3C1043982 for ; Fri, 11 Dec 2020 14:57:37 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 88617800157 for ; Fri, 11 Dec 2020 14:57:37 +0000 (UTC) Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-438-j_JgE9NaOwGy2qDFwHQEsg-1; Fri, 11 Dec 2020 09:57:33 -0500 X-MC-Unique: j_JgE9NaOwGy2qDFwHQEsg-1 Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20201211145730epoutp02a28346f97e0b759f2b637249c77e243f~PsWeex0c61723917239epoutp02M for ; Fri, 11 Dec 2020 14:57:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20201211145730epoutp02a28346f97e0b759f2b637249c77e243f~PsWeex0c61723917239epoutp02M Received: from epsmges5p2new.samsung.com (unknown [182.195.42.74]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20201211145729epcas5p32c66a0996a1c53b24668c1be9d615611~PsWdpWNVp2218722187epcas5p35; Fri, 11 Dec 2020 14:57:29 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 0E.00.50652.9D883DF5; Fri, 11 Dec 2020 23:57:29 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c~PrdW6fQb60154201542epcas5p1m; Fri, 11 Dec 2020 13:52:05 +0000 (GMT) Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20201211135205epsmtrp2fe2f38d12e5212d5f5464f91ae3d27ce~PrdW5WhCB0569205692epsmtrp2S; Fri, 11 Dec 2020 13:52:05 +0000 (GMT) X-AuditID: b6c32a4a-6b3ff7000000c5dc-24-5fd388d96153 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id D5.71.08745.58973DF5; Fri, 11 Dec 2020 22:52:05 +0900 (KST) Received: from localhost.localdomain (unknown [107.110.206.5]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20201211135202epsmtip26706456da2bdcb8021663f93a8476308~PrdTz_pmh2927029270epsmtip2H; Fri, 11 Dec 2020 13:52:02 +0000 (GMT) From: SelvaKumar S To: linux-nvme@lists.infradead.org Date: Fri, 11 Dec 2020 19:21:39 +0530 Message-Id: <20201211135139.49232-3-selvakuma.s1@samsung.com> In-Reply-To: <20201211135139.49232-1-selvakuma.s1@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Sf0wTZxjH996dd9eykgORvaJzS5PpcLPIhtvLVFyyut00S7YRFkKywbme hQmla+lQt2hxY0LZUJg/YpFhCMFRfzBKB11piSlzhbpftCCipYFAySbR8mM4tCvO9lj0v8/7 PJ8n3zxPXhqPLyOT6AJVCa9RcYVSUkx09CSv2zBc4c3deOymFJ0bOUKiE9N3cVR++A6GHLfr liF7Yy2GWs5dxtC4b45CYYMfQ5fv3yJRrfMqQI7rzyGv7TSJGpoDFKoaspLorGsRQzUVgxjq CDXgaOBYI44uTgUJNBocotDUQh+JvmybB68mst6BneyPxhGK/d3fRrDeX3Ws2VRJsu1NB9mu YT3JzgSuE2ywe5Bkqy0mwLZf+ZSdM69hD1+qwt6W5Ii3KPjCgk94TUpGnjjfXbmIqQ9t3mua byX0wC0zAJqGTBoc/y3HAER0PNMFYMD9sgGIH/AsgKNlnaTwmANw2GAgI1ZkwOlvXmrYACz/ ZuahZZjspiIWyWyAV5vMRIQTGCkMtx4iIhLODOPQc282Ki1n0qFvsR6PMME8Ayd/MkVZwmyF s+FbQIh7Cp7y/BP1RUwGrLb4lpw42HdqIhqAP3A+/6EOjwRApkEEOxf6CGFYDmv1dbjAy+FN l4USOAnO3XYs7VMKJytPYALrAawOlgq8Dfbbw1jkSDiTDFttKUL5SXjcfRETcmPh16GJpVEJ tH47gQk3XQvdnS8J5dVwusdGCmUWmnoLhFvVADj4rx0/Cp42PrKN8ZFtjA+DzwDcBFbyam2R ktduUr+g4ktlWq5Iq1MpZR8WF5lB9Jeu32EFY6PTMifAaOAEkMalCZLQQW9uvETB7dvPa4pz NbpCXusEq2hC+oREuvDLB/GMkivh9/C8mtf838VoUZIe2+S50NC9RX1j+zrvAYVoJs19PDSz 2i2t/1g/mHbh2TWnA/tZlrixKvh44ldvDr2/dYe8y+/Clu1tst4L71LJUSoI5cWUvqYjuQRv ieWkD1WfrTc2iRXZno78liMpoqy3qN7dhrt/1FzZXtlqk42hk4kqsrw/tJn++e8Vne8p+6mx DCL9szvv6pMbXR5caS+OIb+fv1RxLfuv4lDewPl02XdDxt1fOP58TNdvHW/L0r1jtTp8r6S/ qK4508K8zuka07btS86QfzRlt1SF3jgwYnbZs+/74q4p4pozM4E1c8WkX5O6MqZ3Z1mKbuP5 57upnizPnp6OnAAXuyt2bbtcSmjzudT1uEbL/Qec0lPFFAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDIsWRmVeSWpSXmKPExsWy7bCSvG5r5eV4g8UnhC1W3+1ns5j24Sez RWv7NyaLve9ms1rsWTSJyWLl6qNMFo/vfGa3+Nt1j8ni6P+3bBaTDl1jtNh7S9vi8q45bBbz lz1lt+i+voPNYvnxf0wWEzuuMlls+z2f2eLKlEXMFutev2exePD+OrvF6x8n2SzaNn5ldBDz uHzF22PnrLvsHufvbWTxuHy21GPTqk42j81L6j1232xg8/j49BaLx/t9V9k8+rasYvTYfLra 4/MmOY/2A91MAbxRXDYpqTmZZalF+nYJXBmnOv8xFTRZV6z6up6lgfGUXhcjJ4eEgInEoXvL 2LoYuTiEBHYwSvyZ1cYOkZCRWHu3kw3CFpZY+e85O0TRR0aJuefPMYIk2AR0Ja4t2cQCYosI KEn8Xd/EAlLELPCZWWL+rjawhLCApcSdf3OZQWwWAVWJZ0dWgdm8ArYSn/6+ZYTYIC8x89J3 sM2cAnYSfVvugNUIAdXcP9nPClEvKHFy5hOgmRxAC9Ql1s8TAgkzA7U2b53NPIFRcBaSqlkI VbOQVC1gZF7FKJlaUJybnltsWGCUl1quV5yYW1yal66XnJ+7iREc4VpaOxj3rPqgd4iRiYPx EKMEB7OSCK8sy6V4Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4rwXuk7GCwmkJ5akZqemFqQWwWSZ ODilGpiWNjy2vW/y8cV5nRVPNrSZ560yKDywskhy0uv/BYdXv0vUTr/6/K/CsUUu79lzE9v2 76nSXf3e6XjQXm8hqSMzpGofOoqG8yT0sj7/fP7W/RtTb16rduk/9sY8pmKzYC+znGKtHP+k I3tjbKdZyb8Qvpyd86twxbO/OryTjXqzTNK2ur/YHx59OiLjg3+53T6LI/+uq+zOn+nrJDLJ 0b/Pndsp4vH0fcfLpu38dzPlzvb5DSqOW/57tKUXl9bon4/s5BBJvz9t/tHVna/1rt9Z+rvm 2KaPoTHaur3yP+urXBe/3ayyZP+7QIevHV+2trsttjeNuucs/lju4Z9/Qi4mb17vmnDbiedK iyRL37I2JZbijERDLeai4kQAJ1oB6F8DAAA= X-CMS-MailID: 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P X-CMS-RootMailID: 20201211135205epcas5p1f1696075e1354f0f4c7af04b950d514c References: <20201211135139.49232-1-selvakuma.s1@samsung.com> X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 0BBEvdbp008670 X-loop: dm-devel@redhat.com X-Mailman-Approved-At: Mon, 14 Dec 2020 06:00:28 -0500 Cc: axboe@kernel.dk, damien.lemoal@wdc.com, SelvaKumar S , sagi@grimberg.me, linux-scsi@vger.kernel.org, selvajove@gmail.com, Johannes.Thumshirn@wdc.com, snitzer@redhat.com, linux-kernel@vger.kernel.org, nj.shetty@samsung.com, linux-block@vger.kernel.org, dm-devel@redhat.com, mpatocka@redhat.com, joshi.k@samsung.com, martin.petersen@oracle.com, kbusch@kernel.org, javier.gonz@samsung.com, hch@lst.de, bvanassche@acm.org Subject: [dm-devel] [RFC PATCH v3 2/2] nvme: add simple copy support X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dm-devel-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yICBUUCA0MDY1YSAoIlNpbXBsZSBDb3B5IENvbW1hbmQiKSwgdjIwMjAu MDUuMDQKKCJSYXRpZmllZCIpCgpUaGUgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgcGF5bG9hZCBw YXNzZWQgZnJvbSB0aGUgYmxvY2sgbGF5ZXIKdG8gZm9ybSBzaW1wbGUgY29weSBjb21tYW5kLiBT ZXQgdGhlIGRldmljZSBjb3B5IGxpbWl0cyB0byBxdWV1ZQpsaW1pdHMuCgpTaWduZWQtb2ZmLWJ5 OiBTZWx2YUt1bWFyIFMgPHNlbHZha3VtYS5zMUBzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTog S2FuY2hhbiBKb3NoaSA8am9zaGkua0BzYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogTml0ZXNo IFNoZXR0eSA8bmouc2hldHR5QHNhbXN1bmcuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYXZpZXIgR29u esOhbGV6IDxqYXZpZXIuZ29uekBzYW1zdW5nLmNvbT4KLS0tCiBkcml2ZXJzL252bWUvaG9zdC9j b3JlLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL2xpbnV4L252bWUuaCAgICAgfCA0MyArKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwppbmRleCA5 YjZlYmViMjljY2EuLmQyMzUxNTZmZjU2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9udm1lL2hvc3Qv Y29yZS5jCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwpAQCAtNjQ3LDYgKzY0Nyw2NSBA QCBzdGF0aWMgaW5saW5lIHZvaWQgbnZtZV9zZXR1cF9mbHVzaChzdHJ1Y3QgbnZtZV9ucyAqbnMs CiAJY21uZC0+Y29tbW9uLm5zaWQgPSBjcHVfdG9fbGUzMihucy0+aGVhZC0+bnNfaWQpOwogfQog CitzdGF0aWMgaW5saW5lIGJsa19zdGF0dXNfdCBudm1lX3NldHVwX2NvcHkoc3RydWN0IG52bWVf bnMgKm5zLAorCSAgICAgICBzdHJ1Y3QgcmVxdWVzdCAqcmVxLCBzdHJ1Y3QgbnZtZV9jb21tYW5k ICpjbW5kKQoreworCXN0cnVjdCBudm1lX2N0cmwgKmN0cmwgPSBucy0+Y3RybDsKKwlzdHJ1Y3Qg bnZtZV9jb3B5X3JhbmdlICpyYW5nZSA9IE5VTEw7CisJc3RydWN0IGJsa19jb3B5X3BheWxvYWQg KnBheWxvYWQ7CisJdW5zaWduZWQgc2hvcnQgbnJfcmFuZ2UgPSAwOworCXUxNiBjb250cm9sID0g MCwgc3NybDsKKwl1MzIgZHNtZ210ID0gMDsKKwl1NjQgc2xiYTsKKwlpbnQgaTsKKworCXBheWxv YWQgPSBiaW9fZGF0YShyZXEtPmJpbyk7CisJbnJfcmFuZ2UgPSBwYXlsb2FkLT5jb3B5X3Jhbmdl OworCisJaWYgKHJlcS0+Y21kX2ZsYWdzICYgUkVRX0ZVQSkKKwkJY29udHJvbCB8PSBOVk1FX1JX X0ZVQTsKKworCWlmIChyZXEtPmNtZF9mbGFncyAmIFJFUV9GQUlMRkFTVF9ERVYpCisJCWNvbnRy b2wgfD0gTlZNRV9SV19MUjsKKworCWNtbmQtPmNvcHkub3Bjb2RlID0gbnZtZV9jbWRfY29weTsK KwljbW5kLT5jb3B5Lm5zaWQgPSBjcHVfdG9fbGUzMihucy0+aGVhZC0+bnNfaWQpOworCWNtbmQt PmNvcHkuc2RsYmEgPSBjcHVfdG9fbGU2NChibGtfcnFfcG9zKHJlcSkgPj4gKG5zLT5sYmFfc2hp ZnQgLSA5KSk7CisKKwlyYW5nZSA9IGttYWxsb2NfYXJyYXkobnJfcmFuZ2UsIHNpemVvZigqcmFu Z2UpLAorCQkJR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTik7CisJaWYgKCFyYW5nZSkKKwkJcmV0 dXJuIEJMS19TVFNfUkVTT1VSQ0U7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykg eworCQlzbGJhID0gcGF5bG9hZC0+cmFuZ2VbaV0uc3JjOworCQlzbGJhID0gc2xiYSA+PiAobnMt PmxiYV9zaGlmdCAtIDkpOworCisJCXNzcmwgPSBwYXlsb2FkLT5yYW5nZVtpXS5sZW47CisJCXNz cmwgPSBzc3JsID4+IChucy0+bGJhX3NoaWZ0IC0gOSk7CisKKwkJcmFuZ2VbaV0uc2xiYSA9IGNw dV90b19sZTY0KHNsYmEpOworCQlyYW5nZVtpXS5ubGIgPSBjcHVfdG9fbGUxNihzc3JsIC0gMSk7 CisJfQorCisJY21uZC0+Y29weS5ucl9yYW5nZSA9IG5yX3JhbmdlIC0gMTsKKworCXJlcS0+c3Bl Y2lhbF92ZWMuYnZfcGFnZSA9IHZpcnRfdG9fcGFnZShyYW5nZSk7CisJcmVxLT5zcGVjaWFsX3Zl Yy5idl9vZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShyYW5nZSk7CisJcmVxLT5zcGVjaWFsX3ZlYy5i dl9sZW4gPSBzaXplb2YoKnJhbmdlKSAqIG5yX3JhbmdlOworCXJlcS0+cnFfZmxhZ3MgfD0gUlFG X1NQRUNJQUxfUEFZTE9BRDsKKworCWlmIChjdHJsLT5ucl9zdHJlYW1zKQorCQludm1lX2Fzc2ln bl93cml0ZV9zdHJlYW0oY3RybCwgcmVxLCAmY29udHJvbCwgJmRzbWdtdCk7CisKKwkvL1RCRCBl bmQtdG8tZW5kCisKKwljbW5kLT5ydy5jb250cm9sID0gY3B1X3RvX2xlMTYoY29udHJvbCk7CisJ Y21uZC0+cncuZHNtZ210ID0gY3B1X3RvX2xlMzIoZHNtZ210KTsKKworCXJldHVybiBCTEtfU1RT X09LOworfQorCiBzdGF0aWMgYmxrX3N0YXR1c190IG52bWVfc2V0dXBfZGlzY2FyZChzdHJ1Y3Qg bnZtZV9ucyAqbnMsIHN0cnVjdCByZXF1ZXN0ICpyZXEsCiAJCXN0cnVjdCBudm1lX2NvbW1hbmQg KmNtbmQpCiB7CkBAIC04MjksNiArODg4LDkgQEAgYmxrX3N0YXR1c190IG52bWVfc2V0dXBfY21k KHN0cnVjdCBudm1lX25zICpucywgc3RydWN0IHJlcXVlc3QgKnJlcSwKIAljYXNlIFJFUV9PUF9E SVNDQVJEOgogCQlyZXQgPSBudm1lX3NldHVwX2Rpc2NhcmQobnMsIHJlcSwgY21kKTsKIAkJYnJl YWs7CisJY2FzZSBSRVFfT1BfQ09QWToKKwkJcmV0ID0gbnZtZV9zZXR1cF9jb3B5KG5zLCByZXEs IGNtZCk7CisJCWJyZWFrOwogCWNhc2UgUkVRX09QX1JFQUQ6CiAJCXJldCA9IG52bWVfc2V0dXBf cncobnMsIHJlcSwgY21kLCBudm1lX2NtZF9yZWFkKTsKIAkJYnJlYWs7CkBAIC0xODUwLDYgKzE5 MTIsMzEgQEAgc3RhdGljIHZvaWQgbnZtZV9jb25maWdfZGlzY2FyZChzdHJ1Y3QgZ2VuZGlzayAq ZGlzaywgc3RydWN0IG52bWVfbnMgKm5zKQogCQlibGtfcXVldWVfbWF4X3dyaXRlX3plcm9lc19z ZWN0b3JzKHF1ZXVlLCBVSU5UX01BWCk7CiB9CiAKK3N0YXRpYyB2b2lkIG52bWVfY29uZmlnX2Nv cHkoc3RydWN0IGdlbmRpc2sgKmRpc2ssIHN0cnVjdCBudm1lX25zICpucywKKwkJCQkgICAgICAg c3RydWN0IG52bWVfaWRfbnMgKmlkKQoreworCXN0cnVjdCBudm1lX2N0cmwgKmN0cmwgPSBucy0+ Y3RybDsKKwlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcXVldWUgPSBkaXNrLT5xdWV1ZTsKKworCWlm ICghKGN0cmwtPm9uY3MgJiBOVk1FX0NUUkxfT05DU19DT1BZKSkgeworCQlxdWV1ZS0+bGltaXRz LmNvcHlfb2ZmbG9hZCA9IDA7CisJCXF1ZXVlLT5saW1pdHMubWF4X2NvcHlfc2VjdG9ycyA9IDA7 CisJCXF1ZXVlLT5saW1pdHMubWF4X2NvcHlfcmFuZ2Vfc2VjdG9ycyA9IDA7CisJCXF1ZXVlLT5s aW1pdHMubWF4X2NvcHlfbnJfcmFuZ2VzID0gMDsKKwkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVF VUVfRkxBR19DT1BZLCBxdWV1ZSk7CisJCXJldHVybjsKKwl9CisKKwkvKiBzZXR0aW5nIGNvcHkg bGltaXRzICovCisJYmxrX3F1ZXVlX2ZsYWdfdGVzdF9hbmRfc2V0KFFVRVVFX0ZMQUdfQ09QWSwg cXVldWUpOworCXF1ZXVlLT5saW1pdHMuY29weV9vZmZsb2FkID0gMDsKKwlxdWV1ZS0+bGltaXRz Lm1heF9jb3B5X3NlY3RvcnMgPSBsZTY0X3RvX2NwdShpZC0+bWNsKSAqCisJCSgxIDw8IChucy0+ bGJhX3NoaWZ0IC0gOSkpOworCXF1ZXVlLT5saW1pdHMubWF4X2NvcHlfcmFuZ2Vfc2VjdG9ycyA9 IGxlMzJfdG9fY3B1KGlkLT5tc3NybCkgKgorCQkoMSA8PCAobnMtPmxiYV9zaGlmdCAtIDkpKTsK KwlxdWV1ZS0+bGltaXRzLm1heF9jb3B5X25yX3JhbmdlcyA9IGlkLT5tc3JjICsgMTsKK30KKwog c3RhdGljIHZvaWQgbnZtZV9jb25maWdfd3JpdGVfemVyb2VzKHN0cnVjdCBnZW5kaXNrICpkaXNr LCBzdHJ1Y3QgbnZtZV9ucyAqbnMpCiB7CiAJdTY0IG1heF9ibG9ja3M7CkBAIC0yMDQ1LDYgKzIx MzIsNyBAQCBzdGF0aWMgdm9pZCBudm1lX3VwZGF0ZV9kaXNrX2luZm8oc3RydWN0IGdlbmRpc2sg KmRpc2ssCiAJc2V0X2NhcGFjaXR5X2FuZF9ub3RpZnkoZGlzaywgY2FwYWNpdHkpOwogCiAJbnZt ZV9jb25maWdfZGlzY2FyZChkaXNrLCBucyk7CisJbnZtZV9jb25maWdfY29weShkaXNrLCBucywg aWQpOwogCW52bWVfY29uZmlnX3dyaXRlX3plcm9lcyhkaXNrLCBucyk7CiAKIAlpZiAoaWQtPm5z YXR0ciAmIE5WTUVfTlNfQVRUUl9STykKQEAgLTQ2MTYsNiArNDcwNCw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBfbnZtZV9jaGVja19zaXplKHZvaWQpCiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1 Y3QgbnZtZV9kb3dubG9hZF9maXJtd2FyZSkgIT0gNjQpOwogCUJVSUxEX0JVR19PTihzaXplb2Yo c3RydWN0IG52bWVfZm9ybWF0X2NtZCkgIT0gNjQpOwogCUJVSUxEX0JVR19PTihzaXplb2Yoc3Ry dWN0IG52bWVfZHNtX2NtZCkgIT0gNjQpOworCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IG52 bWVfY29weV9jb21tYW5kKSAhPSA2NCk7CiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZt ZV93cml0ZV96ZXJvZXNfY21kKSAhPSA2NCk7CiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qg bnZtZV9hYm9ydF9jbWQpICE9IDY0KTsKIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBudm1l X2dldF9sb2dfcGFnZV9jb21tYW5kKSAhPSA2NCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L252bWUuaCBiL2luY2x1ZGUvbGludXgvbnZtZS5oCmluZGV4IGQ5MjUzNTk5NzY4Ny4uMTFlZDcy YTIxNjRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L252bWUuaAorKysgYi9pbmNsdWRlL2xp bnV4L252bWUuaApAQCAtMjg5LDcgKzI4OSw3IEBAIHN0cnVjdCBudm1lX2lkX2N0cmwgewogCV9f dTgJCQludnNjYzsKIAlfX3U4CQkJbndwYzsKIAlfX2xlMTYJCQlhY3d1OwotCV9fdTgJCQlyc3Zk NTM0WzJdOworCV9fbGUxNgkJCW9jZnM7CiAJX19sZTMyCQkJc2dsczsKIAlfX2xlMzIJCQltbmFu OwogCV9fdTgJCQlyc3ZkNTQ0WzIyNF07CkBAIC0zMTQsNiArMzE0LDcgQEAgZW51bSB7CiAJTlZN RV9DVFJMX09OQ1NfV1JJVEVfWkVST0VTCQk9IDEgPDwgMywKIAlOVk1FX0NUUkxfT05DU19SRVNF UlZBVElPTlMJCT0gMSA8PCA1LAogCU5WTUVfQ1RSTF9PTkNTX1RJTUVTVEFNUAkJPSAxIDw8IDYs CisJTlZNRV9DVFJMX09OQ1NfQ09QWQkJCT0gMSA8PCA4LAogCU5WTUVfQ1RSTF9WV0NfUFJFU0VO VAkJCT0gMSA8PCAwLAogCU5WTUVfQ1RSTF9PQUNTX1NFQ19TVVBQICAgICAgICAgICAgICAgICA9 IDEgPDwgMCwKIAlOVk1FX0NUUkxfT0FDU19ESVJFQ1RJVkVTCQk9IDEgPDwgNSwKQEAgLTM2Miw3 ICszNjMsMTAgQEAgc3RydWN0IG52bWVfaWRfbnMgewogCV9fbGUxNgkJCW5wZGc7CiAJX19sZTE2 CQkJbnBkYTsKIAlfX2xlMTYJCQlub3dzOwotCV9fdTgJCQlyc3ZkNzRbMThdOworCV9fbGUxNgkJ CW1zc3JsOworCV9fbGUzMgkJCW1jbDsKKwlfX3U4CQkJbXNyYzsKKwlfX3U4CQkJcnN2ZDkxWzEx XTsKIAlfX2xlMzIJCQlhbmFncnBpZDsKIAlfX3U4CQkJcnN2ZDk2WzNdOwogCV9fdTgJCQluc2F0 dHI7CkBAIC02NzMsNiArNjc3LDcgQEAgZW51bSBudm1lX29wY29kZSB7CiAJbnZtZV9jbWRfcmVz dl9yZXBvcnQJPSAweDBlLAogCW52bWVfY21kX3Jlc3ZfYWNxdWlyZQk9IDB4MTEsCiAJbnZtZV9j bWRfcmVzdl9yZWxlYXNlCT0gMHgxNSwKKwludm1lX2NtZF9jb3B5CQk9IDB4MTksCiAJbnZtZV9j bWRfem9uZV9tZ210X3NlbmQJPSAweDc5LAogCW52bWVfY21kX3pvbmVfbWdtdF9yZWN2CT0gMHg3 YSwKIAludm1lX2NtZF96b25lX2FwcGVuZAk9IDB4N2QsCkBAIC02OTEsNyArNjk2LDggQEAgZW51 bSBudm1lX29wY29kZSB7CiAJCW52bWVfb3Bjb2RlX25hbWUobnZtZV9jbWRfcmVzdl9yZWdpc3Rl ciksCVwKIAkJbnZtZV9vcGNvZGVfbmFtZShudm1lX2NtZF9yZXN2X3JlcG9ydCksCQlcCiAJCW52 bWVfb3Bjb2RlX25hbWUobnZtZV9jbWRfcmVzdl9hY3F1aXJlKSwJXAotCQludm1lX29wY29kZV9u YW1lKG52bWVfY21kX3Jlc3ZfcmVsZWFzZSkpCisJCW52bWVfb3Bjb2RlX25hbWUobnZtZV9jbWRf cmVzdl9yZWxlYXNlKSwJXAorCQludm1lX29wY29kZV9uYW1lKG52bWVfY21kX2NvcHkpKQogCiAK IC8qCkBAIC04NjMsNiArODY5LDM2IEBAIHN0cnVjdCBudm1lX2RzbV9yYW5nZSB7CiAJX19sZTY0 CQkJc2xiYTsKIH07CiAKK3N0cnVjdCBudm1lX2NvcHlfY29tbWFuZCB7CisJX191OCAgICAgICAg ICAgICAgICAgICAgb3Bjb2RlOworCV9fdTggICAgICAgICAgICAgICAgICAgIGZsYWdzOworCV9f dTE2ICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfaWQ7CisJX19sZTMyICAgICAgICAgICAgICAg ICAgbnNpZDsKKwlfX3U2NCAgICAgICAgICAgICAgICAgICByc3ZkMjsKKwlfX2xlNjQgICAgICAg ICAgICAgICAgICBtZXRhZGF0YTsKKwl1bmlvbiBudm1lX2RhdGFfcHRyICAgICBkcHRyOworCV9f bGU2NCAgICAgICAgICAgICAgICAgIHNkbGJhOworCV9fdTgJCQlucl9yYW5nZTsKKwlfX3U4CQkJ cnN2ZDEyOworCV9fbGUxNiAgICAgICAgICAgICAgICAgIGNvbnRyb2w7CisJX19sZTE2ICAgICAg ICAgICAgICAgICAgcnN2ZDEzOworCV9fbGUxNgkJCWRzcGVjOworCV9fbGUzMiAgICAgICAgICAg ICAgICAgIGlsYnJ0OworCV9fbGUxNiAgICAgICAgICAgICAgICAgIGxiYXQ7CisJX19sZTE2ICAg ICAgICAgICAgICAgICAgbGJhdG07Cit9OworCitzdHJ1Y3QgbnZtZV9jb3B5X3JhbmdlIHsKKwlf X2xlNjQJCQlyc3ZkMDsKKwlfX2xlNjQJCQlzbGJhOworCV9fbGUxNgkJCW5sYjsKKwlfX2xlMTYJ CQlyc3ZkMTg7CisJX19sZTMyCQkJcnN2ZDIwOworCV9fbGUzMgkJCWVpbGJydDsKKwlfX2xlMTYJ CQllbGJhdDsKKwlfX2xlMTYJCQllbGJhdG07Cit9OworCiBzdHJ1Y3QgbnZtZV93cml0ZV96ZXJv ZXNfY21kIHsKIAlfX3U4CQkJb3Bjb2RlOwogCV9fdTgJCQlmbGFnczsKQEAgLTE0MDAsNiArMTQz Niw3IEBAIHN0cnVjdCBudm1lX2NvbW1hbmQgewogCQlzdHJ1Y3QgbnZtZV9kb3dubG9hZF9maXJt d2FyZSBkbGZ3OwogCQlzdHJ1Y3QgbnZtZV9mb3JtYXRfY21kIGZvcm1hdDsKIAkJc3RydWN0IG52 bWVfZHNtX2NtZCBkc207CisJCXN0cnVjdCBudm1lX2NvcHlfY29tbWFuZCBjb3B5OwogCQlzdHJ1 Y3QgbnZtZV93cml0ZV96ZXJvZXNfY21kIHdyaXRlX3plcm9lczsKIAkJc3RydWN0IG52bWVfem9u ZV9tZ210X3NlbmRfY21kIHptczsKIAkJc3RydWN0IG52bWVfem9uZV9tZ210X3JlY3ZfY21kIHpt cjsKLS0gCjIuMjUuMQoKCi0tCmRtLWRldmVsIG1haWxpbmcgbGlzdApkbS1kZXZlbEByZWRoYXQu Y29tCmh0dHBzOi8vd3d3LnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9kbS1kZXZlbA==