From patchwork Wed Oct 16 11:29:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836583 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6306A208209 for ; Wed, 16 Oct 2024 12:36:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082178; cv=none; b=X/+cJJI7VMbdEUg5/WUu/NXb+ik3GQEPqDR7XWX+UH+R9iinO0o8ek9Asd4uOEQSkf5wGYHtJ9JhyOuErriv/Hhwiplf9peT32vrmz/Asx8GJXh2bM90Zs72CAQzbMQ0PI978rTOV2arLGwYQva2oukhBI5WPH7d1b7fEBMdUi0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082178; c=relaxed/simple; bh=JYbAqvDZtvFYF0NPlNV17yTtG4+nrjd64NKUzbtHnvY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=Vj6ktRQa/vQHEU8XuVRqJ3qd48uDP8waWm06e4o27txZjEgtjSxgHHMjYaKSvIcPNvVfp07oVwIoEzdp5yUfL4JbHsalJU0uP+CRJQ/ghMqJLWHQHZ/REZoEH4/ur26s0lc9rTgYhUylwHbLtEBuwEuj8ZyqHNGhMFOXGoHblEo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=OMTLVxwy; arc=none smtp.client-ip=203.254.224.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="OMTLVxwy" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20241016123608epoutp0438273c5bd5e0fe30b5ab6194b432029c~_7xIjDJs21871018710epoutp04Q for ; Wed, 16 Oct 2024 12:36:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20241016123608epoutp0438273c5bd5e0fe30b5ab6194b432029c~_7xIjDJs21871018710epoutp04Q DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082168; bh=mT4K+F2A/kIqOZdL/ZLie0ICYJwUxyCwdVtyep16tb0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OMTLVxwyU5URm1/JIDINnCqM1xOWygQkKhO2HhC3iZQ3MW33HWAQ3ZwtmhMX8beZr bGyJPcjnUTBkmf+Xl60Iub9qGpbEAEHxK26T2S37REqnFua2IttNpi+sMPztKrEE6k fiMynzKn8kdLeE1g706ptaky+28MaF6R9hsVPbck= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20241016123607epcas5p162635bbc7397511c995cc07acfa59885~_7xHsMBzi2383423834epcas5p1A; Wed, 16 Oct 2024 12:36:07 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.181]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4XT9S43ZR7z4x9Ps; Wed, 16 Oct 2024 12:36:04 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 88.F7.09420.433BF076; Wed, 16 Oct 2024 21:36:04 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20241016113724epcas5p191ccce0f473274fc95934956662fc769~_692-Rjvd0520505205epcas5p1c; Wed, 16 Oct 2024 11:37:24 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20241016113724epsmtrp14aee8d06e2ce78c541c7ba97a7ba58b8~_692_Xuqb0254402544epsmtrp1W; Wed, 16 Oct 2024 11:37:24 +0000 (GMT) X-AuditID: b6c32a49-0d5ff700000024cc-8c-670fb334c4bf Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id F9.9A.07371.475AF076; Wed, 16 Oct 2024 20:37:24 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113722epsmtip137a8c8fd22cb33714a53dfc2f84ee787~_691Clh-33048330483epsmtip1f; Wed, 16 Oct 2024 11:37:22 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta Subject: [PATCH v4 01/11] block: define set of integrity flags to be inherited by cloned bip Date: Wed, 16 Oct 2024 16:59:02 +0530 Message-Id: <20241016112912.63542-2-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPJsWRmVeSWpSXmKPExsWy7bCmhq7JZv50g7efxC0+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxmHToGqPF9jNLmS323tK2mL/sKbtF9/UdbBbL j/9jsjg/aw67A5/Hzll32T0uny312LSqk81j85J6j903G9g8Pj69xeLRt2UVo8fm09UenzfJ BXBGZdtkpCampBYppOYl56dk5qXbKnkHxzvHm5oZGOoaWlqYKynkJeam2iq5+AToumXmAF2u pFCWmFMKFApILC5W0rezKcovLUlVyMgvLrFVSi1IySkwKdArTswtLs1L18tLLbEyNDAwMgUq TMjOeDLVrmAJd8W8Vr0GxqOcXYycHBICJhJ/n+9k62Lk4hAS2M0osff+WSYI5xOjRMvtf1CZ b4wSZ5b0s8O0HHzcxQyR2Mso0dxxkgkkISTwmVFie7s6iM0moC5x5HkrI4gtIjCJUeL55VAQ m1ngFKPE2l8KXYwcHMICcRLNL9lATBYBVYmvV+1AKngFLCWalu5jglglLzHz0newtZwCVhKn zh1kh6gRlDg58wkLxER5ieats8HOkRDYwSFxeuFLqDtdJJbOfMcKYQtLvDq+BSouJfGyvw3K Tpf4cfkp1LICieZj+xghbHuJ1lP9zCC3MQtoSqzfpQ8RlpWYemodE8RePone30+gWnkldsyD sZUk2lfOgbIlJPaea4CyPSQ2fv4NDdxeRoldzaeYJjAqzELyzywk/8xCWL2AkXkVo2RqQXFu emqxaYFhXmo5PIaT83M3MYJTspbnDsa7Dz7oHWJk4mA8xCjBwawkwjupizddiDclsbIqtSg/ vqg0J7X4EKMpMLwnMkuJJucDs0JeSbyhiaWBiZmZmYmlsZmhkjjv69a5KUIC6YklqdmpqQWp RTB9TBycUg1MS1QXv6r6qvM671X9sflFC2ZenH90roDMRq2t1zTLQlUOiu422pN/ie18dvOn iYrJkvV/X9zS9vl7VsbmZcbLCWd7pmkc6Xoho7qhtikhMi1S9qw/D0vNjGNrvDkVjjLlTa+o eb1lyuLt8/dZOhSs+Pg1aGHAkrk1jdeMzp8rPbaf4br25r/zL05fMWlhxtfGbctWr9i09sHn qUkv63Wcjos0z2L73HY+5tN3gR+Wgrs2/+gwjE8Rz1i7sdvU7vCPm6ZvP5rGCsYFXbx9/jtL 3aOyJX0JM/JO71ru8MVKUmLjnDPcwjyzbZ9JRPlOEF5/ZYd6+vK7Oo1XNk5O52N44JHA4bE9 0eOWhKCRX8G9KHclluKMREMt5qLiRABo0A6/UgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRmVeSWpSXmKPExsWy7bCSnG7JUv50g7730hYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYTDp0jdFi+5mlzBZ7b2lbzF/2lN2i+/oONovl x/8xWZyfNYfdgc9j56y77B6Xz5Z6bFrVyeaxeUm9x+6bDWweH5/eYvHo27KK0WPz6WqPz5vk AjijuGxSUnMyy1KL9O0SuDKeTLUrWMJdMa9Vr4HxKGcXIyeHhICJxMHHXcxdjFwcQgK7GSUO 3PvECJGQkDj1chmULSyx8t9zdoiij4wSa7fsZwdJsAmoSxx53soIkhARmMUocXjWfCYQh1ng AqPE1X3PwKqEBWIkzj2fxNLFyMHBIqAq8fWqHUiYV8BSomnpPiaIDfISMy99ByvnFLCSOHXu IJgtBFTzb/IHRoh6QYmTM5+wgNjMQPXNW2czT2AE2oqQmoUktYCRaRWjZGpBcW56brJhgWFe arlecWJucWleul5yfu4mRnDsaGnsYLw3/5/eIUYmDsZDjBIczEoivJO6eNOFeFMSK6tSi/Lj i0pzUosPMUpzsCiJ8xrOmJ0iJJCeWJKanZpakFoEk2Xi4JRqYDJ2FJoTeIf//llDlqVnljlO vXsk//QVhnPPTxbME9hjpH/8/sL98VZv1pa92r5EqflgufM+Zlbd7EfG//mNDc89XrJ9cuM9 HamrG9ZeO7d6dmL67o6uKVt+/H/xJGvXFJkUlnj/stlP0t++6Wc7/pipRmiG3vJLmdN7V/Pc Czl087/ei7Ly6eLn5H2fn71sfV7nb/Z55v5JbsXZW/kKjjXKXapIY1we7qIvptn3Z9IbZQaN ddXX9e1vPxeaqt9xls/eNK94m0F094Fngg55E6X/WX1xCDS3WuhXpjZxQ0bX/cf8q46f7fxc p9xpzbhkZsmPrOb1T0209+qG749q6J/VmR7fv//TD81m729NyxuUWIozEg21mIuKEwFe/GhU DAMAAA== X-CMS-MailID: 20241016113724epcas5p191ccce0f473274fc95934956662fc769 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113724epcas5p191ccce0f473274fc95934956662fc769 References: <20241016112912.63542-1-anuj20.g@samsung.com> Introduce BIP_CLONE_FLAGS describing integrity flags that should be inherited in the cloned bip from the parent. Suggested-by: Christoph Hellwig Signed-off-by: Anuj Gupta Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen --- block/bio-integrity.c | 2 +- include/linux/bio-integrity.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 88e3ad73c385..8c41a380f2bd 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -562,7 +562,7 @@ int bio_integrity_clone(struct bio *bio, struct bio *bio_src, bip->bip_vec = bip_src->bip_vec; bip->bip_iter = bip_src->bip_iter; - bip->bip_flags = bip_src->bip_flags & ~BIP_BLOCK_INTEGRITY; + bip->bip_flags = bip_src->bip_flags & BIP_CLONE_FLAGS; return 0; } diff --git a/include/linux/bio-integrity.h b/include/linux/bio-integrity.h index dd831c269e99..485d8a43017a 100644 --- a/include/linux/bio-integrity.h +++ b/include/linux/bio-integrity.h @@ -30,6 +30,9 @@ struct bio_integrity_payload { struct bio_vec bip_inline_vecs[];/* embedded bvec array */ }; +#define BIP_CLONE_FLAGS (BIP_MAPPED_INTEGRITY | BIP_CTRL_NOCHECK | \ + BIP_DISK_NOCHECK | BIP_IP_CHECKSUM) + #ifdef CONFIG_BLK_DEV_INTEGRITY #define bip_for_each_vec(bvl, bip, iter) \ From patchwork Wed Oct 16 11:29:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836093 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC1F2208217 for ; Wed, 16 Oct 2024 12:36:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082177; cv=none; b=MrjCtBxfZnVjvFKuwQDKTCoH32fwQV5qQH0TMTWXtZAERil+TlMzhV8woPZYAzhfiCeJzXAWOM0LIvcfFXot8CL0uELH3ar8KNBtolg3s3ReVvN7o/Qh4bawe8z0sn9wMhdTet3Wc1Q7+fymctCFGINLlzwH97XZe8IzOTOXGeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082177; c=relaxed/simple; bh=80iN9wH8fZxRyeNmWrkbWUyfZDLjnh4UxZJ8TgsMhwQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=EJLIuMP24Aqw7B2e4TXIJo9eOCxo6tTUx0tp2aYc0krfNZ/QwRT3UVpFMJh3lG/48Gqetu2O/hAEzCqMHWS+3miW50aZnWdC+/H5cH11fCb6tUnk3b5oP7hiRg/9fBJFeHvkdUIjbgsRTJhWBohqmH54i7nAEI6350+ncLPj2zY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=qTxxlxP2; arc=none smtp.client-ip=203.254.224.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="qTxxlxP2" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20241016123613epoutp041582a9eda9ce533fc79df430f5eb38b9~_7xN4mdr-1941219412epoutp04e for ; Wed, 16 Oct 2024 12:36:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20241016123613epoutp041582a9eda9ce533fc79df430f5eb38b9~_7xN4mdr-1941219412epoutp04e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082173; bh=j7kMMqrhvwE2U0rxzDSx84hS80YAqcLX62yw/e5POuY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qTxxlxP2uiHNWdOkVRzGlZtNl38clk5mvooKlLnQkWC/5wbfrM2AqcD0wvincuxeF 1csi7r0ovhI3r8H8YEpEs/AQza847ZdUrmHwAIEgJEno5GqOAFK9AgkwIIzkSc+VF0 d7r2B2LZluGqF+IvG0iktE7harLsRvv5No1QQvOA= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20241016123613epcas5p4fefeb190c8f152295a5cdf8c574aa8d7~_7xNa1bVV1646816468epcas5p4f; Wed, 16 Oct 2024 12:36:13 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.181]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4XT9SC1Myxz4x9Px; Wed, 16 Oct 2024 12:36:11 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id E3.01.09770.B33BF076; Wed, 16 Oct 2024 21:36:11 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20241016113736epcas5p3a03665bf0674e68a8f95bbd5f3607357~_6_CEFDD92628326283epcas5p3B; Wed, 16 Oct 2024 11:37:36 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20241016113736epsmtrp23f19cc615b949554c87694a6229b48af~_6_CDSKot1555115551epsmtrp2e; Wed, 16 Oct 2024 11:37:36 +0000 (GMT) X-AuditID: b6c32a4a-e25fa7000000262a-c4-670fb33b0423 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id EC.BA.08229.085AF076; Wed, 16 Oct 2024 20:37:36 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113734epsmtip176042ea87fdd663dbe664cf7e714eea5~_6_AIsgrp2871328713epsmtip12; Wed, 16 Oct 2024 11:37:34 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta Subject: [PATCH v4 02/11] block: copy back bounce buffer to user-space correctly in case of split Date: Wed, 16 Oct 2024 16:59:03 +0530 Message-Id: <20241016112912.63542-3-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrAJsWRmVeSWpSXmKPExsWy7bCmuq71Zv50g6Xf2C0+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxmHToGqPF9jNLmS323tK2mL/sKbtF9/UdbBbL j/9jsjg/aw67A5/Hzll32T0uny312LSqk81j85J6j903G9g8Pj69xeLRt2UVo8fm09UenzfJ BXBGZdtkpCampBYppOYl56dk5qXbKnkHxzvHm5oZGOoaWlqYKynkJeam2iq5+AToumXmAF2u pFCWmFMKFApILC5W0rezKcovLUlVyMgvLrFVSi1IySkwKdArTswtLs1L18tLLbEyNDAwMgUq TMjOmLnyHFPBZbaKm8tDGxhPsHYxcnJICJhITNwzl6WLkYtDSGA3o8TLNb/ZQBJCAp8YJR6u 8YdIfGOUmDX9InMXIwdYx7rdaRA1exklLp/Oh6j5zCjxYvJ3JpAEm4C6xJHnrYwgtojAJEaJ 55dDQWxmgVOMEmt/KYDYwgLJEr3bH4PVswioSvRtPgFWzytgKdFyYT8bxHXyEjMvfWcHsTkF rCROnTvIDlEjKHFy5hMWiJnyEs1bZzODHCEhsIVD4vuu3+wQzS4SW9rmQw0Slnh1fAtUXEri 87u9UPF0iR+XnzJB2AUSzcf2MULY9hKtp/rBHmYW0JRYv0sfIiwrMfXUOiaIvXwSvb+fQLXy SuyYB2MrSbSvnANlS0jsPdcAZXtINLR3MUECq5dRord9OesERoVZSP6ZheSfWQirFzAyr2KU TC0ozk1PLTYtMMpLLYdHcXJ+7iZGcFLW8trB+PDBB71DjEwcjIcYJTiYlUR4J3XxpgvxpiRW VqUW5ccXleakFh9iNAUG+ERmKdHkfGBeyCuJNzSxNDAxMzMzsTQ2M1QS533dOjdFSCA9sSQ1 OzW1ILUIpo+Jg1OqgSl1zsS3OcWpVm+EfY0nvD+sr9Ad6fKuwEZARmbGDJnUmQ+mPRF+pXG7 wKdA131PDZ/1bL2PDuGTbqszibfYbhbr5r16Uj5h4zTdNTl9V0IbFCrbXqsHmDrEm3+4vfmn x8s/UU0ZM8s3q6+WZvff028ldOFw153FJyoP9J7uEo+q2Kv5+OJuTZd//xr3yvPP45HZ//bq zyMmaaIc+xJfX7urN+lD79IMq/vlFbkeeSm/cyfMuHU5+dUHXXueWt/L/zeFVnPbxfzLSJ2T +D6BPSLom05m9YvDuTMffXu5aHKfd+mfsC4l/6tHkuy8RB7u3ZH4RduyM9/xnzBf/ubsfbJ+ 5h0SM82uT5Zj+//xlRJLcUaioRZzUXEiAHslh1VTBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRmVeSWpSXmKPExsWy7bCSnG7DUv50gzUd4hYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYTDp0jdFi+5mlzBZ7b2lbzF/2lN2i+/oONovl x/8xWZyfNYfdgc9j56y77B6Xz5Z6bFrVyeaxeUm9x+6bDWweH5/eYvHo27KK0WPz6WqPz5vk AjijuGxSUnMyy1KL9O0SuDJmrjzHVHCZreLm8tAGxhOsXYwcHBICJhLrdqd1MXJxCAnsZpSY 1zYRKM4JFJeQOPVyGSOELSyx8t9zdoiij4wSz14cBkuwCahLHHneygiSEBGYxShxeNZ8JhCH WeACo8TVfc/YQVYICyRKTL0mCtLAIqAq0bf5BFgzr4ClRMuF/WwQG+QlZl76zg5icwpYSZw6 dxDMFgKq+Tf5A1S9oMTJmU9YQGxmoPrmrbOZJzACbUVIzUKSWsDItIpRMrWgODc9t9iwwDAv tVyvODG3uDQvXS85P3cTIzh2tDR3MG5f9UHvECMTB+MhRgkOZiUR3kldvOlCvCmJlVWpRfnx RaU5qcWHGKU5WJTEecVf9KYICaQnlqRmp6YWpBbBZJk4OKUamBo0Pc3vLkrkZF9S18HPcNCu oOdAkeNKiyUZ8vZaUovOzHOtu7jE25+xyTZ98rfU+LMSZxvPtp2sqbf9K/v3fktfyKk9aj0L D3dv9ZlXb3d2p7fgsw3r2+3C0rwWe75ef+xkJ/+O1luVbJKq+elndwUp7dXYfrGa6Xd6Xv8h nwNP1CeVfbOfGW9QeHXDr/cKnbfObUj3dtyhIVOS93nnYrXiE1kK3477x/M/1dh3bMt1YZ3G +n93C4PnZ1dfzj0w7bXRjab90oleuTN0N+18keH+KOvx5kk6+6Mv1EuprZ+isnSVV8XmhNCO mFvx61WOd5yw5Zjn/GmHQJzeMrEjR1WTBNmUw+IEChfa5r98p8RSnJFoqMVcVJwIACMVt0YM AwAA X-CMS-MailID: 20241016113736epcas5p3a03665bf0674e68a8f95bbd5f3607357 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113736epcas5p3a03665bf0674e68a8f95bbd5f3607357 References: <20241016112912.63542-1-anuj20.g@samsung.com> Copy back the bounce buffer to user-space in entirety when the parent bio completes. Signed-off-by: Anuj Gupta --- block/bio-integrity.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 8c41a380f2bd..8948e635432d 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -119,8 +119,8 @@ static void bio_integrity_unpin_bvec(struct bio_vec *bv, int nr_vecs, static void bio_integrity_uncopy_user(struct bio_integrity_payload *bip) { unsigned short nr_vecs = bip->bip_max_vcnt - 1; - struct bio_vec *copy = &bip->bip_vec[1]; - size_t bytes = bip->bip_iter.bi_size; + struct bio_vec *copy = &bip->bip_vec[1], *bvec = &bip->bip_vec[0]; + size_t bytes = bvec->bv_len; struct iov_iter iter; int ret; From patchwork Wed Oct 16 11:29:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836092 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 52B0E173357 for ; Wed, 16 Oct 2024 12:36:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082190; cv=none; b=Uh2IPFCpu6byxeySl/iO+yY6P+JmRw+uxzha+itHg/tPtm97I6SiRsmZKmfaheqpQDI4WtKVufMdcO7+sTFO5+0nCjHZtG3BmV8IMufwTwjNuIohL3R66YwA+Eimkh9k0fiTUn/ZJ3/W7zAuoHJiu1KV7gh5DNXUktQZGX/41g4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082190; c=relaxed/simple; bh=he/RKtwB0BA6gZ5+5gIwr4rdDI2BtLEw7XicuZ0Kc5A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=jjBcIds509d32KK0I4IP97g+8HTdCxWe6B67bbpiG3HbqUoyAMCcd4XzgfO9czi5XOY8jU6BghH6VSrTzZ6y/QlE78CQLyO7ox4jhmslzKy92ghfQL8ShbWI5Cpj9jfJKwiV39j05HYwrJOtyyNW4SBXBt55DWeCda8+/NgptZM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=i2H0uxzT; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="i2H0uxzT" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20241016123625epoutp03fd84064317106b79240b9623ebdac9f8~_7xYRxlPH1120611206epoutp03z for ; Wed, 16 Oct 2024 12:36:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20241016123625epoutp03fd84064317106b79240b9623ebdac9f8~_7xYRxlPH1120611206epoutp03z DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082185; bh=UVsxMR53W9XtECcTqAPzjCe5MFT++ZFTK0IoQGFyX50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i2H0uxzTjQrTysPpdFAZ3k9U1AWyqYia/NdpqN5CW4mstpfp/b3OLSRDDnjQbgqEp 5qYkgTzu+nykMAzUBxll68UCVhlXFm0nS2jaGaMpCSP0ku8PGI6mE2z2qOYlpvyHGY HD0y+1hb6ZQPjL2o0IKdGsKtbPwgz++9pu9M59qc= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20241016123624epcas5p2f0d8b35c2ea1b60bc616d926c088e95a~_7xXYp64r3112131121epcas5p2S; Wed, 16 Oct 2024 12:36:24 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.180]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4XT9SQ3t5cz4x9Pr; Wed, 16 Oct 2024 12:36:22 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 7E.43.18935.643BF076; Wed, 16 Oct 2024 21:36:22 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20241016113738epcas5p2d217b8d6efbf855f61c133f64deaa486~_6_EOP5tl3038230382epcas5p26; Wed, 16 Oct 2024 11:37:38 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20241016113738epsmtrp16c8c84804246c27c5bbbec8778145815~_6_ENcN6u0254402544epsmtrp1o; Wed, 16 Oct 2024 11:37:38 +0000 (GMT) X-AuditID: b6c32a50-cb1f8700000049f7-14-670fb346808a Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 2D.9A.07371.285AF076; Wed, 16 Oct 2024 20:37:38 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113736epsmtip1c8a477b3eda0933f06fe491b78581761~_6_CJyia12875928759epsmtip1E; Wed, 16 Oct 2024 11:37:36 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta , Kanchan Joshi Subject: [PATCH v4 03/11] block: modify bio_integrity_map_user to accept iov_iter as argument Date: Wed, 16 Oct 2024 16:59:04 +0530 Message-Id: <20241016112912.63542-4-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOJsWRmVeSWpSXmKPExsWy7bCmhq7bZv50g3PTZC0+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDMq2yYjNTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DX LTMH6HwlhbLEnFKgUEBicbGSvp1NUX5pSapCRn5xia1SakFKToFJgV5xYm5xaV66Xl5qiZWh gYGRKVBhQnbGzw/7GQveyVX0XvzL3sB4XrKLkYNDQsBEYvExqy5GTg4hgT2MEu+2KHcxcgHZ nxglHj+YywrhfGOU+Pr7MjNMw8PpPBDxvYwS7XeOM0E4nxklJrd+ZQMZxSagLnHkeSsjiC0i MIlR4vnlUJAiZoH3jBLv9y9nBUkIC8RLPJvVCFbEIqAqsfBOF1gzr4ClxLc3F1lAbAkBeYmZ l76zg9icAlYSp84dZIeoEZQ4OfMJWA0zUE3z1tnMIAskBI5wSDT+v8sO0ewicfnOZ0YIW1ji 1fEtUHEpiZf9bVB2usSPy0+ZIOwCieZj+6Dq7SVaT/WDvcwsoCmxfpc+RFhWYuqpdUwQe/kk en8/gWrlldgxD8ZWkmhfOQfKlpDYe66BCRJyHhLPjytBAquXUeLHy6dMExgVZiF5ZxaSd2Yh bF7AyLyKUSq1oDg3PTXZtMBQNy+1HB7Jyfm5mxjBKVorYAfj6g1/9Q4xMnEwHmKU4GBWEuGd 1MWbLsSbklhZlVqUH19UmpNafIjRFBjgE5mlRJPzgVkiryTe0MTSwMTMzMzE0tjMUEmc93Xr 3BQhgfTEktTs1NSC1CKYPiYOTqkGptm/pmh3uzv2OolfmRqxc79L/fxvDYHKP1L+ecsLfZr9 zmNeYV/lv8knpgcquSWd7vzDkvQpoEfBweeFa/J0O7uaxIt1TBH3j/jyTY2qe+D9+1aPXqiW gYnd4pj5rNP0poZK8Z5dsElFsFCbN2Fm0R/9Z5xuLFm1L826174xX6kUIF/E7F68WnTuG6FX 9tE1m56zpfhuj3ohcj7UUfOM55o/5/537PLo2j5DsUZN3mztB+nQkzMCW57UPk04e21ryocp 2zbsf7N3Ss2/2aI7vh5juStsvufD9ts+h1hqhPhfTthtxNA+5a3KPNaqqew6kQ0nrBe7p7lO 1l4SYare6C/+48+c15Jqnh8YYx6yKbEUZyQaajEXFScCAHXHDIRaBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPLMWRmVeSWpSXmKPExsWy7bCSnG7TUv50g/+rdCw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDOKyyYlNSezLLVI3y6BK+Pnh/2MBe/kKnov/mVvYDwv2cXIwSEhYCLxcDpPFyMX h5DAbkaJqz/62boYOYHiEhKnXi5jhLCFJVb+e84OUfSRUWLp7zlMIAk2AXWJI89bGUESIgKz GCUOz5rPBOIwC3xnlJi2/BoLyAphgViJCRvkQRpYBFQlFt7pAtvAK2Ap8e3NRRaIDfISMy99 ZwexOQWsJE6dOwhmCwHV/Jv8gRGiXlDi5MwnYPXMQPXNW2czT2AE2oqQmoUktYCRaRWjZGpB cW56brJhgWFearlecWJucWleul5yfu4mRnAcaWnsYLw3/5/eIUYmDsZDjBIczEoivJO6eNOF eFMSK6tSi/Lji0pzUosPMUpzsCiJ8xrOmJ0iJJCeWJKanZpakFoEk2Xi4JRqYMrMXLbl/OQD R2UmvDy+ZfOarW/XvYypyL4i3bwz9805VospvNuMrj9IuH9yNtddaceLQdWL1qfsUl98qGv3 hbWNhc+yXzxRFt697YHqgtb3TQnLhad561Q+eOW5Jt6vUc1V4vuTqmk6Z7LOv1kr9ZNrgarU +1u2zHvX7T0iYGNz541PichVm9INITs2W5jWzf7WrS8XrPHMc9d83jne5n7LjPymNuUdv2IQ HOwWarkk+fZaNXlp2yW635/tPx68hMPyk4SHonvE2xdrRCSePMncGNPcvkrW74LZqf5DE0NU 653zT539PY9pec4V9rZNWS+X95d8f6Xaf+nZodPKIfMjNh5kuOFw5Czn8uPn/QMrlFiKMxIN tZiLihMBt0Z1GRIDAAA= X-CMS-MailID: 20241016113738epcas5p2d217b8d6efbf855f61c133f64deaa486 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113738epcas5p2d217b8d6efbf855f61c133f64deaa486 References: <20241016112912.63542-1-anuj20.g@samsung.com> This patch refactors bio_integrity_map_user to accept iov_iter as argument. This is a prep patch. Signed-off-by: Anuj Gupta Signed-off-by: Kanchan Joshi Reviewed-by: Christoph Hellwig --- block/bio-integrity.c | 12 +++++------- block/blk-integrity.c | 10 +++++++++- include/linux/bio-integrity.h | 6 +++--- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 8948e635432d..341a0382befd 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -303,17 +303,16 @@ static unsigned int bvec_from_pages(struct bio_vec *bvec, struct page **pages, return nr_bvecs; } -int bio_integrity_map_user(struct bio *bio, void __user *ubuf, ssize_t bytes, +int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter, u32 seed) { struct request_queue *q = bdev_get_queue(bio->bi_bdev); unsigned int align = blk_lim_dma_alignment_and_pad(&q->limits); struct page *stack_pages[UIO_FASTIOV], **pages = stack_pages; struct bio_vec stack_vec[UIO_FASTIOV], *bvec = stack_vec; + size_t offset, bytes = iter->count; unsigned int direction, nr_bvecs; - struct iov_iter iter; int ret, nr_vecs; - size_t offset; bool copy; if (bio_integrity(bio)) @@ -326,8 +325,7 @@ int bio_integrity_map_user(struct bio *bio, void __user *ubuf, ssize_t bytes, else direction = ITER_SOURCE; - iov_iter_ubuf(&iter, direction, ubuf, bytes); - nr_vecs = iov_iter_npages(&iter, BIO_MAX_VECS + 1); + nr_vecs = iov_iter_npages(iter, BIO_MAX_VECS + 1); if (nr_vecs > BIO_MAX_VECS) return -E2BIG; if (nr_vecs > UIO_FASTIOV) { @@ -337,8 +335,8 @@ int bio_integrity_map_user(struct bio *bio, void __user *ubuf, ssize_t bytes, pages = NULL; } - copy = !iov_iter_is_aligned(&iter, align, align); - ret = iov_iter_extract_pages(&iter, &pages, bytes, nr_vecs, 0, &offset); + copy = !iov_iter_is_aligned(iter, align, align); + ret = iov_iter_extract_pages(iter, &pages, bytes, nr_vecs, 0, &offset); if (unlikely(ret < 0)) goto free_bvec; diff --git a/block/blk-integrity.c b/block/blk-integrity.c index 83b696ba0cac..cb8f7260bdcf 100644 --- a/block/blk-integrity.c +++ b/block/blk-integrity.c @@ -115,8 +115,16 @@ EXPORT_SYMBOL(blk_rq_map_integrity_sg); int blk_rq_integrity_map_user(struct request *rq, void __user *ubuf, ssize_t bytes, u32 seed) { - int ret = bio_integrity_map_user(rq->bio, ubuf, bytes, seed); + int ret; + struct iov_iter iter; + unsigned int direction; + if (op_is_write(req_op(rq))) + direction = ITER_DEST; + else + direction = ITER_SOURCE; + iov_iter_ubuf(&iter, direction, ubuf, bytes); + ret = bio_integrity_map_user(rq->bio, &iter, seed); if (ret) return ret; diff --git a/include/linux/bio-integrity.h b/include/linux/bio-integrity.h index 485d8a43017a..90aab50a3e14 100644 --- a/include/linux/bio-integrity.h +++ b/include/linux/bio-integrity.h @@ -75,7 +75,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio, gfp_t gfp, unsigned int nr); int bio_integrity_add_page(struct bio *bio, struct page *page, unsigned int len, unsigned int offset); -int bio_integrity_map_user(struct bio *bio, void __user *ubuf, ssize_t len, u32 seed); +int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter, u32 seed); void bio_integrity_unmap_user(struct bio *bio); bool bio_integrity_prep(struct bio *bio); void bio_integrity_advance(struct bio *bio, unsigned int bytes_done); @@ -101,8 +101,8 @@ static inline void bioset_integrity_free(struct bio_set *bs) { } -static inline int bio_integrity_map_user(struct bio *bio, void __user *ubuf, - ssize_t len, u32 seed) +static inline int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter, + u32 seed) { return -EINVAL; } From patchwork Wed Oct 16 11:29:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836582 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D8C1173357 for ; Wed, 16 Oct 2024 12:36:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.24 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082197; cv=none; b=K6v+YC/GK+wr3BNoKvK3X0kXCDa/pRphihCSwsEMOR4TizZXlymXTJGW7dZAEMxcvdXOnP+phVWbv/B1Du7KoEm4R8UhBS2GiPKH9LFwkIdTbALR7h8JucfgxDv4SOR2eMFyE4U2kRxzs5/ibBuSHOcwFmDhZONfzG6U0gA+BmA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082197; c=relaxed/simple; bh=ZF260PFRqTY8i0xvJfFGVVeNsxKecPbr5WJiEFbnwj0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=vC0/wkcUa49TZDmy8U7sGsUdHGc1WQ32DD4js5OE0ZAvCokjrsqciM2YtUgNBeDkIC13Fa0+hp2+fac5TxLxQJ8fMJNafZpGOMYRzNMdwhIjGn66RqzBWv+8nufwDLsftjB2xIdlH7Mi9yZf9lcNewIVM+rjndBqoTuBCQS3GBk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=g5VMOxn7; arc=none smtp.client-ip=203.254.224.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="g5VMOxn7" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20241016123633epoutp017229c56a12693421e40e941a17c9eb48~_7xgLXxHR1583515835epoutp01o for ; Wed, 16 Oct 2024 12:36:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20241016123633epoutp017229c56a12693421e40e941a17c9eb48~_7xgLXxHR1583515835epoutp01o DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082193; bh=UKoRNiCpE9xYsK9GrO7c2Huj45QYroY0N/mJ/Q8UOgA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g5VMOxn7sS5c4XXHGRpj/NR68Ico3k7JQF1ZuhVekvENVxYA37kZ+RArLMsSE7tCr UR2bFn6Ix7SPHtW9Fi0Crqsf2NNjPTXFaSemHOegex0daLD2JHhtPqkCHJYagy+r+U GMZRt/La0DSmHRGmK2GJfjFWhlheAlkT/WTpFDtE= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20241016123632epcas5p3e1a8e0f298d5b0f8dfc499cf647650b0~_7xfUVskf2029820298epcas5p3a; Wed, 16 Oct 2024 12:36:32 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.177]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4XT9SZ6CBYz4x9Pv; Wed, 16 Oct 2024 12:36:30 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 09.08.09420.E43BF076; Wed, 16 Oct 2024 21:36:30 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20241016113741epcas5p3b90adb3b43b6b443ffd00df29d63d289~_6_GdhFFt1063910639epcas5p3I; Wed, 16 Oct 2024 11:37:41 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20241016113741epsmtrp1a08274ed734fadd9a7decb4cd101e4cf~_6_GcrwNh0254402544epsmtrp1p; Wed, 16 Oct 2024 11:37:41 +0000 (GMT) X-AuditID: b6c32a49-0d5ff700000024cc-c2-670fb34e35ba Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 3E.9A.07371.485AF076; Wed, 16 Oct 2024 20:37:41 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113738epsmtip15ae17822cc4bf05c896c76e759451560~_6_EWKVy-2875928759epsmtip1F; Wed, 16 Oct 2024 11:37:38 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Kanchan Joshi , Anuj Gupta Subject: [PATCH v4 04/11] block: define meta io descriptor Date: Wed, 16 Oct 2024 16:59:05 +0530 Message-Id: <20241016112912.63542-5-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBJsWRmVeSWpSXmKPExsWy7bCmpq7fZv50g52bDC0+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDMq2yYjNTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DX LTMH6HwlhbLEnFKgUEBicbGSvp1NUX5pSapCRn5xia1SakFKToFJgV5xYm5xaV66Xl5qiZWh gYGRKVBhQnbGm11zmQpOs1d8fLGMqYFxJVsXIyeHhICJxIL2A6xdjFwcQgK7GSU6l11ng3A+ MUq0Tf4KlfnGKNG79hiQwwHWcr4zHCK+l1HicE8LM4TzmVHi8o9tYHPZBNQljjxvZQSxRQQm MUo8vxwKUsQs8J5RYtmzWWAJYQErifYjTUwgNouAqsTs5jNgcV4BS4n9E3exQxwoLzHz0ncw mxOo/tS5g+wQNYISJ2c+YQGxmYFqmrfOZoao38MhsfVSAoTtItF4aTEThC0s8er4FqiZUhIv +9ug7HSJH5efQtUUSDQf28cIYdtLtJ7qZwb5mFlAU2L9Ln2IsKzE1FPrmCDW8kn0/n4C1cor sWMejK0k0b5yDpQtIbH3XAOU7SHRdKAFGry9jBK7L/QxTmBUmIXknVlI3pmFsHoBI/MqRsnU guLc9NRi0wLDvNRyeCwn5+duYgQnaS3PHYx3H3zQO8TIxMF4iFGCg1lJhHdSF2+6EG9KYmVV alF+fFFpTmrxIUZTYHhPZJYSTc4H5om8knhDE0sDEzMzMxNLYzNDJXHe161zU4QE0hNLUrNT UwtSi2D6mDg4pYCekWPrYtlveuDQzpkXe1axBP/+emPjh0L3HlO91hf/y6+Zfns4p/8s+/v/ 7JX68SKbjM379jvG6TpcfXNmytb9B2KZo73mbrxw5nKpUOLNjC8TH3VHvGTwnZ3E+HAXg8rd GYX9OzZbF3hp/dy7i1V4QfN3a4ujflvXuFzhtni+xVlh+d6T825X8OdfOptSUdwptuH8x5B/ M5jjxQU3S6dH3FRK+arVeHlCixufRHLz7T3/Ci3iG213M/vG2DSYBlgoeCYZX9Q2bbtWvGZL TMO9otU8r+4rrptaYbXTeOqzunk7lv2y+2Xp3S26/NWMp1+zFe3lbG7M6VgyQVStrctovoN7 1KJDZ/fGKCwS3TpXiaU4I9FQi7moOBEAXW363FsEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPLMWRmVeSWpSXmKPExsWy7bCSnG7rUv50g8OXGC0+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDOKyyYlNSezLLVI3y6BK+PNrrlMBafZKz6+WMbUwLiSrYuRg0NCwETifGd4FyMX h5DAbkaJHZvnsHQxcgLFJSROvVzGCGELS6z895wdougjo8S8u3eZQRJsAuoSR563MoIkRARm MUocnjWfCSTBLPCdUeJftzOILSxgJdF+pAksziKgKjG7+QzYVF4BS4n9E3exQ2yQl5h56TuY zQlUf+rcQTBbCKjm3+QPUPWCEidnPmGBmC8v0bx1NvMERqCtCKlZSFILGJlWMUqmFhTnpucm GxYY5qWW6xUn5haX5qXrJefnbmIEx5GWxg7Ge/P/6R1iZOJgPMQowcGsJMI7qYs3XYg3JbGy KrUoP76oNCe1+BCjNAeLkjiv4YzZKUIC6YklqdmpqQWpRTBZJg5OqQamp0K3V5t9KZSbotM3 Xc/KRT30KMPMlrTKxq4jC9Tri07wpy5880/wmbh5zYbQ8t0nk44J3a3zEu/wnLeV+1bRdd41 ASsm/go+/91NVvr40ZSku6ptG6I0FjTs7W7uf3wjqdpypreieVL7+uJFhW32Ri+F1V/6v3Ly iQ+O7zg/Oe/atEvn3s1IjsrzL/1zzoPlbMBrl9M9f2J/tz55tuWS8iJGkefLHlf4W/IvOLVq cnRUgLLyMfO9D2Zfe7uX5cHKB6tytZ1sryhduZyp9LuZvU7k/V4X9f/nMs8aCsb4Bntvn/51 5b0FTP8ldoQ/XeFcl7RHT/Oi8Sf1X3EZRqpFCaa/eGwexndVnv79hfWCEktxRqKhFnNRcSIA 6fhL3hIDAAA= X-CMS-MailID: 20241016113741epcas5p3b90adb3b43b6b443ffd00df29d63d289 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113741epcas5p3b90adb3b43b6b443ffd00df29d63d289 References: <20241016112912.63542-1-anuj20.g@samsung.com> From: Kanchan Joshi Introduces a new 'uio_meta' structure that upper layer can use to pass the meta/integrity information. Signed-off-by: Kanchan Joshi Signed-off-by: Anuj Gupta --- include/linux/bio-integrity.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/linux/bio-integrity.h b/include/linux/bio-integrity.h index 90aab50a3e14..529ec7a8df20 100644 --- a/include/linux/bio-integrity.h +++ b/include/linux/bio-integrity.h @@ -30,6 +30,16 @@ struct bio_integrity_payload { struct bio_vec bip_inline_vecs[];/* embedded bvec array */ }; +/* flags for integrity meta */ +typedef __u16 __bitwise meta_flags_t; + +struct uio_meta { + meta_flags_t flags; + u16 app_tag; + u32 seed; + struct iov_iter iter; +}; + #define BIP_CLONE_FLAGS (BIP_MAPPED_INTEGRITY | BIP_CTRL_NOCHECK | \ BIP_DISK_NOCHECK | BIP_IP_CHECKSUM) From patchwork Wed Oct 16 11:29:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836091 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95639208962 for ; Wed, 16 Oct 2024 12:36:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082205; cv=none; b=ApKtqDaTfOj49opZ0Z2fPUtWI8vwIPujFfdsn8pQlngi6CJsRq4/lRpzf7YX0f3wK5ahDznEYan2GhuDtpa1/L63nnxJPlGPxz2LZRrHEVOgGd0ih9xI9lU5xTACuqqR1ovUs8Am5Y9e8I1dersmcOTjlAR3mshbHKvL4nD90TU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082205; c=relaxed/simple; bh=Xu1LbGRncxovRrdMmeiSgMvWFfaeTe1/VhI1JxApEKY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=DY/JGNv+mWQyD+AibYr1J1saUAosbZAU65qaybXip7VLUBOMWPq4DQs0tuPznivoQn9m99IzoqShORucPpiBcXVgAWX8MRRwmYAz8S6T9oHR+Qvs8YDNx94sd5/jdvxRJ5RUKpjHC58lTwfiDWAA3R7aHT1cyTR+hKdRtrsCce4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=sPhbQHLy; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="sPhbQHLy" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20241016123641epoutp02e293f4a23851d8fffe27e6560bc188a6~_7xnxxHXS1522015220epoutp02i for ; Wed, 16 Oct 2024 12:36:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20241016123641epoutp02e293f4a23851d8fffe27e6560bc188a6~_7xnxxHXS1522015220epoutp02i DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082201; bh=ixWRd6Ku3AHLpgpPOdfQwfzu6Ddv6cbLE0o4Y5h4UVk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sPhbQHLyV3BJ0gPwaVUU0uhLZccN3jWWum31eHCRN0sS+BWDx5dSgLhKeLbiIqayM jBs5Q2rlrknKiAKP4jsFgsTXVqkKOGvRzlf9jN4nOeOl4gdy8vPUfA39KQg0KqSTdB LG4fENZXtVTeKVldUhQwpvDnefYAGOX6wp1HvfS8= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20241016123641epcas5p28eda85d51e3c2d8369f8a94bf82dfc8d~_7xnN5CRN1006810068epcas5p2-; Wed, 16 Oct 2024 12:36:41 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.174]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4XT9Sl2YnBz4x9Pp; Wed, 16 Oct 2024 12:36:39 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id 09.90.09800.753BF076; Wed, 16 Oct 2024 21:36:39 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20241016113743epcas5p3b4092c938d8795cea666ab4e6baf4aa9~_6_Ijwnih1066710667epcas5p3_; Wed, 16 Oct 2024 11:37:43 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20241016113743epsmtrp22f1660c34422b1efbeeb7bfd71bfb89a~_6_Ii7uEO1555115551epsmtrp2f; Wed, 16 Oct 2024 11:37:43 +0000 (GMT) X-AuditID: b6c32a4b-4a7fa70000002648-6e-670fb357c8db Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 0E.68.08227.785AF076; Wed, 16 Oct 2024 20:37:43 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113741epsmtip197a1754cc8002dde58ee35e56722c539~_6_GfTUfB2875928759epsmtip1G; Wed, 16 Oct 2024 11:37:41 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta Subject: [PATCH v4 05/11] fs: introduce IOCB_HAS_METADATA for metadata Date: Wed, 16 Oct 2024 16:59:06 +0530 Message-Id: <20241016112912.63542-6-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCJsWRmVeSWpSXmKPExsWy7bCmpm74Zv50g63ThSw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxmHToGqPF9jNLmS323tK2mL/sKbtF9/UdbBbL j/9jsjg/aw67A5/Hzll32T0uny312LSqk81j85J6j903G9g8Pj69xeLRt2UVo8fm09UenzfJ BXBGZdtkpCampBYppOYl56dk5qXbKnkHxzvHm5oZGOoaWlqYKynkJeam2iq5+AToumXmAF2u pFCWmFMKFApILC5W0rezKcovLUlVyMgvLrFVSi1IySkwKdArTswtLs1L18tLLbEyNDAwMgUq TMjOmPn4PXPBctaK64dOMDcwrmPpYuTkkBAwkZjydQ9TFyMXh5DAbkaJRY0gCRDnE6PEvJs/ 2SGcb4wS1269ZoRp+X98L1TLXkaJV90LmSGcz4wSs/c+ZQapYhNQlzjyvBWsQ0RgEqPE88uh IDazwClGibW/FEBsYQE3iYlLDjGB2CwCqhKPd91gA7F5BSwlPk4+xAqxTV5i5qXv7CA2p4CV xKlzB9khagQlTs58wgIxU16ieetssCMkBHZwSPzd2MsO0ewi0fRwCdQgYYlXx7dAxaUkPr/b ywZhp0v8uPyUCcIukGg+tg/qTXuJ1lP9QEM5gBZoSqzfpQ8RlpWYemodE8RePone30+gWnkl dsyDsZUk2lfOgbIlJPaea4CyPST2XvoLDdJeRompa1ayTWBUmIXkn1lI/pmFsHoBI/MqRsnU guLc9NRi0wLjvNRyeDQn5+duYgQnZy3vHYyPHnzQO8TIxMF4iFGCg1lJhHdSF2+6EG9KYmVV alF+fFFpTmrxIUZTYIBPZJYSTc4H5oe8knhDE0sDEzMzMxNLYzNDJXHe161zU4QE0hNLUrNT UwtSi2D6mDg4pRqYctff5entftxQLvDjW1fZ6+OP+ueczTqe67I5+P3VWSVruHhCV36uXTZD aNe1/6tMZ3W6mU9tSct+6sOzMbRxD7vOtD37ftg9ZJRt/3ZHuiWH8U7tq9ntk/xT7X/3Lc+U cW580PikKW/2lC8J2xIsExJzns61CfRexaX0fuoZofWf3PnS9btn8Ap0fV7QHX+LzZen+dSH bX3aR/XX/pdoncrsvoj/Wp3ePpvi+68Kv8SLLY70P6b36t/Zkr3LvJzO7DO+V3HLadXRCLHn svsrTGdU9GzRu+AUvK94kXobU8WSCbldirVPeJq/WxtHuEre/n/4qlzhK7uTTrcOP60rSeDQ 2KYUc9hnZsKbnuqZSizFGYmGWsxFxYkA5bzw6VcEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsWy7bCSnG77Uv50g8kv+Sw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxmHToGqPF9jNLmS323tK2mL/sKbtF9/UdbBbL j/9jsjg/aw67A5/Hzll32T0uny312LSqk81j85J6j903G9g8Pj69xeLRt2UVo8fm09UenzfJ BXBGcdmkpOZklqUW6dslcGXMfPyeuWA5a8X1QyeYGxjXsXQxcnJICJhI/D++l6mLkYtDSGA3 o8TDZb9YIRISEqdeLmOEsIUlVv57zg5R9JFRYsr7/0wgCTYBdYkjz1sZQRIiArMYJQ7Pmg82 ilngAqPE1X3P2EGqhAXcJCYuOQTWwSKgKvF41w02EJtXwFLi4+RDUOvkJWZe+g5WzylgJXHq 3EEwWwio5t/kD4wQ9YISJ2c+AbubGai+eets5gmMQGsRUrOQpBYwMq1ilEwtKM5Nzy02LDDK Sy3XK07MLS7NS9dLzs/dxAiOIC2tHYx7Vn3QO8TIxMF4iFGCg1lJhHdSF2+6EG9KYmVValF+ fFFpTmrxIUZpDhYlcd5vr3tThATSE0tSs1NTC1KLYLJMHJxSDUxWtcc3Sf7+YX6GoXT7us4Z botu/nrXNi/iysbtf9wfnZb6cNOBby337Sd/b6rfDP4V9PFZZe/Td7u/us1vb33y0NCsNJ2j MMolb92OztdndgXuk1+/uS1l16IfV5az/rw3MX8vv3j0I96OuEjmG9O1xVkEm2zu+e6+VXnB dpvui9/9pQxGf68sTfslVKdxzqrl0Ln1lxPlayatWBDYvbJ50dbWSq0vRp/sv1zs4TJ7UPz7 G0dnV5O+7L+DqQ0db8SnacY8dd1dcPC+6bWZP9dpvGeVf2vbEvH72u3w/SbRdypuCH5blHOA 4esxwx3C/bOnr5xkP1voi2d6k3H/3p1P2+TvLDz7c4ubo+pV03WicUosxRmJhlrMRcWJAEi5 2IoPAwAA X-CMS-MailID: 20241016113743epcas5p3b4092c938d8795cea666ab4e6baf4aa9 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113743epcas5p3b4092c938d8795cea666ab4e6baf4aa9 References: <20241016112912.63542-1-anuj20.g@samsung.com> Introduce an IOCB_HAS_METADATA flag for the kiocb struct, for handling requests containing meta payload. Signed-off-by: Anuj Gupta Reviewed-by: Christoph Hellwig --- include/linux/fs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/fs.h b/include/linux/fs.h index 3559446279c1..f451942db74b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -346,6 +346,7 @@ struct readahead_control; #define IOCB_DIO_CALLER_COMP (1 << 22) /* kiocb is a read or write operation submitted by fs/aio.c. */ #define IOCB_AIO_RW (1 << 23) +#define IOCB_HAS_METADATA (1 << 24) /* for use in trace events */ #define TRACE_IOCB_STRINGS \ From patchwork Wed Oct 16 11:29:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836581 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 539C6208209 for ; Wed, 16 Oct 2024 12:36:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.24 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082213; cv=none; b=LoESRdAgu8LrkdHvOT58Wy+iKgMCItGiC3fU+TFsFQUnsjvNWP4trt9O2l0vi5DK5c5gZfoYPy+o3ZLizoK+47D58o8RP98lLeKbiVSs02OKx3eWIDy+4cJJSDIeA2hVWzY6CB43j0J/K9OakuLk4zNKgZjPNk2RJUNEtlHXyUk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082213; c=relaxed/simple; bh=FD1Rr3gSIir5niLs2wMOY9Fp6ypa/E7yl+xDRorWEKA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=un94pmrwE96Ei1ot9vZJB7WZZ3p13uWFj5TyY/b+27KjejyEwu85+8VrNeUjGtEKKUz+iWHmKgUrq5ffU/o4nLSSN+PsD73Le31y8v5sDrRe9XUzUASWAx/UqwIqP0+UDOPertw3r63vf3u/rWEeyuJ433QNXgL0NsbjmkL4bJs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=FN/TWIfL; arc=none smtp.client-ip=203.254.224.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="FN/TWIfL" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20241016123648epoutp01542ed5ec114c22d8eddb84c46a61d99c~_7xuL_D-Y1560215602epoutp01t for ; Wed, 16 Oct 2024 12:36:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20241016123648epoutp01542ed5ec114c22d8eddb84c46a61d99c~_7xuL_D-Y1560215602epoutp01t DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082208; bh=pP7fuKjfTHtbF6PT6N4PWc3TJYSIrBfJKrC83hsylPA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FN/TWIfLUV/X93G36rboLeGzr/WfyzK7gW3g5K+iL9uqn6Dlq0w+CESQe1zGNDvDX wormGNQTzlnAN5Ud/ZPUkj2ljxvp++R+NMMgHinXKj4RSbOYluj8+4BbFvSZ+yLR7R OT2hxF3C5HzKmiPP0bW8/CEy+k6eH5s86me8e1Q8= Received: from epsnrtp3.localdomain (unknown [182.195.42.164]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20241016123647epcas5p2361dbf3e7a9c551f2321d41a62c57b26~_7xtmixik1006810068epcas5p2J; Wed, 16 Oct 2024 12:36:47 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.177]) by epsnrtp3.localdomain (Postfix) with ESMTP id 4XT9St2kWdz4x9Pp; Wed, 16 Oct 2024 12:36:46 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id F5.37.08574.E53BF076; Wed, 16 Oct 2024 21:36:46 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20241016113745epcas5p1723d91b979fd0e597495fef377ad0f62~_6_KjuipO1436014360epcas5p1C; Wed, 16 Oct 2024 11:37:45 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20241016113745epsmtrp24559f8dcad65ab7967e8ec2fd2772af3~_6_Ki4UcD1554615546epsmtrp2v; Wed, 16 Oct 2024 11:37:45 +0000 (GMT) X-AuditID: b6c32a44-6dbff7000000217e-18-670fb35e2cd8 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 5F.BA.08229.985AF076; Wed, 16 Oct 2024 20:37:45 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113743epsmtip1498e161032d7d5e8bb1c6da199eaf0ee~_6_IkrovM3048330483epsmtip1k; Wed, 16 Oct 2024 11:37:43 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta Subject: [PATCH v4 06/11] block: add flags for integrity meta Date: Wed, 16 Oct 2024 16:59:07 +0530 Message-Id: <20241016112912.63542-7-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Te0xbVRzHc27fJN3uynRHBFdvAgSUR6XU2w6cRNyaDSOooPiHtaHXFlva rrcFNkxWWZpZ5L0sGx2vKEhafDBg5VFqRi2y1a1sq45HgjFxjCphioAKOGLLLbr/Puf3+v5+ v3MOm8bzMGPYpVojYdDKNRgziu78Jikp5Z2Bvcr0n5f24SvrW3S8uvEhDW91OAHeO9/AxGev jiC4vXcCwR9Y/HS82XMX4EM3umm4e+4ZvOOzBRb+8fQwE++Z3EbwKVsr68U90hHbPEsauGmS 9jusTOlA12mpa9bMlK4szNGl9YMOIB34rkq62v9UPudtdZaKkCsIA5/QlugUpVplNnb8ddlL skxRuiBFIMafx/haeRmRjeXm5accKdWEOsf45XKNKWTKl5MklvZClkFnMhJ8lY40ZmOEXqHR C/WppLyMNGmVqVrCKBGkpz+XGQp8V60au/URQ+9nVda6bjHNoItZAzhsiArhubnPkRoQxeah LgCH+zYZ1OEPAK/VVkc8fwLo/MFB202x/O7dYR7qBjDgJqmgVQAvzFh3HEw0EXoXLSDM+9Fm ABcDhWGmoT4Av9jkhzkazYbLG1YkzHQ0HrZNn9/piYuKYYdlHFBiB2HLnb9YYeagEujzj7Oo mH3wess9OlXzIDxz5RIt3AREB9mwa6OJQSXnwl8C30c4Gv46OciiOAauPnBHFqCEfwcWEIr1 8My3X0eED0OLryFUlB0SSIJfjaZR5jh43vclQunugXVb9yKpXDjcvssYPGtvjTCEbr8ZCZeB qBTWeeKoXdUBOOW4z2gEfNsj49geGcf2v3InoDnAE4SeLFMSJZl6gZao+O+SS3Rl/WDnMSfn DoOZju1UD0DYwAMgm4bt5zbXcJU8rkJ+8hRh0MkMJg1BekBmaN9NtJjHSnSh36A1ygRCcbpQ JBIJxRkiAXaAu2RpU/BQpdxIqAlCTxh28xA2J8aMxL3anZ9xrYfo1p8+VlVov/OhOGvotwxB 7OLRt8ae3i6+fOGUZPP647ZXcteL7Y2d3ESoi7cnKzamRfoU9d0WU1FCZY/95qfMhotjq03l 9vcqq0bdvXlH1sacfaqkY1P/eDQVNVzzoWDRm8H2mSfJrpf9o2/kXOQciOPcuJ2ckDAJ0JPz soofK9EPliWv7e23n+XUW1xjbaneo97CK5MrBbHVHKRx3te3LhnpzDsUdGv46iZGzonDt12D rUvL9OAJ+3GdN35IdK47qsBpdaHFvtngw58Mtk+K1mqvThjy1mLTDBuXx7dEiW24h4XWR73f PnFfFa3IeNaawysjCsoxOqmSC5JpBlL+L3FvN1tVBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRmVeSWpSXmKPExsWy7bCSnG7nUv50g6Y5UhYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYTDp0jdFi+5mlzBZ7b2lbzF/2lN2i+/oONovl x/8xWZyfNYfdgc9j56y77B6Xz5Z6bFrVyeaxeUm9x+6bDWweH5/eYvHo27KK0WPz6WqPz5vk AjijuGxSUnMyy1KL9O0SuDL2XOhgLTjHXtGz+wJbA+MSti5GTg4JAROJ1g9HmLsYuTiEBHYz SpxsWMICkZCQOPVyGSOELSyx8t9zdoiij4wSr7dtZAJJsAmoSxx53soIkhARmMUocXjWfCYQ h1ngAqPE1X3P2EGqhAVsJd7+7ATrYBFQlZh7fSrYbl4BS4n5rQehVshLzLz0HayeU8BK4tS5 g2C2EFDNv8kfGCHqBSVOznwCdh4zUH3z1tnMExiB1iKkZiFJLWBkWsUomVpQnJueW2xYYJiX Wq5XnJhbXJqXrpecn7uJERxBWpo7GLev+qB3iJGJg/EQowQHs5II76Qu3nQh3pTEyqrUovz4 otKc1OJDjNIcLErivOIvelOEBNITS1KzU1MLUotgskwcnFINTEK98++9KVkos7vMXDpKRWIK /43wCaLKHFucErNcdywKE1DcfGjyHbnaVxFGlV/O7GKfaCMVqte4pNVGdn9mEkv4pRrd5j/n Xeo3Hxf4OqffZ4/O4QLpN8JrVxzjNfOWkWj6kOZe4P/M4WZo6iK1xQndslkx6ksils5tkpcL 39eQYZDxKjrZd2pAulbCuZDOdcyJNx9/60pkUXqap/FdUf/a60VNb1eFikREyPyxXsYs7XlE WNP3it/7gw2XJqr4eWtJ6y7NZDz6Zpre8nCWTF+Tyk1TBXT3NTPuKliT4qQucXxxY6z3I7b/ VSnz7mUu032WFzlzj03IjOdRinxzi0/XXeBrtn1lkZ18cJ8SS3FGoqEWc1FxIgDFjT49DwMA AA== X-CMS-MailID: 20241016113745epcas5p1723d91b979fd0e597495fef377ad0f62 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113745epcas5p1723d91b979fd0e597495fef377ad0f62 References: <20241016112912.63542-1-anuj20.g@samsung.com> Add flags to describe checks for integrity meta buffer. These flags are specified by application as io_uring meta_flags, added in the next patch. Signed-off-by: Anuj Gupta --- include/uapi/linux/blkdev.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/uapi/linux/blkdev.h b/include/uapi/linux/blkdev.h index 66373cd1a83a..d606f8b9c0a0 100644 --- a/include/uapi/linux/blkdev.h +++ b/include/uapi/linux/blkdev.h @@ -11,4 +11,15 @@ */ #define BLOCK_URING_CMD_DISCARD _IO(0x12, 0) +/* + * flags for integrity meta + */ +#define BLK_INTEGRITY_CHK_GUARD (1U << 0) /* enforce guard check */ +#define BLK_INTEGRITY_CHK_APPTAG (1U << 1) /* enforce app tag check */ +#define BLK_INTEGRITY_CHK_REFTAG (1U << 2) /* enforce ref tag check */ + +#define BLK_INTEGRITY_VALID_FLAGS (BLK_INTEGRITY_CHK_GUARD |\ + BLK_INTEGRITY_CHK_APPTAG |\ + BLK_INTEGRITY_CHK_REFTAG) + #endif From patchwork Wed Oct 16 11:29:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836090 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B75FF208D82 for ; Wed, 16 Oct 2024 12:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.24 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082220; cv=none; b=l3JwPeFkeBSFLgPh7a6fvVYzUSW1JDWVfIBB4h9/PqjZJVepKeJl/g1ON6UYht4YGQDgVPNblbuaM8Q0msapMzjpmep3LRw4rdBDeAZAL+LrvRVf+14kdMoxe1bDFc4cbOQy1i3es8YKlNck8BxCz3yYs+t9PLkgGig/2I8QNjY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082220; c=relaxed/simple; bh=AFxgKf2CMX7UNneAa1dPUe538R2nji7Q/4SWY/M9j3U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=ap10cdWmhnqVBlBIjHB+ZtqHVp9koVCj1DVjEw5PfY7gb8neonAZ7aS/mBbSFZFJjMWZTTglraG8c+kAkL7lNsNbqulfxX374XFA9fdsLiFZ9M17HhlHrdLUnNEE0+UDI+7j5JtOxIrLJP8js8Jqj3uAks455LR1lv27s7WU17U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=E53Udn/g; arc=none smtp.client-ip=203.254.224.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="E53Udn/g" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20241016123656epoutp014d28d490f47fd0314b5596cbb6add007~_7x14ykws1560215602epoutp01w for ; Wed, 16 Oct 2024 12:36:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20241016123656epoutp014d28d490f47fd0314b5596cbb6add007~_7x14ykws1560215602epoutp01w DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082216; bh=O39Go3fokUwZDWd7rBK8ZXZOW5p4wPCNqPYj2KzQgs0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E53Udn/gnHiNCBebXklaOd7wKsg7xwfExftYL4UfvTYuZyy8wm+x1ldF9R5zj1jJX DZsrGR63wn9hP39RNsl590jTsz27FoiUX4NrNUHIODyjBezs4TloNzSq5hu85dg2Ht 4EdsNrgRUdlsVSld/MFqOUSHhveyvStdAM0KkPhI= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20241016123656epcas5p175030dfc059206de463d20baff9a97c1~_7x1X84gm0838008380epcas5p1v; Wed, 16 Oct 2024 12:36:56 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.179]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4XT9T23fNTz4x9Pt; Wed, 16 Oct 2024 12:36:54 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id DA.37.08574.663BF076; Wed, 16 Oct 2024 21:36:54 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20241016113747epcas5p4e276eb0da2695ba032ce1d2a3b83fff4~_6_MxwORC2712227122epcas5p4e; Wed, 16 Oct 2024 11:37:47 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20241016113747epsmtrp1f416b0972e498ffb7e22bae5484e113b~_6_Mvz4fa0254402544epsmtrp1t; Wed, 16 Oct 2024 11:37:47 +0000 (GMT) X-AuditID: b6c32a44-6dbff7000000217e-26-670fb366331e Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id CF.9A.07371.B85AF076; Wed, 16 Oct 2024 20:37:47 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113745epsmtip1125d8d26ee15ee70412c75ac746a6bf6~_6_KnXcxQ2871328713epsmtip15; Wed, 16 Oct 2024 11:37:45 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta , Kanchan Joshi Subject: [PATCH v4 07/11] io_uring/rw: add support to send meta along with read/write Date: Wed, 16 Oct 2024 16:59:08 +0530 Message-Id: <20241016112912.63542-8-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBJsWRmVeSWpSXmKPExsWy7bCmlm7aZv50g7vLJSw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDMq2yYjNTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DX LTMH6HwlhbLEnFKgUEBicbGSvp1NUX5pSapCRn5xia1SakFKToFJgV5xYm5xaV66Xl5qiZWh gYGRKVBhQnZG294pbAXbbCua1s5hamCcYNTFyMkhIWAiMXV7H3MXIxeHkMBuRomF7T/ZIJxP jBJnzsxjhHC+MUoc7L7GCNNypmsmC4gtJLCXUWLGfmGIos+MEhPOTGYHSbAJqEsced4K1iAi MIlR4vnlUJAiZoH3jBLv9y9nBUkIC4RL/NzyjQ3EZhFQleg9/BoszitgKTH/6Hw2iG3yEjMv fQcbyilgJXHq3EF2iBpBiZMzn4BdwQxU07x1NtgTEgJ7OCTWrD4L1ewiceTMLyYIW1ji1fEt 7BC2lMTL/jYoO13ix+WnUDUFEs3H9kG9aS/ReqofaCgH0AJNifW79CHCshJTT61jgtjLJ9H7 +wlUK6/EjnkwtpJE+8o5ULaExN5zDVC2h8Tir3tZISHXyyixZrLYBEaFWUjemYXknVkImxcw Mq9ilEwtKM5NT002LTDMSy2Hx3Jyfu4mRnCS1nLZwXhj/j+9Q4xMHIyHGCU4mJVEeCd18aYL 8aYkVlalFuXHF5XmpBYfYjQFhvdEZinR5HxgnsgriTc0sTQwMTMzM7E0NjNUEud93To3RUgg PbEkNTs1tSC1CKaPiYNTqoFp4dSc148OruJ6K1l95tfpK0cz3au3TX19PGyL5I7JL/bO8CpV Xzi5aUbeG0Zd66CEUrGash8T/d5w2CRcfGhzTV+l4Em94xL3+W8bls9MeJv+4rCQlNBzhRUz 1/afLpovJHn+Ufq6QCmGC5PP9PnxTDf6rBYWVtXrd/aBoLTlsdnWa6vnxjwqOnvG60Izo/hx jVLrrqC382avnbNgvxNTtov0bdG3592r3zM2Tcq4ujBWenHxeoXPSfEShSo89vE7ZsarpMr7 HfrDnGz52nSd57wbaVErTxc5t3MX1a+P159XO1Nl0vHp0y3NjKq21fPG5aWWZXWqaWzde2Fn HEPSd5HW+yc/p2W6JJ+davtQiaU4I9FQi7moOBEAO0BONFsEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeLIzCtJLcpLzFFi42LZdlhJTrd7KX+6wa+txhYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYHP3/ls1i0qFrjBbbzyxltth7S9ti/rKn7Bbd 13ewWSw//o/J4vysOewO/B47Z91l97h8ttRj06pONo/NS+o9dt9sYPP4+PQWi0ffllWMHptP V3t83iQXwBnFZZOSmpNZllqkb5fAldG2dwpbwTbbiqa1c5gaGCcYdTFyckgImEic6ZrJ0sXI xSEksJtRYtaxZ4wQCQmJUy+XQdnCEiv/PWeHKPrIKPFo1il2kASbgLrEkeetjCAJEYFZjBKH Z81nAnGYBb4zSkxbfo0FpEpYIFRi5ZMtYDaLgKpE7+HXrCA2r4ClxPyj89kgVshLzLz0HWwq p4CVxKlzB8FsIaCaf5M/MELUC0qcnPkEbA4zUH3z1tnMExiB1iKkZiFJLWBkWsUomVpQnJue m2xYYJiXWq5XnJhbXJqXrpecn7uJERxLWho7GO/N/6d3iJGJg/EQowQHs5II76Qu3nQh3pTE yqrUovz4otKc1OJDjNIcLErivIYzZqcICaQnlqRmp6YWpBbBZJk4OKUamK53h9/+uUwzd4Le tZnrdiatvHb5/uY79z5Lm3Pf8/z6nWUj+6a3mQfSfS7ftLjDrJU1kz895eL6T9kSHNIm3p8z C172SLF2vy9xONvtVNlQ2nHNbhlfIuN2k6L9h3N+s8foXrN0s4uofV2sYpqnF7XI9eF5gyUx YU/Tt4q+iPeb7hWe3pFQYZj5pyeDLfPd01UMLKuM/nGx2l0/2v+1N2HHbP16yRdhqw08zzvY f1x/Pu7Wn/Anz6rOnTVjOeHR0x1VaOeycLd/04fVuQGJb13uXrYpWutl1GJbZePd1WXy6XD9 D6H+fRcy1G5X1pt+syts8bh4snKPbOIhyaOVhcW7TL69/7KRJ+aGeKyeEktxRqKhFnNRcSIA PssA2RQDAAA= X-CMS-MailID: 20241016113747epcas5p4e276eb0da2695ba032ce1d2a3b83fff4 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113747epcas5p4e276eb0da2695ba032ce1d2a3b83fff4 References: <20241016112912.63542-1-anuj20.g@samsung.com> This patch adds the capability of sending meta along with read/write. This meta is represented by a newly introduced 'struct io_uring_meta' which specifies information such as meta type,flags,buffer,length,seed and apptag. Application sets up a SQE128 ring, prepares io_uring_meta within the second SQE. The patch processes the user-passed information to prepare uio_meta descriptor and passes it down using kiocb->private. Meta exchange is supported only for direct IO. Also vectored read/write operations with meta are not supported currently. Signed-off-by: Anuj Gupta Signed-off-by: Kanchan Joshi --- include/uapi/linux/io_uring.h | 26 ++++++++++++ io_uring/io_uring.c | 6 +++ io_uring/rw.c | 75 +++++++++++++++++++++++++++++++++-- io_uring/rw.h | 15 ++++++- 4 files changed, 118 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index 86cb385fe0b5..1cd165720fcc 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -105,6 +105,32 @@ struct io_uring_sqe { */ __u8 cmd[0]; }; + /* + * If the ring is initialized with IORING_SETUP_SQE128, then + * this field is starting offset for 64 bytes of data. For meta io + * this contains 'struct io_uring_meta' + */ + __u8 big_sqe_cmd[0]; +}; + +enum io_uring_sqe_meta_type_bits { + META_TYPE_INTEGRITY_BIT, + /* not a real meta type; just to make sure that we don't overflow */ + META_TYPE_LAST_BIT, +}; + +/* meta type flags */ +#define META_TYPE_INTEGRITY (1U << META_TYPE_INTEGRITY_BIT) + +/* this goes to SQE128 */ +struct io_uring_meta { + __u16 meta_type; + __u16 meta_flags; + __u32 meta_len; + __u64 meta_addr; + __u32 seed; + __u16 app_tag; + __u8 pad[42]; }; /* diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index d7ad4ea5f40b..e5551e2e7bde 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -3857,6 +3857,12 @@ static int __init io_uring_init(void) /* top 8bits are for internal use */ BUILD_BUG_ON((IORING_URING_CMD_MASK & 0xff000000) != 0); + BUILD_BUG_ON(sizeof(struct io_uring_meta) > + sizeof(struct io_uring_sqe)); + + BUILD_BUG_ON(META_TYPE_LAST_BIT > + 8 * sizeof_field(struct io_uring_meta, meta_type)); + io_uring_optable_init(); /* diff --git a/io_uring/rw.c b/io_uring/rw.c index 80ae3c2ebb70..b727e5ef19fc 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -257,6 +257,49 @@ static int io_prep_rw_setup(struct io_kiocb *req, int ddir, bool do_import) return 0; } +static inline void io_meta_save_state(struct io_async_rw *io) +{ + io->meta_state.seed = io->meta.seed; + iov_iter_save_state(&io->meta.iter, &io->meta_state.iter_meta); +} + +static inline void io_meta_restore(struct io_async_rw *io) +{ + io->meta.seed = io->meta_state.seed; + iov_iter_restore(&io->meta.iter, &io->meta_state.iter_meta); +} + +static int io_prep_rw_meta(struct io_kiocb *req, const struct io_uring_sqe *sqe, + struct io_rw *rw, int ddir) +{ + const struct io_uring_meta *md = (struct io_uring_meta *)sqe->big_sqe_cmd; + u16 meta_type = READ_ONCE(md->meta_type); + const struct io_issue_def *def; + struct io_async_rw *io; + int ret; + + if (!meta_type) + return 0; + if (!(meta_type & META_TYPE_INTEGRITY)) + return -EINVAL; + + def = &io_issue_defs[req->opcode]; + if (def->vectored) + return -EOPNOTSUPP; + + io = req->async_data; + io->meta.flags = READ_ONCE(md->meta_flags); + io->meta.app_tag = READ_ONCE(md->app_tag); + io->meta.seed = READ_ONCE(md->seed); + ret = import_ubuf(ddir, u64_to_user_ptr(READ_ONCE(md->meta_addr)), + READ_ONCE(md->meta_len), &io->meta.iter); + if (unlikely(ret < 0)) + return ret; + rw->kiocb.ki_flags |= IOCB_HAS_METADATA; + io_meta_save_state(io); + return ret; +} + static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe, int ddir, bool do_import) { @@ -279,11 +322,18 @@ static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe, rw->kiocb.ki_ioprio = get_current_ioprio(); } rw->kiocb.dio_complete = NULL; + rw->kiocb.ki_flags = 0; rw->addr = READ_ONCE(sqe->addr); rw->len = READ_ONCE(sqe->len); rw->flags = READ_ONCE(sqe->rw_flags); - return io_prep_rw_setup(req, ddir, do_import); + ret = io_prep_rw_setup(req, ddir, do_import); + + if (unlikely(ret)) + return ret; + if (unlikely(req->ctx->flags & IORING_SETUP_SQE128)) + ret = io_prep_rw_meta(req, sqe, rw, ddir); + return ret; } int io_prep_read(struct io_kiocb *req, const struct io_uring_sqe *sqe) @@ -410,7 +460,10 @@ static inline loff_t *io_kiocb_update_pos(struct io_kiocb *req) static void io_resubmit_prep(struct io_kiocb *req) { struct io_async_rw *io = req->async_data; + struct io_rw *rw = io_kiocb_to_cmd(req, struct io_rw); + if (unlikely(rw->kiocb.ki_flags & IOCB_HAS_METADATA)) + io_meta_restore(io); iov_iter_restore(&io->iter, &io->iter_state); } @@ -777,8 +830,12 @@ static inline int io_iter_do_read(struct io_rw *rw, struct iov_iter *iter) static bool need_complete_io(struct io_kiocb *req) { + struct io_rw *rw = io_kiocb_to_cmd(req, struct io_rw); + + /* Exclude meta IO as we don't support partial completion for that */ return req->flags & REQ_F_ISREG || - S_ISBLK(file_inode(req->file)->i_mode); + S_ISBLK(file_inode(req->file)->i_mode) || + !(rw->kiocb.ki_flags & IOCB_HAS_METADATA); } static int io_rw_init_file(struct io_kiocb *req, fmode_t mode, int rw_type) @@ -795,7 +852,7 @@ static int io_rw_init_file(struct io_kiocb *req, fmode_t mode, int rw_type) if (!(req->flags & REQ_F_FIXED_FILE)) req->flags |= io_file_get_flags(file); - kiocb->ki_flags = file->f_iocb_flags; + kiocb->ki_flags |= file->f_iocb_flags; ret = kiocb_set_rw_flags(kiocb, rw->flags, rw_type); if (unlikely(ret)) return ret; @@ -824,6 +881,14 @@ static int io_rw_init_file(struct io_kiocb *req, fmode_t mode, int rw_type) kiocb->ki_complete = io_complete_rw; } + if (unlikely(kiocb->ki_flags & IOCB_HAS_METADATA)) { + struct io_async_rw *io = req->async_data; + + if (!(req->file->f_flags & O_DIRECT)) + return -EOPNOTSUPP; + kiocb->private = &io->meta; + } + return 0; } @@ -898,6 +963,8 @@ static int __io_read(struct io_kiocb *req, unsigned int issue_flags) * manually if we need to. */ iov_iter_restore(&io->iter, &io->iter_state); + if (unlikely(kiocb->ki_flags & IOCB_HAS_METADATA)) + io_meta_restore(io); do { /* @@ -1102,6 +1169,8 @@ int io_write(struct io_kiocb *req, unsigned int issue_flags) } else { ret_eagain: iov_iter_restore(&io->iter, &io->iter_state); + if (unlikely(kiocb->ki_flags & IOCB_HAS_METADATA)) + io_meta_restore(io); if (kiocb->ki_flags & IOCB_WRITE) io_req_end_write(req); return -EAGAIN; diff --git a/io_uring/rw.h b/io_uring/rw.h index 3f432dc75441..af9e338b2bd8 100644 --- a/io_uring/rw.h +++ b/io_uring/rw.h @@ -1,6 +1,12 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include + +struct io_meta_state { + u32 seed; + struct iov_iter_state iter_meta; +}; struct io_async_rw { size_t bytes_done; @@ -9,7 +15,14 @@ struct io_async_rw { struct iovec fast_iov; struct iovec *free_iovec; int free_iov_nr; - struct wait_page_queue wpq; + /* wpq is for buffered io, while meta fields are used with direct io*/ + union { + struct wait_page_queue wpq; + struct { + struct uio_meta meta; + struct io_meta_state meta_state; + }; + }; }; int io_prep_read_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe); From patchwork Wed Oct 16 11:29:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836089 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 429FD208217 for ; Wed, 16 Oct 2024 12:37:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082235; cv=none; b=K399h38vnyPZxKKqAXRk+Ou8hx7vaNIgN0Kxybw+5p82sTd1Owfnlv2QbPKW1ISGQ7+BBLsFRuVDmD/UJNv7zo/vGcTsGG2dJ5b4gn4Ebhh2Wk6X66shALZVaL22d9vm7yh56p//5PYBbOiDp/xY2TwT2ztFaSL9tUv4F34MWoc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082235; c=relaxed/simple; bh=FmY5BXEWM+NaI9Vzxv8DOlPlOtT5OJ1qgnE39com+lY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=PukMaD/MSS1NWXV2kuCtKyuHPk2rpM5vPl34O/BHkkpAO6mB5sghvYa+P8+rQFoR6fMbz+QYpgiz6BvAwETYMJCovbJVs89Kffh8ZOEAtME8h5QrMmRrbr+Q0boMguSilv1j9l+dYfO+u2OUu9AXmKPQe67AKuR0NK9YOzFeUug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=u72UPhap; arc=none smtp.client-ip=203.254.224.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="u72UPhap" Received: from epcas5p1.samsung.com (unknown [182.195.41.39]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20241016123711epoutp0480f45ba2275e8c64a58722212ab750fa~_7yDg7y4K1871218712epoutp04g for ; Wed, 16 Oct 2024 12:37:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20241016123711epoutp0480f45ba2275e8c64a58722212ab750fa~_7yDg7y4K1871218712epoutp04g DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082231; bh=wzmB/TWoyocJzmZU34Ksi+Owp+0Flh6pJN0TsToBSPo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u72UPhapnGgMZin9WRB+O9eyo0lUo5IUvyumME4bHyjazDHx/1zLI/hEgdkR4YzcJ Dk0kndTTrE5IHJf2pv5+i7luWSaU21YutNGC/C0QHaeOP3pBlpnJzYUWHtmdWk2pA6 ngJe6+ZPKvHdcmaRP9zIt1HpK1GPhStFxyKQfaXI= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20241016123710epcas5p4c8c3f8e11d0940ef04e5bae573107331~_7yCasbmB1722117221epcas5p4i; Wed, 16 Oct 2024 12:37:10 +0000 (GMT) Received: from epsmgec5p1new.samsung.com (unknown [182.195.38.174]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4XT9TJ490Mz4x9Pv; Wed, 16 Oct 2024 12:37:08 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmgec5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 91.47.08574.473BF076; Wed, 16 Oct 2024 21:37:08 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20241016113750epcas5p2089e395ca764de023be64519da9b0982~_6_PBvkgZ3038630386epcas5p2I; Wed, 16 Oct 2024 11:37:50 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20241016113750epsmtrp22c814f9026baaea6d5e51cb50909d6ca~_6_O-nlbU1554615546epsmtrp2x; Wed, 16 Oct 2024 11:37:50 +0000 (GMT) X-AuditID: b6c32a44-6dbff7000000217e-56-670fb3747bd0 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 31.CA.08229.E85AF076; Wed, 16 Oct 2024 20:37:50 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113748epsmtip183e9a7ec82ba541b29d1130741cc0b4d~_6_M1iVTA2875928759epsmtip1J; Wed, 16 Oct 2024 11:37:47 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta , Kanchan Joshi Subject: [PATCH v4 08/11] block: introduce BIP_CHECK_GUARD/REFTAG/APPTAG bip_flags Date: Wed, 16 Oct 2024 16:59:09 +0530 Message-Id: <20241016112912.63542-9-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFJsWRmVeSWpSXmKPExsWy7bCmhm7JZv50g63/ZCw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDMq2yYjNTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DX LTMH6HwlhbLEnFKgUEBicbGSvp1NUX5pSapCRn5xia1SakFKToFJgV5xYm5xaV66Xl5qiZWh gYGRKVBhQnZG+69u5oJZEhWdR8+zNDB+Eu5i5OSQEDCRuLKjhbmLkYtDSGA3o8T5032sEM4n RokVz28wQjjfGCXmrWtkhWn5tesAE0RiL6NEw6yFUP2fGSUWr7kKVsUmoC5x5HkrI4gtIjCJ UeL55VCQImaB94wS7/cvBysSFgiRmP/9NRuIzSKgKrHiZhs7iM0rYCnR/PYs1Dp5iZmXvoPF OQWsJE6dOwhVIyhxcuYTFhCbGaimeetssCskBPZwSKzc0MIO0ewi8bhzMiOELSzx6vgWqLiU xOd3e9kg7HSJH5efMkHYBRLNx/ZB1dtLtJ7qBxrKAbRAU2L9Ln2IsKzE1FPrmCD28kn0/n4C 1corsWMejK0k0b5yDpQtIbH3XAOU7SHxe9oMNkho9TJKvJ3azjqBUWEWkn9mIflnFsLqBYzM qxglUwuKc9NTk00LDPNSy+HxnJyfu4kRnKi1XHYw3pj/T+8QIxMH4yFGCQ5mJRHeSV286UK8 KYmVValF+fFFpTmpxYcYTYEBPpFZSjQ5H5gr8kriDU0sDUzMzMxMLI3NDJXEeV+3zk0REkhP LEnNTk0tSC2C6WPi4JRqYArwaLH5Wjgt/k87x5dzTZOET3dOu32kInf6zv9HZd8/3dTdefrj 4uUPkk/vzVDenf0q+IZF1J3AIt45/i8n/drRKndt0ZH7Djlyz//t298gPWWRwOs7F0T1lCPf yn6ckjg9w4UrzHySx8PQhunvbzc93Wj/7nVnyiyfzpdFv897OAjckY2bzLTs5IF5z1Z8WqrH uD372+XD/vOSNju/XZxQtEZBtvK3lKbQwjncweeYCu7qSVbK22oIKmx7fNdk1f8nYZwd7it4 ir4bp1+WOd/+dVfnnouFUq9c7+ya/bdga9mXZw7Mp3Pjdc1eWIb/5d9+sb/b5OJhhx9vz37t /jDT5tvEFVeu7j5xTyn1nf+5GUosxRmJhlrMRcWJAFR7iohdBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeLIzCtJLcpLzFFi42LZdlhJTrdvKX+6wc57/BYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYHP3/ls1i0qFrjBbbzyxltth7S9ti/rKn7Bbd 13ewWSw//o/J4vysOewO/B47Z91l97h8ttRj06pONo/NS+o9dt9sYPP4+PQWi0ffllWMHptP V3t83iQXwBnFZZOSmpNZllqkb5fAldH+q5u5YJZERefR8ywNjJ+Euxg5OSQETCR+7TrA1MXI xSEksJtRYuLGG+wQCQmJUy+XMULYwhIr/z1nhyj6yChx6s5nNpAEm4C6xJHnrYwgCRGBWYwS h2fNBxvFLPCdUWLa8mssIFXCAkEST26/YwWxWQRUJVbcbANbwStgKdH89iwrxAp5iZmXvoPF OQWsJE6dOwhmCwHV/Jv8gRGiXlDi5MwnYDOZgeqbt85mnsAItBYhNQtJagEj0ypGydSC4tz0 3GLDAsO81HK94sTc4tK8dL3k/NxNjOBY0tLcwbh91Qe9Q4xMHIyHGCU4mJVEeCd18aYL8aYk VlalFuXHF5XmpBYfYpTmYFES5xV/0ZsiJJCeWJKanZpakFoEk2Xi4JRqYAr4NtNUjM+TwyrI fNm0jfLstz3O6nT77S3NT/7VJbC/8NHeu0d6pLQfFLNcS3vQeVqu8jB7uckcyTfLigw4r66N OBcddf/DhPStxioy3WejbfuNJdKVfbfs+dr7akZW8t41Tdv4v7/Y8vC1bvmimvIT9ov/lc+2 3lww5yYzt4ilyYlL80+H79nU6OPKYMSy4HqmW5jRseuz9y+d6P01darv17SNic51V2eHcnYs 96jgfHtJ9G7APK2PCp1zZR+wacobrNzV63QpkPeSPbfL69uH6nvq2M4Km3MbTz913GKZ9vb2 JXf4+iLDrn+apHbEmenmjJYkprmsWpJXFCP+ujobTTHLqvm+i3HPcmWvD0osxRmJhlrMRcWJ AFXA9EwUAwAA X-CMS-MailID: 20241016113750epcas5p2089e395ca764de023be64519da9b0982 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113750epcas5p2089e395ca764de023be64519da9b0982 References: <20241016112912.63542-1-anuj20.g@samsung.com> This patch introduces BIP_CHECK_GUARD/REFTAG/APPTAG bip_flags which indicate how the hardware should check the integrity payload. The driver can now just rely on block layer flags, and doesn't need to know the integrity source. Submitter of PI decides which tags to check. This would also give us a unified interface for user and kernel generated integrity. Signed-off-by: Anuj Gupta Signed-off-by: Kanchan Joshi --- block/bio-integrity.c | 5 +++++ drivers/nvme/host/core.c | 11 +++-------- include/linux/bio-integrity.h | 6 +++++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 341a0382befd..d3c8b56d3fe6 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -436,6 +436,11 @@ bool bio_integrity_prep(struct bio *bio) if (bi->csum_type == BLK_INTEGRITY_CSUM_IP) bip->bip_flags |= BIP_IP_CHECKSUM; + /* describe what tags to check in payload */ + if (bi->csum_type) + bip->bip_flags |= BIP_CHECK_GUARD; + if (bi->flags & BLK_INTEGRITY_REF_TAG) + bip->bip_flags |= BIP_CHECK_REFTAG; if (bio_integrity_add_page(bio, virt_to_page(buf), len, offset_in_page(buf)) < len) { printk(KERN_ERR "could not attach integrity payload\n"); diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 43d73d31c66f..211f44cc02a3 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1004,18 +1004,13 @@ static inline blk_status_t nvme_setup_rw(struct nvme_ns *ns, control |= NVME_RW_PRINFO_PRACT; } - switch (ns->head->pi_type) { - case NVME_NS_DPS_PI_TYPE3: + if (bio_integrity_flagged(req->bio, BIP_CHECK_GUARD)) control |= NVME_RW_PRINFO_PRCHK_GUARD; - break; - case NVME_NS_DPS_PI_TYPE1: - case NVME_NS_DPS_PI_TYPE2: - control |= NVME_RW_PRINFO_PRCHK_GUARD | - NVME_RW_PRINFO_PRCHK_REF; + if (bio_integrity_flagged(req->bio, BIP_CHECK_REFTAG)) { + control |= NVME_RW_PRINFO_PRCHK_REF; if (op == nvme_cmd_zone_append) control |= NVME_RW_APPEND_PIREMAP; nvme_set_ref_tag(ns, cmnd, req); - break; } } diff --git a/include/linux/bio-integrity.h b/include/linux/bio-integrity.h index 529ec7a8df20..a9dd0594dfc8 100644 --- a/include/linux/bio-integrity.h +++ b/include/linux/bio-integrity.h @@ -11,6 +11,9 @@ enum bip_flags { BIP_DISK_NOCHECK = 1 << 3, /* disable disk integrity checking */ BIP_IP_CHECKSUM = 1 << 4, /* IP checksum */ BIP_COPY_USER = 1 << 5, /* Kernel bounce buffer in use */ + BIP_CHECK_GUARD = 1 << 6, /* guard check */ + BIP_CHECK_REFTAG = 1 << 7, /* reftag check */ + BIP_CHECK_APPTAG = 1 << 8, /* apptag check */ }; struct bio_integrity_payload { @@ -41,7 +44,8 @@ struct uio_meta { }; #define BIP_CLONE_FLAGS (BIP_MAPPED_INTEGRITY | BIP_CTRL_NOCHECK | \ - BIP_DISK_NOCHECK | BIP_IP_CHECKSUM) + BIP_DISK_NOCHECK | BIP_IP_CHECKSUM | \ + BIP_CHECK_GUARD | BIP_CHECK_REFTAG | BIP_CHECK_APPTAG) #ifdef CONFIG_BLK_DEV_INTEGRITY From patchwork Wed Oct 16 11:29:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836580 Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 67B1E209679 for ; Wed, 16 Oct 2024 12:37:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.34 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082227; cv=none; b=YGBeNl7wFkVcUNNXDuoJzR6CvvAr/eex/y3GlzJfACamazs7FkqHCWZiiU1npxkrV7uM4iWuazhYIJRBwM/+yCeY7aXJBCHm6niTFqtrxoZz/CnvYzlExxmdXHzqUwA07cyVS6ChOMh0VxJBRr4MBOvVRd07BfpaIumQWs3VubQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082227; c=relaxed/simple; bh=rWG+L8TKua66elGsLM0q6AdqhuoGedubwJQEvqG+Myg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=eDSPP/8kXD8T9ioVp69JMQ+AdgZe52DTrsoEzmrHVTCP4awawjZylb4GDvzyx3kWqWgImC48H+qsr/q6usIHjXY29XfJnTt3Z8F9QQYCG59aayeDzEuMkOjtI1Pzj2VidoORcw1FV1TDmbIln5aQnT4EYnE4JVHqXMYA29tSppY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=Soy1mG2v; arc=none smtp.client-ip=203.254.224.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="Soy1mG2v" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20241016123702epoutp042b565eede58761c369cfde09f26834dc~_7x7V9Dna1941219412epoutp048 for ; Wed, 16 Oct 2024 12:37:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20241016123702epoutp042b565eede58761c369cfde09f26834dc~_7x7V9Dna1941219412epoutp048 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082222; bh=l5NLGAVozNPeGXm3NN3/NT8GrqW9QoQFU3FPIXkqZQ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Soy1mG2vU372NaHyxIzXL+s3WVLZGEGHTSqcQIuF9EbCzauH9iymSyUJyqm0AGtgr josQjeZVwzGKOp2YaO3t6PTHgI9Zoef6VpwHSY+ubxwEl3nNRmZlHZLDIvk9IK2V8y jWOthQOvCADGZD/BOOBsiMidQQwxMTOoX10KZJUw= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20241016123702epcas5p299d4ccd67892ddb47ec8a965a601e475~_7x63VnXv1543915439epcas5p2Y; Wed, 16 Oct 2024 12:37:02 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.174]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4XT9T833sZz4x9Pv; Wed, 16 Oct 2024 12:37:00 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 97.18.09420.C63BF076; Wed, 16 Oct 2024 21:37:00 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20241016113752epcas5p4c365819fce1e5d498fd781ae2b309341~_6_RMXIKo1424214242epcas5p4n; Wed, 16 Oct 2024 11:37:52 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20241016113752epsmtrp22c9d3afdc4237a16a85531587f299460~_6_RLg81s1555115551epsmtrp2i; Wed, 16 Oct 2024 11:37:52 +0000 (GMT) X-AuditID: b6c32a49-0d5ff700000024cc-04-670fb36cf13d Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 4F.68.08227.095AF076; Wed, 16 Oct 2024 20:37:52 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113750epsmtip15073a22c64ea221d14f0ec92e0320c7c~_6_PFnQMF2787227872epsmtip16; Wed, 16 Oct 2024 11:37:50 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Kanchan Joshi , Anuj Gupta Subject: [PATCH v4 09/11] block: add support to pass user meta buffer Date: Wed, 16 Oct 2024 16:59:10 +0530 Message-Id: <20241016112912.63542-10-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJJsWRmVeSWpSXmKPExsWy7bCmlm7OZv50g7cnBCw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDMq2yYjNTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DX LTMH6HwlhbLEnFKgUEBicbGSvp1NUX5pSapCRn5xia1SakFKToFJgV5xYm5xaV66Xl5qiZWh gYGRKVBhQnbGrN3nWArWWVR8W72HvYGxVa+LkZNDQsBE4tSlu6xdjFwcQgK7GSU2d11mg3A+ MUr8alzFDOF8Y5S4e3wWM0zLg60XoBJ7GSWmPjjMDuF8ZpQ4uqKZFaSKTUBd4sjzVkYQW0Rg EqPE88uhIEXMAu8ZJZY9mwWWEBZwlfj6fREbiM0ioCrx6+A/sDivgJXE6RlzoNbJS8y89J0d xOYEip86d5AdokZQ4uTMJywgNjNQTfPW2VD1ezgk3v4pgrBdJOY2zGWFsIUlXh3fwg5hS0l8 freXDcJOl/hx+SkThF0g0XxsHyOEbS/ReqofaCYH0HxNifW79CHCshJTT61jgljLJ9H7+wlU K6/EjnkwtpJE+8o5ULaExN5zDVC2h8SnhnfQwOpllJi5ax3TBEaFWUjemYXknVkIqxcwMq9i lEwtKM5NTy02LTDMSy2HR3Nyfu4mRnCa1vLcwXj3wQe9Q4xMHIyHGCU4mJVEeCd18aYL8aYk VlalFuXHF5XmpBYfYjQFhvdEZinR5HxgpsgriTc0sTQwMTMzM7E0NjNUEud93To3RUggPbEk NTs1tSC1CKaPiYNTqoEpQ670c/kl1clL//uI7nTY+6Zxx9PVtp9/qMzQEF7Dy8N+2eLU4pXz NVfofY89khvcm3oj3PPK3HPCzqwSBxLCO24VxD8+P6/WRWt96vwE+RPb+B8XFaoE/PsnWMIl abfoTOXs844SlTNqdfsTV/vbsjTd+2OppnB/fXAz093aZqF1tlz/M9ZrnSoql3DI6g+fOWm1 Y0zzL9EjrBzLunfJdR597bVZx/Lr9NpXrz9xJa/Ue18v963/qeiPCz0Pn5ve1ZAzEboRNG+6 Tqhe8h4nWesb3d03H0zfnpkau/l4+Ps9HHu22Ry+sc8jtfeTTLRDzwyG7fkJXc6S0+QFzxia h5Z8YWFiE6vIZTjhlazEUpyRaKjFXFScCABNoRPVXAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeLIzCtJLcpLzFFi42LZdlhJTnfCUv50g/51qhYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYHP3/ls1i0qFrjBbbzyxltth7S9ti/rKn7Bbd 13ewWSw//o/J4vysOewO/B47Z91l97h8ttRj06pONo/NS+o9dt9sYPP4+PQWi0ffllWMHptP V3t83iQXwBnFZZOSmpNZllqkb5fAlTFr9zmWgnUWFd9W72FvYGzV62Lk5JAQMJF4sPUCcxcj F4eQwG5GiZmrN7JBJCQkTr1cxghhC0us/PecHaLoI6NE15TfLCAJNgF1iSPPWxlBEiICsxgl Ds+azwSSYBb4zijxr9sZxBYWcJX4+n0R2FQWAVWJXwf/gU3lFbCSOD1jDjPEBnmJmZe+s4PY nEDxU+cOgtlCApYS/yZ/gKoXlDg58wkLxHx5ieats5knMAJtRUjNQpJawMi0ilEytaA4Nz23 2LDAKC+1XK84Mbe4NC9dLzk/dxMjOJK0tHYw7ln1Qe8QIxMH4yFGCQ5mJRHeSV286UK8KYmV ValF+fFFpTmpxYcYpTlYlMR5v73uTRESSE8sSc1OTS1ILYLJMnFwSjUwpZbw9ErMeH3U2S2y yN1M4/eR68EcaVt8k3YZzOhNjHpWtPTJkp8xvQ8PVR2VD9f7+/ZDTLP8p3IWdc30oLjQb0e2 X+GKlppic92Tq7b4+5m0LPbdb3dMrDEU6/lRv7+r9OxxmzLeF4ru95lyLgSfmVczXfRnotH3 Xz633h96ybPWsk1o1yOLdT6eAlWhoazu8yIDT75lMDl+pbPx3T6RN7t2iEfHBxakqfitX6g6 Y9NlrZKwHxazZxVVTtQNV0u5LWAw4XaCz0EFK84FVw9dXxy1RDeq1yUud16Pmt+j16V17Ktq 2abdmXFZmmtXkCq3Ogfv9QM5S352zVrIUsdybsGEwrWMtRPuxCXPnvxSiaU4I9FQi7moOBEA 9ROoixMDAAA= X-CMS-MailID: 20241016113752epcas5p4c365819fce1e5d498fd781ae2b309341 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113752epcas5p4c365819fce1e5d498fd781ae2b309341 References: <20241016112912.63542-1-anuj20.g@samsung.com> From: Kanchan Joshi If an iocb contains metadata, extract that and prepare the bip. Based on flags specified by the user, set corresponding guard/app/ref tags to be checked in bip. Signed-off-by: Anuj Gupta Signed-off-by: Kanchan Joshi Reviewed-by: Christoph Hellwig --- block/bio-integrity.c | 51 +++++++++++++++++++++++++++++++++++ block/fops.c | 44 +++++++++++++++++++++++------- include/linux/bio-integrity.h | 7 +++++ 3 files changed, 93 insertions(+), 9 deletions(-) diff --git a/block/bio-integrity.c b/block/bio-integrity.c index d3c8b56d3fe6..24fad9b6f3ec 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "blk.h" static struct kmem_cache *bip_slab; @@ -303,6 +304,55 @@ static unsigned int bvec_from_pages(struct bio_vec *bvec, struct page **pages, return nr_bvecs; } +static void bio_uio_meta_to_bip(struct bio *bio, struct uio_meta *meta) +{ + struct bio_integrity_payload *bip = bio_integrity(bio); + + if (meta->flags & BLK_INTEGRITY_CHK_GUARD) + bip->bip_flags |= BIP_CHECK_GUARD; + if (meta->flags & BLK_INTEGRITY_CHK_APPTAG) + bip->bip_flags |= BIP_CHECK_APPTAG; + if (meta->flags & BLK_INTEGRITY_CHK_REFTAG) + bip->bip_flags |= BIP_CHECK_REFTAG; + + bip->app_tag = meta->app_tag; +} + +int bio_integrity_map_iter(struct bio *bio, struct uio_meta *meta) +{ + struct blk_integrity *bi = blk_get_integrity(bio->bi_bdev->bd_disk); + unsigned int integrity_bytes; + int ret; + struct iov_iter it; + + if (!bi) + return -EINVAL; + + /* should fit into two bytes */ + BUILD_BUG_ON(BLK_INTEGRITY_VALID_FLAGS >= (1 << 16)); + + if (meta->flags && (meta->flags & ~BLK_INTEGRITY_VALID_FLAGS)) + return -EINVAL; + + /* + * original meta iterator can be bigger. + * process integrity info corresponding to current data buffer only. + */ + it = meta->iter; + integrity_bytes = bio_integrity_bytes(bi, bio_sectors(bio)); + if (it.count < integrity_bytes) + return -EINVAL; + + it.count = integrity_bytes; + ret = bio_integrity_map_user(bio, &it, meta->seed); + if (!ret) { + bio_uio_meta_to_bip(bio, meta); + iov_iter_advance(&meta->iter, integrity_bytes); + meta->seed += bio_integrity_intervals(bi, bio_sectors(bio)); + } + return ret; +} + int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter, u32 seed) { @@ -566,6 +616,7 @@ int bio_integrity_clone(struct bio *bio, struct bio *bio_src, bip->bip_vec = bip_src->bip_vec; bip->bip_iter = bip_src->bip_iter; bip->bip_flags = bip_src->bip_flags & BIP_CLONE_FLAGS; + bip->app_tag = bip_src->app_tag; return 0; } diff --git a/block/fops.c b/block/fops.c index e696ae53bf1e..59257b209bfb 100644 --- a/block/fops.c +++ b/block/fops.c @@ -57,6 +57,7 @@ static ssize_t __blkdev_direct_IO_simple(struct kiocb *iocb, struct bio bio; ssize_t ret; + WARN_ON_ONCE(iocb->ki_flags & IOCB_HAS_METADATA); if (nr_pages <= DIO_INLINE_BIO_VECS) vecs = inline_vecs; else { @@ -131,6 +132,9 @@ static void blkdev_bio_end_io(struct bio *bio) if (bio->bi_status && !dio->bio.bi_status) dio->bio.bi_status = bio->bi_status; + if (dio->iocb->ki_flags & IOCB_HAS_METADATA) + bio_integrity_unmap_user(bio); + if (atomic_dec_and_test(&dio->ref)) { if (!(dio->flags & DIO_IS_SYNC)) { struct kiocb *iocb = dio->iocb; @@ -224,14 +228,16 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, * a retry of this from blocking context. */ if (unlikely(iov_iter_count(iter))) { - bio_release_pages(bio, false); - bio_clear_flag(bio, BIO_REFFED); - bio_put(bio); - blk_finish_plug(&plug); - return -EAGAIN; + ret = -EAGAIN; + goto fail; } bio->bi_opf |= REQ_NOWAIT; } + if (!is_sync && (iocb->ki_flags & IOCB_HAS_METADATA)) { + ret = bio_integrity_map_iter(bio, iocb->private); + if (unlikely(ret)) + goto fail; + } if (is_read) { if (dio->flags & DIO_SHOULD_DIRTY) @@ -272,6 +278,14 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, bio_put(&dio->bio); return ret; + +fail: + bio_release_pages(bio, false); + bio_clear_flag(bio, BIO_REFFED); + bio_put(bio); + blk_finish_plug(&plug); + return ret; + } static void blkdev_bio_end_io_async(struct bio *bio) @@ -289,6 +303,9 @@ static void blkdev_bio_end_io_async(struct bio *bio) ret = blk_status_to_errno(bio->bi_status); } + if (iocb->ki_flags & IOCB_HAS_METADATA) + bio_integrity_unmap_user(bio); + iocb->ki_complete(iocb, ret); if (dio->flags & DIO_SHOULD_DIRTY) { @@ -333,10 +350,8 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb, bio_iov_bvec_set(bio, iter); } else { ret = bio_iov_iter_get_pages(bio, iter); - if (unlikely(ret)) { - bio_put(bio); - return ret; - } + if (unlikely(ret)) + goto out_bio_put; } dio->size = bio->bi_iter.bi_size; @@ -349,6 +364,13 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb, task_io_account_write(bio->bi_iter.bi_size); } + if (iocb->ki_flags & IOCB_HAS_METADATA) { + ret = bio_integrity_map_iter(bio, iocb->private); + WRITE_ONCE(iocb->private, NULL); + if (unlikely(ret)) + goto out_bio_put; + } + if (iocb->ki_flags & IOCB_ATOMIC) bio->bi_opf |= REQ_ATOMIC; @@ -363,6 +385,10 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb, submit_bio(bio); } return -EIOCBQUEUED; + +out_bio_put: + bio_put(bio); + return ret; } static ssize_t blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter) diff --git a/include/linux/bio-integrity.h b/include/linux/bio-integrity.h index a9dd0594dfc8..ec792873f2d5 100644 --- a/include/linux/bio-integrity.h +++ b/include/linux/bio-integrity.h @@ -24,6 +24,7 @@ struct bio_integrity_payload { unsigned short bip_vcnt; /* # of integrity bio_vecs */ unsigned short bip_max_vcnt; /* integrity bio_vec slots */ unsigned short bip_flags; /* control flags */ + u16 app_tag; /* application tag value */ struct bvec_iter bio_iter; /* for rewinding parent bio */ @@ -90,6 +91,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio, gfp_t gfp, int bio_integrity_add_page(struct bio *bio, struct page *page, unsigned int len, unsigned int offset); int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter, u32 seed); +int bio_integrity_map_iter(struct bio *bio, struct uio_meta *meta); void bio_integrity_unmap_user(struct bio *bio); bool bio_integrity_prep(struct bio *bio); void bio_integrity_advance(struct bio *bio, unsigned int bytes_done); @@ -121,6 +123,11 @@ static inline int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter, return -EINVAL; } +static inline int bio_integrity_map_iter(struct bio *bio, struct uio_meta *meta) +{ + return -EINVAL; +} + static inline void bio_integrity_unmap_user(struct bio *bio) { } From patchwork Wed Oct 16 11:29:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836579 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 604DB208D78 for ; Wed, 16 Oct 2024 12:37:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082242; cv=none; b=PizHMBWFuBuU/HEtyASWdyptXX6GiJ3xJMsSmxNzG7xv/C0Vnp1OtM6Sx53yBSi6MsbcefmhVOpmB9LvHgYmXRbs3ZnA9KxfD6+PBD+7bqBDkHnDiQsLt0rdIFg8/VR5JCcHvdULYhfGTKiAxihdtX3gwzgJZc8L4RVRACUbn6Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082242; c=relaxed/simple; bh=55i5BYT08PR+ogRCKeefqI6P0kYHacdRz9t+UtJq0mI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=ZeWyTAHwa9uVUvYUCOBFL5m4sj0KQ7OxxVx+AkChUC6rAm65/Z5vHNDgMRLMQ0Ys3ExtO4cE4EbYI3W4zZVpIJZXOoql9KBUixl75FR8HuErCMjV+Bt+aq2xcT6d/TUetaxbm9DT/IyxE4mkINstsDfqAHnJAVrtcEAxvOPBNc8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=e2+/jeDu; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="e2+/jeDu" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20241016123718epoutp032c23a1dfa6db4c78f56a216643b44ea5~_7yKO28pT1102511025epoutp03R for ; Wed, 16 Oct 2024 12:37:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20241016123718epoutp032c23a1dfa6db4c78f56a216643b44ea5~_7yKO28pT1102511025epoutp03R DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082238; bh=rp2FS8zl3jE/nKjhp03u/2IrOy2rAmcpwepbQ5vVxF8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e2+/jeDuW3uMxGPnYeS14wahU1Ema4xiRm4PR1fUQZGxVJJcWS2dVmVEXkq5AOU4a Kq3FEjM7TLbAVkHaeqhnTzszcc0ril6qPPEjA8Bhq+ZxwQ6GjlpGoYI24DEu6j010b Fd0q7v8LPqa7wjog1gZMA3/feEqn9iNRvqoS3l/o= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20241016123718epcas5p1f952275928210c06b8799453c1168094~_7yJrnWtE2746927469epcas5p1N; Wed, 16 Oct 2024 12:37:18 +0000 (GMT) Received: from epsmgec5p1-new.samsung.com (unknown [182.195.38.174]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4XT9TS2jw0z4x9Pq; Wed, 16 Oct 2024 12:37:16 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmgec5p1-new.samsung.com (Symantec Messaging Gateway) with SMTP id 26.63.18935.C73BF076; Wed, 16 Oct 2024 21:37:16 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20241016113755epcas5p2d563b183a9f4e19f5c02d73255282342~_6_TVmfn53038230382epcas5p2R; Wed, 16 Oct 2024 11:37:55 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20241016113755epsmtrp15b225a1884e9c64c9f4e76452b15d6d7~_6_TUzQX60254402544epsmtrp1x; Wed, 16 Oct 2024 11:37:55 +0000 (GMT) X-AuditID: b6c32a50-cb1f8700000049f7-82-670fb37c9fa0 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 40.78.08227.295AF076; Wed, 16 Oct 2024 20:37:54 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113752epsmtip19c5aa77a3fa0dd1f65f9f54ac12acc52~_6_RRY3Th2875928759epsmtip1K; Wed, 16 Oct 2024 11:37:52 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Kanchan Joshi , Anuj Gupta Subject: [PATCH v4 10/11] nvme: add support for passing on the application tag Date: Wed, 16 Oct 2024 16:59:11 +0530 Message-Id: <20241016112912.63542-11-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBJsWRmVeSWpSXmKPExsWy7bCmhm7NZv50gyedwhYfv/5msWia8JfZ Ys6qbYwWq+/2s1ncPLCTyWLl6qNMFu9az7FYHP3/ls1i0qFrjBbbzyxltth7S9ti/rKn7Bbd 13ewWSw//o/J4vysOewO/B47Z91l97h8ttRj06pONo/NS+o9dt9sYPP4+PQWi0ffllWMHptP V3t83iQXwBmVbZORmpiSWqSQmpecn5KZl26r5B0c7xxvamZgqGtoaWGupJCXmJtqq+TiE6Dr lpkDdL6SQlliTilQKCCxuFhJ386mKL+0JFUhI7+4xFYptSAlp8CkQK84Mbe4NC9dLy+1xMrQ wMDIFKgwITvj1YrTTAU3uSr2XdvA3MD4haOLkZNDQsBEYt3l90wgtpDAHkaJ4/+SIOxPjBKz p1p1MXIB2d8YJTYencQK09CweAcjRNFeRonGJ/YQRZ8ZJc4eOweWYBNQlzjyvBXMFhGYxCjx /HIoSBGzwHtGiWXPZoElhAUCJHY9/AA2lUVAVeLW/1vsIDavgJXEr33/mCG2yUvMvPQdLM4J FD917iBUjaDEyZlPWEBsZqCa5q2zmUEWSAjs4JDYfmUBG0Szi8TB3degbGGJV8e3sEPYUhIv +9ug7HSJH5efMkHYBRLNx/YxQtj2Eq2n+oGGcgAt0JRYv0sfIiwrMfXUOiaIvXwSvb+fQLXy SuyYB2MrSbSvnANlS0jsPdcAZXtIdK7eyQwJrV5Gid3zJjJNYFSYheSfWUj+mYWwegEj8ypG qdSC4tz01GTTAkPdvNRyeCwn5+duYgQnaa2AHYyrN/zVO8TIxMF4iFGCg1lJhHdSF2+6EG9K YmVValF+fFFpTmrxIUZTYIhPZJYSTc4H5om8knhDE0sDEzMzMxNLYzNDJXHe161zU4QE0hNL UrNTUwtSi2D6mDg4pRqYZgY4vmCWjKtctE75zhlvu0ffb994HvT05xI///o30v0sK73q7i9Q by3r7TULeaX8bvKpA+7xLHuNFdkYqv7J+q7znX/697PVwfYqBkZPb1jzFQpElz/0jj4h6bGg nKVTeMoivn/brx/hXfZK43HX73O7gvfEHnE/83W+kH+x+AvhSTwqYrPqVt1+8axgzQPetd9i S1xdQkt5krUZJrb6xIht4o6d8dI/oGNvDuNRBlbxF2d9MwoaXwr6fBNZtaXI/8k7ro/b79pH JD8o3S6RZt+rcLxX0umJyTIzhcDZE538iyJm9s530N3Zc8NLaqaZXeXPmdL/xV7VH9ygsjEs xGPnRk6v5BXd3416l3YpsRRnJBpqMRcVJwIARXlNilsEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeLIzCtJLcpLzFFi42LZdlhJTnfSUv50g6NfzSw+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxOPr/LZvFpEPXGC22n1nKbLH3lrbF/GVP2S26 r+9gs1h+/B+TxflZc9gd+D12zrrL7nH5bKnHplWdbB6bl9R77L7ZwObx8ektFo++LasYPTaf rvb4vEkugDOKyyYlNSezLLVI3y6BK+PVitNMBTe5KvZd28DcwPiFo4uRk0NCwESiYfEOxi5G Lg4hgd2MErMub2KESEhInHq5DMoWllj57zk7RNFHRol5M96CJdgE1CWOPG8F6xYRmMUocXjW fCaQBLPAd0aJf93OILawgJ/E8TNbweIsAqoSt/7fYgexeQWsJH7t+8cMsUFeYual72BxTqD4 qXMHwWwhAUuJf5M/MELUC0qcnPmEBWK+vETz1tnMExiBtiKkZiFJLWBkWsUomVpQnJueW2xY YJSXWq5XnJhbXJqXrpecn7uJERxJWlo7GPes+qB3iJGJg/EQowQHs5II76Qu3nQh3pTEyqrU ovz4otKc1OJDjNIcLErivN9e96YICaQnlqRmp6YWpBbBZJk4OKUamJRKA82Kn6vOe91bcv1u TuuK93enRpVvYc9/vWyvdoyfRZ1l0Nn/p67Y6DzvCnPOXZKroXjp8FvBBVdvf5iUWGzR1pPH /GHvi+rX6Vr3ThT8YNdUyuljfu++T0+i6J7EsmWpzf+1l3IYKfHwz97HJZd/19ti/ZdV90yy y687RK4qTVS4LpLnwfHQbOlarxVTTrtcTpdpqbHpL5v4yP47kyhDeaFtuI/8zUtxbsaPp52K naD8t8qhTJqDJ+sD39TTi2ZM9oq+p33jvglDa6clr4O16JcPFfH8SW7Pc51/ZtmaPOFKenl0 5RPWv0fX7uF8bOkoeja1J3mml8h318LwqBm6p7+H7fr+MHz2zCVLlViKMxINtZiLihMBKwjv MhMDAAA= X-CMS-MailID: 20241016113755epcas5p2d563b183a9f4e19f5c02d73255282342 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113755epcas5p2d563b183a9f4e19f5c02d73255282342 References: <20241016112912.63542-1-anuj20.g@samsung.com> From: Kanchan Joshi With user integrity buffer, there is a way to specify the app_tag. Set the corresponding protocol specific flags and send the app_tag down. Signed-off-by: Anuj Gupta Signed-off-by: Kanchan Joshi Reviewed-by: Christoph Hellwig --- drivers/nvme/host/core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 211f44cc02a3..c7ba264504b5 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -872,6 +872,12 @@ static blk_status_t nvme_setup_discard(struct nvme_ns *ns, struct request *req, return BLK_STS_OK; } +static void nvme_set_app_tag(struct request *req, struct nvme_command *cmnd) +{ + cmnd->rw.lbat = cpu_to_le16(bio_integrity(req->bio)->app_tag); + cmnd->rw.lbatm = cpu_to_le16(0xffff); +} + static void nvme_set_ref_tag(struct nvme_ns *ns, struct nvme_command *cmnd, struct request *req) { @@ -1012,6 +1018,10 @@ static inline blk_status_t nvme_setup_rw(struct nvme_ns *ns, control |= NVME_RW_APPEND_PIREMAP; nvme_set_ref_tag(ns, cmnd, req); } + if (bio_integrity_flagged(req->bio, BIP_CHECK_APPTAG)) { + control |= NVME_RW_PRINFO_PRCHK_APP; + nvme_set_app_tag(req, cmnd); + } } cmnd->rw.control = cpu_to_le16(control); From patchwork Wed Oct 16 11:29:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anuj Gupta X-Patchwork-Id: 836088 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7054541C69 for ; Wed, 16 Oct 2024 12:37:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082249; cv=none; b=rAu5RC9siY9+VcjnWg5eYLEFNgibsvk4y/CAm6kpsODrRlnIeZdTdIgp016q6O5t3SNG6yqrfNs31MULoI/tA6p7i2Pu/mhXqJUE//PlVLAajLBuyP6kM4RtLo+OxcxkzbNKUU8QoejDNk6ge4Qfyv/NRPi8v3+dLhjQCBOD148= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729082249; c=relaxed/simple; bh=d/VW0lpwYUltDPxzsuM2m8RXMRUI3+BODfWq13zoDNc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=s4b0Zo+qNeV61JdGCKc1Ia/uqYm3uWeHZrvb41NTMkN9193WVjEAOhUfQy1vNAEde52F8E+49idWhOFHPqAAFxFPjEVzhugQKGZbMe4rxxdxRSj7G5Hb+12f4Z79DrQ2Fjs0n6hdOdN/DZZT7LfEB+Zlzpz0XfdyIFnqmdP3NpM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=VkfxGp6I; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="VkfxGp6I" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20241016123725epoutp03795c1b307537d5b0819e055f14da8797~_7yQvDpBS1120811208epoutp03I for ; Wed, 16 Oct 2024 12:37:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20241016123725epoutp03795c1b307537d5b0819e055f14da8797~_7yQvDpBS1120811208epoutp03I DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1729082245; bh=onb9D8irMkDonXAnGDbuDg2oS2aLz5VgLMelslR2Osw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VkfxGp6IawnhO+k2f7bkkXLKJp4o4OvAh+jDeixqrhbUXHN6cg4lsglOt1TgEshoJ W66F8oZd+FuvCnv+wg33IOraUhoUJZLAXT3LVMREibL6jT0Ns8MbMNUrlPICp0v+P2 bJZHPmYk0127BKVneqBBFq4n8t4fg52jilUzTGKs= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20241016123725epcas5p44cc6c5183af4ca01042d96fb04e1510e~_7yQNsAlQ1720917209epcas5p4w; Wed, 16 Oct 2024 12:37:25 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.179]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4XT9Tb2HDGz4x9Pv; Wed, 16 Oct 2024 12:37:23 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 1F.11.09770.383BF076; Wed, 16 Oct 2024 21:37:23 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20241016113757epcas5p42b95123c857e5d92d9cdec55e190ce4e~_6_VVIcxJ1424214242epcas5p4s; Wed, 16 Oct 2024 11:37:57 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20241016113757epsmtrp2cd5cd20f134d35a1e94a840bfb6c3a5a~_6_VUV7ny1554615546epsmtrp21; Wed, 16 Oct 2024 11:37:57 +0000 (GMT) X-AuditID: b6c32a4a-e25fa7000000262a-59-670fb383d50c Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 83.AA.07371.595AF076; Wed, 16 Oct 2024 20:37:57 +0900 (KST) Received: from localhost.localdomain (unknown [107.99.41.245]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20241016113755epsmtip1a6461705654a11b705fdf0593467dbab~_6_TaGi1e3098130981epsmtip1G; Wed, 16 Oct 2024 11:37:54 +0000 (GMT) From: Anuj Gupta To: axboe@kernel.dk, hch@lst.de, kbusch@kernel.org, martin.petersen@oracle.com, asml.silence@gmail.com, anuj1072538@gmail.com, krisman@suse.de Cc: io-uring@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, gost.dev@samsung.com, linux-scsi@vger.kernel.org, vishak.g@samsung.com, Anuj Gupta Subject: [PATCH v4 11/11] scsi: add support for user-meta interface Date: Wed, 16 Oct 2024 16:59:12 +0530 Message-Id: <20241016112912.63542-12-anuj20.g@samsung.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20241016112912.63542-1-anuj20.g@samsung.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIJsWRmVeSWpSXmKPExsWy7bCmlm7zZv50g3e/eS0+fv3NYtE04S+z xZxV2xgtVt/tZ7O4eWAnk8XK1UeZLN61nmOxmHToGqPF9jNLmS323tK2mL/sKbtF9/UdbBbL j/9jsjg/aw67A5/Hzll32T0uny312LSqk81j85J6j903G9g8Pj69xeLRt2UVo8fm09UenzfJ BXBGZdtkpCampBYppOYl56dk5qXbKnkHxzvHm5oZGOoaWlqYKynkJeam2iq5+AToumXmAF2u pFCWmFMKFApILC5W0rezKcovLUlVyMgvLrFVSi1IySkwKdArTswtLs1L18tLLbEyNDAwMgUq TMjOOHBxEUtBl1DF4T2PWRsYf/F1MXJySAiYSOxdfpGli5GLQ0hgN6NE0/s7UM4nRonOs9+Y QaqEBL4xSuzd4ArTcer+EjaIor2MElM+NLJDOJ8ZJU682swEUsUmoC5x5HkrI4gtIjCJUeL5 5VAQm1ngFKPE2l8KILawgLPE+yU7gSZxcLAIqEr8O60LEuYVsJJYOO0WC8QyeYmZl76zg9ic QPFT5w6yQ9QISpyc+YQFYqS8RPPW2cwgN0gI7OGQmPJ1CxtEs4vEjEeH2CFsYYlXx7dA2VIS n9/thapJl/hx+SkThF0g0XxsHyOEbS/ReqqfGeQ2ZgFNifW79CHCshJTT61jgtjLJ9H7+wlU K6/EjnkwtpJE+8o5ULaExN5zDUwgYyQEPCRuXa2BBFUvo8SpNw+YJjAqzELyziwk78xC2LyA kXkVo2RqQXFuemqxaYFRXmo5PI6T83M3MYLTspbXDsaHDz7oHWJk4mA8xCjBwawkwjupizdd iDclsbIqtSg/vqg0J7X4EKMpMLgnMkuJJucDM0NeSbyhiaWBiZmZmYmlsZmhkjjv69a5KUIC 6YklqdmpqQWpRTB9TBycUg1Mm01nr3i466Je+Lp8m0WPr1qadf293dtzd330m9N+hww+nXkh 0Nkof/76ApvnlyKFbMMU//wx3sP50ERKJ8dmXubSwOVzch91zknsDyreeFKK43GnZNLtu5r2 6/P5bstrp10z+x6UIrlUVrB2k4DHdmOPtXtO1mzSSd4i5XFi2qUtkocPeQQJzDmge2WdUOrs y7WH/q700bST8Pbt5uvlKc1YldReX9R+YF3Mld8lp3d0+fodtnpgK/PM8UBk3Skbyd3vp1yT YxTSvvioPP6Hx+HFO9Vu5ES1GX+WmDP33RUtz9NBRrvFzHgPXdkUM6EsfaKQDPOfhMmn2pX7 qmvDbKRun4iLmV+ZPrPwzjIVJZbijERDLeai4kQAf+X/PFQEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRmVeSWpSXmKPExsWy7bCSnO7UpfzpBs/+sVh8/PqbxaJpwl9m izmrtjFarL7bz2Zx88BOJouVq48yWbxrPcdiMenQNUaL7WeWMlvsvaVtMX/ZU3aL7us72CyW H//HZHF+1hx2Bz6PnbPusntcPlvqsWlVJ5vH5iX1HrtvNrB5fHx6i8Wjb8sqRo/Np6s9Pm+S C+CM4rJJSc3JLEst0rdL4Mo4cHERS0GXUMXhPY9ZGxh/8XUxcnJICJhInLq/hK2LkYtDSGA3 o8SG9Z8ZIRISEqdeLoOyhSVW/nvODlH0kVHi558uZpAEm4C6xJHnrYwgCRGBWYwSh2fNZwJx mAUuMEpc3feMHaRKWMBZ4v2SnUA7ODhYBFQl/p3WBQnzClhJLJx2iwVig7zEzEvfwco5geKn zh0Es4UELCX+Tf7ACFEvKHFy5hOwemag+uats5knMAJtRUjNQpJawMi0ilEytaA4Nz032bDA MC+1XK84Mbe4NC9dLzk/dxMjOH60NHYw3pv/T+8QIxMH4yFGCQ5mJRHeSV286UK8KYmVValF +fFFpTmpxYcYpTlYlMR5DWfMThESSE8sSc1OTS1ILYLJMnFwSjUwHZWdY/+wcbdfdGgy6zIr W7n3VSZRW/t3/etTN4nmW5UbrHBTe8L5C1q80wW63NpebH4Zfsruaba9ec7FHR2dYrOzBMKd pEt/FdW6L/vBLqp67svEBQ4+BxNlr09k4jv++8zNV7EL05iKr239d9/20Idk3oIJiQsWrn4k vdRC+GbWsmLbZNu1O/x8lFdlsai87Lj78ojzC4+uH9Nzz7086zMnLM0+Zapq7u/So3Gvd4gF 633RWSq8T33H79SJEqsk+3uUHt07YnT0SdVtlRdXo0R55tV/ufP8yVzRBW8/ZFxN7WU6cKHh /grRFf5pS5+cnbJ73imfXy2TOrYf1V4VeXBXi+CCdzqK97+fvfmGj1uJpTgj0VCLuag4EQB2 gniODgMAAA== X-CMS-MailID: 20241016113757epcas5p42b95123c857e5d92d9cdec55e190ce4e X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20241016113757epcas5p42b95123c857e5d92d9cdec55e190ce4e References: <20241016112912.63542-1-anuj20.g@samsung.com> Add support for sending user-meta buffer. Set tags to be checked using flags specified by user/block-layer user and underlying DIF/DIX configuration. Signed-off-by: Anuj Gupta Reviewed-by: Christoph Hellwig --- drivers/scsi/sd.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index ca4bc0ac76ad..87ae19c9b29c 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -802,6 +802,23 @@ static unsigned int sd_prot_flag_mask(unsigned int prot_op) return flag_mask[prot_op]; } +/* + * Can't check reftag alone or apptag alone + */ +static bool sd_prot_flags_valid(struct scsi_cmnd *scmd) +{ + struct request *rq = scsi_cmd_to_rq(scmd); + struct bio *bio = rq->bio; + + if (bio_integrity_flagged(bio, BIP_CHECK_REFTAG) && + !bio_integrity_flagged(bio, BIP_CHECK_APPTAG)) + return false; + if (!bio_integrity_flagged(bio, BIP_CHECK_REFTAG) && + bio_integrity_flagged(bio, BIP_CHECK_APPTAG)) + return false; + return true; +} + static unsigned char sd_setup_protect_cmnd(struct scsi_cmnd *scmd, unsigned int dix, unsigned int dif) { @@ -814,14 +831,16 @@ static unsigned char sd_setup_protect_cmnd(struct scsi_cmnd *scmd, if (bio_integrity_flagged(bio, BIP_IP_CHECKSUM)) scmd->prot_flags |= SCSI_PROT_IP_CHECKSUM; - if (bio_integrity_flagged(bio, BIP_CTRL_NOCHECK) == false) + if (bio_integrity_flagged(bio, BIP_CTRL_NOCHECK) == false && + (bio_integrity_flagged(bio, BIP_CHECK_GUARD))) scmd->prot_flags |= SCSI_PROT_GUARD_CHECK; } if (dif != T10_PI_TYPE3_PROTECTION) { /* DIX/DIF Type 0, 1, 2 */ scmd->prot_flags |= SCSI_PROT_REF_INCREMENT; - if (bio_integrity_flagged(bio, BIP_CTRL_NOCHECK) == false) + if ((bio_integrity_flagged(bio, BIP_CTRL_NOCHECK) == false) && + (!dix || bio_integrity_flagged(bio, BIP_CHECK_REFTAG))) scmd->prot_flags |= SCSI_PROT_REF_CHECK; } @@ -1373,6 +1392,8 @@ static blk_status_t sd_setup_read_write_cmnd(struct scsi_cmnd *cmd) dif = scsi_host_dif_capable(cmd->device->host, sdkp->protection_type); dld = sd_cdl_dld(sdkp, cmd); + if (!sd_prot_flags_valid(cmd)) + goto fail; if (dif || dix) protect = sd_setup_protect_cmnd(cmd, dix, dif); else