From nobody Sun Oct 5 10:48:56 2025 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 96FCB45C14 for ; Tue, 5 Aug 2025 14:11:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403094; cv=none; b=LKgPjJerXB8N9xOBVNK5E6hqR/kzKPdl4IAS93Zke77CRcNRXE+NcrsjQePbzF704zrRAXaKsBu8I/g43Zf5lWlv3/vEYB/Yw/AG3hp9ooiJ8dyOXd1oM57UwbAjWPJswKMYEYpFUcJDJFMqz46na0BvBkF7zwy4ek2JhW8aR+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403094; c=relaxed/simple; bh=IYgEcpFeO8meMYKSnmukPEFgtI0jqdznv33bvgoSyVk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Nu4axXoS6/MWXHh0p7Hu5fPgLibQdFmDK2lCZ61qe0HjFvXYSKci2kEe6qcPTIGZ0HHY9sF0RHdEpex6D1DEqbuXZ0mjKzrWpCLxMr/DQZKySBXt8R+jAzZwabU1JHhXP+OXBGGLIotRtP8NzvsSylySNqDhxk3bBfYxhOxmBmk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=jW8FNLd2; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="jW8FNLd2" Received: from pps.filterd (m0148461.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYQMa015353 for ; Tue, 5 Aug 2025 07:11:31 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=0EgadbzFWFn1SADX7rxPyTXaH9CqFEpnv7iy2CV3JvQ=; b=jW8FNLd2g9yg KQHSje+hlknuFCtr2M9hO/QmqocrqlLmB375QV+vBqkSldSTAeuyMs0d2IPfoRsT QTFZ8/2H/f3BviO7y2EU61mN2jYm+1hxZnxG3Y62x/I3K/zPna2bPmAl7Ake1chS ZIUCLyM5kJG/kbp2D/DU8nOqSX/9mqficB6zOdA3752WZAO2GXcs65Me24hMGbg2 3k3TLP9O6SqGlnJWmXwK4peuIW+ioIqTIszEBj6YLQTiYkBwFnztwU3QjR0NNM7n 66WV27itfPzETe533LzI5RY3A29SeHXFJiKy6JdP70zUB+N1N2lS5uE5O/T497WZ ElEnwKJ0nA== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48bdg9aay0-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:31 -0700 (PDT) Received: from twshared0973.10.ash9.facebook.com (2620:10d:c0a8:1b::8e35) by mail.thefacebook.com (2620:10d:c0a9:6f::8fd4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:27 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id 9BF1B4FDD4C; Tue, 5 Aug 2025 07:11:23 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch , Hannes Reinecke Subject: [PATCHv2 1/7] block: check for valid bio while splitting Date: Tue, 5 Aug 2025 07:11:17 -0700 Message-ID: <20250805141123.332298-2-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Authority-Analysis: v=2.4 cv=dLymmPZb c=1 sm=1 tr=0 ts=68921113 cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=pNr_mRkOCfeHtIxF0oQA:9 X-Proofpoint-ORIG-GUID: EEqsb0VV0Q79iCQCViRyrf4T8AImb3R7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfX0gLwBJZVdtEG gAfGDGxmX5DQ1JKfZiqLwm0SpB+O2p0RmczpsRtVs+OTU477+SxsY52Z5Dz2XLP2VSHzdFOXcoM gjl2jJia8uOct0dfeJ1ucUfwrd5mNEFIm1+iDxdF0wiYp4oQWGPm/2gnfOY6yBnS2tmdsPKKT+P 7L2r08hTiM/kXPorKMKNIKuVP0OIxYxHfzWbcn5fIsU6u2gweb6mh4y9NP/9+iSwrfYR6CrzWkE crGnfqUnsMoOH63hDrFgqwaO4pHXTbdREjqeji0HYvC8f4wlCQpA3J6zFR+nwmQdWAhp7qUUWsV 38kT7NCL6z0gUz6Sdd2qfjN+AtDTQ4g2NNZSC0caZIFD0p521roimS4DlzmWBcpurgWAcffHe+9 YW7jsgh4/32LHu7PSDBx+p2Yg60R+u+By7coulfFnUT/r8Qhz/ZuTirARSRHc25UT9HLNHVl X-Proofpoint-GUID: EEqsb0VV0Q79iCQCViRyrf4T8AImb3R7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch We're already iterating every segment, so check these for a valid IO at the same time. Signed-off-by: Keith Busch Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- block/blk-merge.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/block/blk-merge.c b/block/blk-merge.c index 70d704615be52..81bdad915699a 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -298,6 +298,9 @@ int bio_split_rw_at(struct bio *bio, const struct queue= _limits *lim, unsigned nsegs =3D 0, bytes =3D 0; =20 bio_for_each_bvec(bv, bio, iter) { + if (bv.bv_offset & lim->dma_alignment) + return -EINVAL; + /* * If the queue doesn't support SG gaps and adding this * offset would create a gap, disallow it. @@ -341,6 +344,8 @@ int bio_split_rw_at(struct bio *bio, const struct queue= _limits *lim, * we do not use the full hardware limits. */ bytes =3D ALIGN_DOWN(bytes, bio_split_alignment(bio, lim)); + if (!bytes) + return -EINVAL; =20 /* * Bio splitting may cause subtle trouble such as hang when doing sync --=20 2.47.3 From nobody Sun Oct 5 10:48:56 2025 Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (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 2A8B927932E for ; Tue, 5 Aug 2025 14:11:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.153.30 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403102; cv=none; b=LezTEUQrWV+mBI96xPHRKxbfh+kDzWRYt0U2RHiNSf79sAwfTo47eX8Ns38te1Il7mGmZl011h4otByv/mQmr+GY148qmWoJMKgDtXCXYNClvrnanu7FZ7rQAMPpYXRUkI0mSZe1KDJ8Fk58L+f24ZoueG9o3fr14x01N4hX8SA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403102; c=relaxed/simple; bh=217BAp3N2TcMgRHsWuPsd7Pnl1izLEcPCuLPqohkSIs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZtEkZhwp4khFthw1CLnVkhotmggmRW4FB4pp+pfocJOzWQpAcBGCEzSdUzdU6QWwj4rl0Z6ArQ7R8NuRO0LRgOiX/QmPW6/NMGr9I1ELRNvv+qx38ll5J3pAiAkQnwJMPLBMPfbPMOPJm9AHGWYqadLdaIDijP0YG2padRT3sDk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=s6UVlmlM; arc=none smtp.client-ip=67.231.153.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="s6UVlmlM" Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYPlB027939 for ; Tue, 5 Aug 2025 07:11:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=zgrNuG3G/M3gaTF6K8yK6qYWoGlB4OA/aJqjedkrpCU=; b=s6UVlmlMIiIA TpXkv7Vxwkl9yMkKwq/Ni5s976jMHaLZb8cmwuGGc9bdQzWqnbaHj3QWtOBI0DWw dFueFntnI9VQ5U0eX5eyHcr/9eYVDYrBg5pE+keDARyaglOkp6tUp+hcvTNlad0q 7kSPIEp2HuI10MV+xE0TkQ60s8txfFIGOVoUJ4po6AnSMsXr+uuSv7p9kUK4s3op 9+5VAyhVht1TwMmJcH8cdXEIuskRRSBM5Ka3EHJ8kHIM+ROOMj//h0nWooQvOT1s M4ZT8zGsvCv8vuGQJoVXzQyQmSvyIZMlPoTgzA3kilAQ9q5XNpXNKh+fQt/s88to ablk7ET6Sg== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48b9033jak-14 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:39 -0700 (PDT) Received: from twshared0973.10.ash9.facebook.com (2620:10d:c0a8:1b::2d) by mail.thefacebook.com (2620:10d:c0a9:6f::237c) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:27 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id A0FEC4FDD4E; Tue, 5 Aug 2025 07:11:23 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch Subject: [PATCHv2 2/7] block: align the bio after building it Date: Tue, 5 Aug 2025 07:11:18 -0700 Message-ID: <20250805141123.332298-3-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Authority-Analysis: v=2.4 cv=H5Pbw/Yi c=1 sm=1 tr=0 ts=6892111b cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=o-Erc7oKPJV9jR-t85MA:9 X-Proofpoint-GUID: KCS1CChV_RK-3RUAURPKsZ7JlJYiVKpO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfX1BAM+Yw8lD2m 3vMiQ5FgCizv757stLIuzzRXj9o2315CqLJQ50ouiuLUICeAWIgRqkJPUxyxnzSbOYXSNwuizgX b/t9KFqKx1OBonq1hg1Li0R9pQWCeyWVMBSzH/99vTlJWukff2wfMD7yPxtNnBaXDLUCtx56Iv/ zYLR0C8EmIWPcIL2LPUU7er4RnI89Mwk2gzAVqPGUKzGJOPaO5tA8T2wHY38JpRDxFJild4cIry 8tLMV312MqhoTy0VvHfPST/togiMYP2C1y42wrnR3cSaNP8FEgVroQvuoskT+0a4EiesngmqL8j 3rwMuoWbPNvzUbO71PV6B+XyRACwgoK4rF4X0pP4Yz15veHS5JXdyDhqQUP2LVGRttzyIHpsziR POSJQuWDyfcRb9IkR6yUxSkz1+n9NKPnhZMLq44jHM7aGhe7EfbNpOb0rSbzH/SltWfRoii3 X-Proofpoint-ORIG-GUID: KCS1CChV_RK-3RUAURPKsZ7JlJYiVKpO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch Instead of ensuring each vector is block size aligned while constructing the bio, just ensure the entire size is aligned after it's built. This makes it more flexible to accepting device valid io vectors that would otherwise get rejected by alignment checks. Signed-off-by: Keith Busch Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- block/bio.c | 60 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/block/bio.c b/block/bio.c index 92c512e876c8d..9ecd546c5b077 100644 --- a/block/bio.c +++ b/block/bio.c @@ -1227,13 +1227,6 @@ static int __bio_iov_iter_get_pages(struct bio *bio,= struct iov_iter *iter) if (bio->bi_bdev && blk_queue_pci_p2pdma(bio->bi_bdev->bd_disk->queue)) extraction_flags |=3D ITER_ALLOW_P2PDMA; =20 - /* - * Each segment in the iov is required to be a block size multiple. - * However, we may not be able to get the entire segment if it spans - * more pages than bi_max_vecs allows, so we have to ALIGN_DOWN the - * result to ensure the bio's total size is correct. The remainder of - * the iov data will be picked up in the next bio iteration. - */ size =3D iov_iter_extract_pages(iter, &pages, UINT_MAX - bio->bi_iter.bi_size, nr_pages, extraction_flags, &offset); @@ -1241,18 +1234,6 @@ static int __bio_iov_iter_get_pages(struct bio *bio,= struct iov_iter *iter) return size ? size : -EFAULT; =20 nr_pages =3D DIV_ROUND_UP(offset + size, PAGE_SIZE); - - if (bio->bi_bdev) { - size_t trim =3D size & (bdev_logical_block_size(bio->bi_bdev) - 1); - iov_iter_revert(iter, trim); - size -=3D trim; - } - - if (unlikely(!size)) { - ret =3D -EFAULT; - goto out; - } - for (left =3D size, i =3D 0; left > 0; left -=3D len, i +=3D num_pages) { struct page *page =3D pages[i]; struct folio *folio =3D page_folio(page); @@ -1297,6 +1278,43 @@ static int __bio_iov_iter_get_pages(struct bio *bio,= struct iov_iter *iter) return ret; } =20 +static inline void bio_revert(struct bio *bio, unsigned int nbytes) +{ + bio->bi_iter.bi_size -=3D nbytes; + + while (nbytes) { + struct bio_vec *bv =3D &bio->bi_io_vec[bio->bi_vcnt - 1]; + + if (nbytes < bv->bv_len) { + bv->bv_len -=3D nbytes; + return; + } + + bio_release_page(bio, bv->bv_page); + bio->bi_vcnt--; + nbytes -=3D bv->bv_len; + } +} + +static int bio_align_to_lbs(struct bio *bio, struct iov_iter *iter) +{ + struct block_device *bdev =3D bio->bi_bdev; + size_t nbytes; + + if (!bdev) + return 0; + + nbytes =3D bio->bi_iter.bi_size & (bdev_logical_block_size(bdev) - 1); + if (!nbytes) + return 0; + + bio_revert(bio, nbytes); + iov_iter_revert(iter, nbytes); + if (!bio->bi_iter.bi_size) + return -EFAULT; + return 0; +} + /** * bio_iov_iter_get_pages - add user or kernel pages to a bio * @bio: bio to add pages to @@ -1336,7 +1354,9 @@ int bio_iov_iter_get_pages(struct bio *bio, struct io= v_iter *iter) ret =3D __bio_iov_iter_get_pages(bio, iter); } while (!ret && iov_iter_count(iter) && !bio_full(bio, 0)); =20 - return bio->bi_vcnt ? 0 : ret; + if (bio->bi_vcnt) + return bio_align_to_lbs(bio, iter); + return ret; } EXPORT_SYMBOL_GPL(bio_iov_iter_get_pages); =20 --=20 2.47.3 From nobody Sun Oct 5 10:48:56 2025 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 51449274FFC for ; Tue, 5 Aug 2025 14:11:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403096; cv=none; b=Ug3bRsUhBDEuFQtPkjd7rVwEhxhZ5YGY94U0vfZzTHQSDyHgc4NYLSbRAjqdXUGtrSgG7NJWW6bCWuEZNOtlsKrkfP1hEAWK/EQAe4T//qBPONV75Tqc3+2LUTxlBLRmKmlCrHkSeIH2MTUYvdQURXQy2gI7oJ6TrqAqVWV+yRE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403096; c=relaxed/simple; bh=Cb/apwBa1XVQidI+ebNpQwF40xzuYGiCtR3Uc6Osrpk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Av1Jwhjsfze8iQ/7ndW/K6aNYeiu6i+C51s8Tg/MwvvaUT35YuqMlCDGKruJf1McLo9FCZ28AxcHQWauDAeX6f+7s7a8CXpv7+oN1UR2CSVAxUfrUj+xvcQ3NESHyNycMKmpbH0mL3h35/rtFCYGY8IwGdMXvQFApUuSyqJ4JB8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=v6cWwqKn; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="v6cWwqKn" Received: from pps.filterd (m0044012.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYIVJ022219 for ; Tue, 5 Aug 2025 07:11:34 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=9oaQH3kl86GzPCGUrph1aYzlnnowT/NAZF60rXSdYc8=; b=v6cWwqKn2+rg meQ7In+yjWjKQ+F9rRcDxVR3Ur35/vOLNoW1APxdJ/i4twLFooen0rfSbeCi+T+x 67DtpE/Wow7mcQJgxJRSlM6GGHdgraZSzodTRI5uRbdRCMQ3Puhfd4g1HMzzKwZ4 SxTj59U/VIQXBZxYysdWgLdM86mI+UBDmdsIs1PmxfwcuzvGM4FhZobm1LIT5nqp HlsSi604HEuQylBHiUz7eH/X+bxdN96QSfaU5aH3sQuhnEwviGdfA1IPDe32slFN cNEPowtnmSrkLbNAntt35DOEBLjZqaH9DDc6fshxaxJEteZwEE9vglT4qYqPKdwj 2j+8ywwoKg== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48b5t3vta0-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:34 -0700 (PDT) Received: from twshared0973.10.ash9.facebook.com (2620:10d:c0a8:1b::8e35) by mail.thefacebook.com (2620:10d:c0a9:6f::8fd4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:27 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id A23A44FDD4F; Tue, 5 Aug 2025 07:11:23 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch , Hannes Reinecke Subject: [PATCHv2 3/7] block: simplify direct io validity check Date: Tue, 5 Aug 2025 07:11:19 -0700 Message-ID: <20250805141123.332298-4-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Authority-Analysis: v=2.4 cv=O9U5vA9W c=1 sm=1 tr=0 ts=68921116 cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=IZBY3vBkjIs1pqmLj1YA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfXxNjUf0sRmw8S 9HRq3P4wAPw/HOJV62mUIyUzvPRae39LpDGHskvggp4ZJpa75016Bs2rNK2dAK6zgN7qaV0uKDb z3dTnAwDNQXx7q/lOnF1BuhVhQbB0+HqNKZjmdluJCcSz9t4V3lGgZy0lgTKy9oOdsRHNroSzYy x/AjSSZ9leUzE1zsH/s7bwIrhRFBWpOhOccI5/9mS6bXIrC5LiGfsxaPrIXNsLz49rpmcbxTGYj RCqKKyUp1l2itBxG11kZbzJgZgMdRQoc2YXrnadS5xPPYumf3AL8WF5JlStd4vJ93s2g2+Qr/JR hTcSCJalT9LyCBBcpov7X2OcVMRWOMKpfPMNgsXy9uVnxy4/JcXVAJ9mRKOtoAiK3R9Jt+ZjES2 QDtnKlY1Ka9FWaC2lYVveRPSoPe2k1l2ZgAnHBrBH8FNNlXdc86tGvOUU2O54PtWoUsffbwh X-Proofpoint-GUID: bbk-DfHbTzFqg_4rFeHH0HNwtPVfClCB X-Proofpoint-ORIG-GUID: bbk-DfHbTzFqg_4rFeHH0HNwtPVfClCB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch The block layer checks all the segments for validity later, so no need for an early check. Just reduce it to a simple position and total length and defer the segment checks to the block layer. Signed-off-by: Keith Busch Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- block/fops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/fops.c b/block/fops.c index 82451ac8ff25d..820902cf10730 100644 --- a/block/fops.c +++ b/block/fops.c @@ -38,8 +38,8 @@ static blk_opf_t dio_bio_write_op(struct kiocb *iocb) static bool blkdev_dio_invalid(struct block_device *bdev, struct kiocb *io= cb, struct iov_iter *iter) { - return iocb->ki_pos & (bdev_logical_block_size(bdev) - 1) || - !bdev_iter_is_aligned(bdev, iter); + return (iocb->ki_pos | iov_iter_count(iter)) & + (bdev_logical_block_size(bdev) - 1); } =20 #define DIO_INLINE_BIO_VECS 4 --=20 2.47.3 From nobody Sun Oct 5 10:48:56 2025 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 443CE27A130 for ; Tue, 5 Aug 2025 14:11:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403105; cv=none; b=Zx2X+y/i6I0ok0WD1lHVRA1jfjmjpOa9Acmzwemg4iGhERbclyyKTm2CAymaZjXLEAXeczj1vIppL8IVOX9w9oQuA730r3JWrC2i0p7D2tfOkZK6bavGHCMmtNhMpTIXLYnsPlBJrxxSCPvmJWrLzFdZtyXuMBLuyvu6CGD3Z8o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403105; c=relaxed/simple; bh=qqM7XP0L7nIP6eDwvhuc1u0A0DYGoKFdOJeN8XlyoZc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IncpA/T2xXnsIyzr7+X1j0KpeYWipd9iI2H4GuE+xK0Le8dbNKIl9gRbRKsbUMT9IxPR/PFs0jHMOaeXzirXmFgOsk2ty9P4YjJlaM4hrlvcQdBoonnP9iwDvcW9xEY99qh84SQjezSw3o6nW0hYEf0d1Lbv/kQUVonEmsFhiDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=smf83hak; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="smf83hak" Received: from pps.filterd (m0044010.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYGGm013135 for ; Tue, 5 Aug 2025 07:11:43 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=uuy065QjwhzxX+HyBnYJHygu3ula9t7x2rGLsBYiE7k=; b=smf83hakFr7g V0gu1KqILWOVPd84yiV+anKYNwB57noydqOL06rNesA4fhoXXAm0JAazSru+9H8E fjX1CTZ2Tbqqer6siMp9DCyicSdAYaW1RrjEx5s6zyZpNuBmCHzRoIfBMk8pDu1S f6mHujy03FAUmu9BeexAhiIW6Reyeq4Y0+d+fqT3OMupj9CK7EiD6A+kVas+16YG g2wsUHcaVeARM+2OvN78MQy/XFkn4BBxvlvroS5uZdd6qAeCUV+txWzkBM77uny5 fRakYOV23w5EPcXpsKrTsDsy5w3DE+gP2daf7AmIo1K2Yf4nLCrrGwSk51KocnpU Mlr9M8Zwgg== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48b5tacuc3-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:43 -0700 (PDT) Received: from twshared25333.08.ash9.facebook.com (2620:10d:c0a8:fe::f072) by mail.thefacebook.com (2620:10d:c0a9:6f::8fd4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:37 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id C21374FDD51; Tue, 5 Aug 2025 07:11:23 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch Subject: [PATCHv2 4/7] iomap: simplify direct io validity check Date: Tue, 5 Aug 2025 07:11:20 -0700 Message-ID: <20250805141123.332298-5-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Proofpoint-ORIG-GUID: j5ihYcvVTn0f1WLuh12qHcQ-2Y6JBEpS X-Authority-Analysis: v=2.4 cv=RJOzH5i+ c=1 sm=1 tr=0 ts=6892111f cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=N-9tSbTDVoy7b94FiVkA:9 X-Proofpoint-GUID: j5ihYcvVTn0f1WLuh12qHcQ-2Y6JBEpS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfX9T3xW0OY/TVk M1zR9yGPycPJRl/Hihgvqw1npV3MESMvNaU27NUhvHfB+2qUASPqXS3H0u22NcbeL5lGEEvzO1L f97Uzh4q9kBY6yVzdAVV9iHRF2yi3cqt+awgv70NnzNLJ3XVDDHjIGsJzANJbz0LNhgPLMr6PMj g4ZaBKoGyFDFzqiHC9kx3WjNXzm8/TVQsSsmVbCuVhyjkqrxCVIQ9ZCtxSI8kofQfNNlxstZlpP tbq6NwzEm8TJXa1sNPc5RMtx8UNPAoMT47sJlitpsIygx6YS2uvZXoj8s9exlMkDKTb1tr63AuV ij6tF6c4baOKuYf9c2vDN9YqRRI/eVWpC3p9yD9qUMlGujCyEAAWmCaxeou7fvMVE1ZLSnVrygl lr6EQLkZZcr+Fa+NG9yhQGtZ0N6/z5/OC54uH/RaBF7Yq1bfch0Y61POv52dyE7xkmrnpWBp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch The block layer checks all the segments for validity later, so no need for an early check. Just reduce it to a simple position and total length and defer the segment checks to the block layer. Signed-off-by: Keith Busch Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- fs/iomap/direct-io.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c index 6f25d4cfea9f7..2c1a45e46dc75 100644 --- a/fs/iomap/direct-io.c +++ b/fs/iomap/direct-io.c @@ -337,8 +337,7 @@ static int iomap_dio_bio_iter(struct iomap_iter *iter, = struct iomap_dio *dio) u64 copied =3D 0; size_t orig_count; =20 - if ((pos | length) & (bdev_logical_block_size(iomap->bdev) - 1) || - !bdev_iter_is_aligned(iomap->bdev, dio->submit.iter)) + if ((pos | length) & (bdev_logical_block_size(iomap->bdev) - 1)) return -EINVAL; =20 if (dio->flags & IOMAP_DIO_WRITE) { --=20 2.47.3 From nobody Sun Oct 5 10:48:56 2025 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 66ED32750E3 for ; Tue, 5 Aug 2025 14:11:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403106; cv=none; b=h8Y6xg+mSbCTH2bFqAhheU/MVXxzjLZlzz6lkmP1DWmII5bIBuED+NweZLVnJIBesu5vCVu3UDwzuncogGeTr7yJDxYBqQj0Qlib08JCJDfLSk8inlLOq0iNHMtRhqWZ6UDwjzJxoJ4ee89R5yNYy8nc104L3A6wCa45CZZs/BI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403106; c=relaxed/simple; bh=T38d36O6jE3OZut66S1BIIGBnUYM/bO7UHb8Lrjuqu0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZPzweQRTc82Bc9W2M+EUElgp1G2ZT7gjE5neuMUM/oDNFnb0v8culIS6GvzbbNetBR4bnIRYAPpIGh1UiK+K0gyRdLCiIgRQ+LCKLTOAw/qyysuZYsazq9dGTCJMsYjFMoGH77XexFNSCk+h4ikELa0iVUVXUP8m09f0vaf1ROQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=PmyZpKkd; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="PmyZpKkd" Received: from pps.filterd (m0044012.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYLgb022527 for ; Tue, 5 Aug 2025 07:11:44 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=RuONH4h6XBh6KQsjcqoAAXlkSkTgfCY/q+o6rZEieIM=; b=PmyZpKkd6p1k bChFn1fBRuLunXGeBBKs4OQPVSevQYML1POFr36ZoZyvbM4JSkaqj2NLYjNPPL/C ctYo8o3r47li8mn8nJfk/ofH/g5odGNTXy2yxCKQBUaoGcuHOPz2LaUuur2U7s4Q 6HCRW0oS57cDM4KrC9BuwS51XtOEngpEQOlQKrqiSHDS8HVHeJZt7CQmttIktpl7 Yt+zTEYckkiStN7IIrp/rCzjTv6HccH3p9GLTgC/YJdhcK+iOlEJsO4aX1awZllI r4yklqJ8FCkC6ggVrnm1r8nd8mh/lbdKZqv7Qi4hzZA9p2AM+AQs82x89I2Z9XfR /Z3GnWKPJA== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48b5t3vthw-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:44 -0700 (PDT) Received: from twshared25333.08.ash9.facebook.com (2620:10d:c0a8:1b::8e35) by mail.thefacebook.com (2620:10d:c0a9:6f::237c) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:38 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id 000EB4FDD53; Tue, 5 Aug 2025 07:11:23 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch , Hannes Reinecke Subject: [PATCHv2 5/7] block: remove bdev_iter_is_aligned Date: Tue, 5 Aug 2025 07:11:21 -0700 Message-ID: <20250805141123.332298-6-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Authority-Analysis: v=2.4 cv=O9U5vA9W c=1 sm=1 tr=0 ts=68921120 cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=x-sBDG6hxYFL5DTe09MA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfX/aDESmU47+sF tycsMXICORcoWbJhCaPP/wDwZfBveCCRyvuWrzicnGY1zhZRhvWzP158s//PQs5WGiUyOI9S5t1 8MSohpYUM3AGJVecgBp9QB6VpQFqCLtbL+TvLyjjhQqgZd+xVWPTqVDckg1hiZbFSxETvl/SdlC SXEKc/Wca1QQ+Zc082MQ0qAyqV4vL8GqhrClMWlqC4INyUwoSHICCsqBmYW2K2j6YqZOqCIJAXN QyYaj+2hcz8Ytx5ITXVIWZiFRjg1JE5zeQy8tZ06VOJ3wvqCAE5ooA8Jimb7zG/9sufRn0SBRyr 3BxQQJGvyXTKgmXCunNI6PzqN7yk21U7IFIb774M98bYrY0KsDINTCO/2/Uwqt7ctzGvIKtzKZF pRvjNxVd58uQPLSTbRHIoxDY3BRuk3kXLG8vlu64oRCgbzkjLFfejHD/CVP7VWiQqeq5MYsK X-Proofpoint-GUID: csRssqoBlFzgZzBoaFiUbxP1qrH2qWSm X-Proofpoint-ORIG-GUID: csRssqoBlFzgZzBoaFiUbxP1qrH2qWSm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch No more callers. Signed-off-by: Keith Busch Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- include/linux/blkdev.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 95886b404b16b..f86aecbb87385 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1589,13 +1589,6 @@ static inline unsigned int bdev_dma_alignment(struct= block_device *bdev) return queue_dma_alignment(bdev_get_queue(bdev)); } =20 -static inline bool bdev_iter_is_aligned(struct block_device *bdev, - struct iov_iter *iter) -{ - return iov_iter_is_aligned(iter, bdev_dma_alignment(bdev), - bdev_logical_block_size(bdev) - 1); -} - static inline unsigned int blk_lim_dma_alignment_and_pad(struct queue_limits *lim) { --=20 2.47.3 From nobody Sun Oct 5 10:48:56 2025 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 A3B16238C16 for ; Tue, 5 Aug 2025 14:11:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403093; cv=none; b=WeGkSDqX00jJfdXm8g31L8XeLNIa6H1zGzwrfM4QskJPJk3HEKv9yrKloXSi585zfthy0l7X+462yghA3QWUifGCXS5FlW5KlCr0E5xXbpSK2wWTDfICHvwH14Y4Ye4xbVzHbyOoPTASlbDAc59w/IOnEpuE4tkVpsxcYb/8xWQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403093; c=relaxed/simple; bh=X4TiQRCAyimCy235Rs2X/10FtaUcKM3owhi+6iQOMAE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Zuxuu1EYyy+bScneP52nxSvZ4Oj5K6O5h7nirGo+5yC157TeLDE+ruqO9tnEd6f1qHlIRs+43TL+jNNGB5obPb5dlDI+Kt8MltxPat+a0bTeXmwZo6BapctzEkWWgPn4hwYAI/YKLKQFqve7Gx1V0eQsQw/yUEL0c9z26G8sEug= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=hkR2yLPu; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="hkR2yLPu" Received: from pps.filterd (m0044010.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYAn4012587 for ; Tue, 5 Aug 2025 07:11:31 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=47Zm63PeojXkiJDTke1e+5K+CoKyN+QOtXjqL/eR4fI=; b=hkR2yLPuXL3c T4OJWpbtm0y6QaoX8srv/czAM5dXwaTUXGqfSfq7O4ijp3RhwkLuJ1FlAMibpsn1 9twetMALR3ujiphrmmIkLNJZmGsJqJLzS/dybmEgxfvopSWHoirWgMSZljGBm5Lw t/mDsVZvg6XBtS3YWppCeIvrxGeG+rDaLDyxneZ8iok5fhxYu5WmqqA/o3jB7tGs DhGAl4kDQRwe+6FDpCFkAR3EBhSwtLijL2DgcfCNAMjUBKawOBdmq2x9xvOu9at4 pi7NT8w+8pyovgjLlXyjgJ0mkXl2/GvCbl2HxRnQY1SNM2XaV3vMon5dDZ9mUBEB JjOFq9T2KA== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48b5tacu54-15 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:30 -0700 (PDT) Received: from twshared42488.16.frc2.facebook.com (2620:10d:c0a8:1b::2d) by mail.thefacebook.com (2620:10d:c0a9:6f::237c) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:27 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id 041A14FDD55; Tue, 5 Aug 2025 07:11:23 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch , Hannes Reinecke Subject: [PATCHv2 6/7] blk-integrity: use simpler alignment check Date: Tue, 5 Aug 2025 07:11:22 -0700 Message-ID: <20250805141123.332298-7-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Proofpoint-ORIG-GUID: aYltHR8OZ0u7PACpUSo8SNwvejaqEXq7 X-Authority-Analysis: v=2.4 cv=RJOzH5i+ c=1 sm=1 tr=0 ts=68921112 cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=yetF5jY7WHH6jeiS1L0A:9 X-Proofpoint-GUID: aYltHR8OZ0u7PACpUSo8SNwvejaqEXq7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfX8E812QucSl8G rZXZQ7BbswyjSSS7ANYhYj9HflwtT7NQBk+y2YKtHSAyqwpZXOUu4ll7jjNWo4nDhCP1vW1rfQN OzvITnLZab7qja95Lxzbpn76bVcl5YlpFRtoeETcVfhQzSO3BU9ZgOZGokdJyPv00PIbY4layL5 bGcuGaY9HUgx17nAPO/E1ub6oYv5SA88DbmRII++tYUBnxqMT8jke1xNcPOxUu9xn2SfD2BoqM8 EDewlpkP22M9XDECuwUCi6hyg+/VUJhS1DftiY10qTKfp4fcYHU3oVj9kof9Fy3le9J0q3vAEdQ cJDCWBAvwdtdB9FKVl7x3r9VtBCLbchZfYNLJOXJ1r9y5lMUciQiJZi3BSHhrrM0kh1x8x08o+M Mt30jyXMXw8sxAOZdjHeeU4q/WhykOrsYpxmtEBvlFe0agK0hwSBjPRntm0yFqjeVLb9ise9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch We're checking length and addresses against the same alignment value, so use the more simple iterator check. Signed-off-by: Keith Busch Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- 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 6b077ca937f6b..6d069a49b4aad 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -262,7 +262,6 @@ static unsigned int bvec_from_pages(struct bio_vec *bve= c, struct page **pages, int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter) { struct request_queue *q =3D bdev_get_queue(bio->bi_bdev); - unsigned int align =3D blk_lim_dma_alignment_and_pad(&q->limits); struct page *stack_pages[UIO_FASTIOV], **pages =3D stack_pages; struct bio_vec stack_vec[UIO_FASTIOV], *bvec =3D stack_vec; size_t offset, bytes =3D iter->count; @@ -285,7 +284,8 @@ int bio_integrity_map_user(struct bio *bio, struct iov_= iter *iter) pages =3D NULL; } =20 - copy =3D !iov_iter_is_aligned(iter, align, align); + copy =3D iov_iter_alignment(iter) & + blk_lim_dma_alignment_and_pad(&q->limits); ret =3D iov_iter_extract_pages(iter, &pages, bytes, nr_vecs, 0, &offset); if (unlikely(ret < 0)) goto free_bvec; --=20 2.47.3 From nobody Sun Oct 5 10:48:56 2025 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 7AA7223F295 for ; Tue, 5 Aug 2025 14:11:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403096; cv=none; b=H+fgxvlc+VzA2PR8kcGhV27qMkgMZDh4URHhZhPUNrCLpKACYXVzxw+Au3NxxqL/z783D08dEbdROzpa/A448RTvtIP2qFdLRu6F6/vzU9gIOdiOo3ovRwBpl7dnHYx3Tv7wI1IXX2Q8abgKmO9zeUUXcfcWcgbTYsMVD9yqD/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754403096; c=relaxed/simple; bh=UVyMyNSWmKVpdo2b8zlviQrB93mojZdGTaqeAGXZkZ8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MetkCUW+eRsJGEUJ0Zqtld6I/2vtDU46sSoiEfad1NhfPkh2MmVRBoehJr9z2RyK5PlZxYGe7BNaGqkEc+2zQEwIEKi+3K8dn+fbwqXCNNzQ9RitsBIIzIRSPJbhWFfpETzlktgV8ojX2ndUqPMKh0k46R1XLnkCZ0s91SclJDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=vR4z1u3E; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="vR4z1u3E" Received: from pps.filterd (m0148461.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 575CYQMd015353 for ; Tue, 5 Aug 2025 07:11:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=q9rfR/CPErdS7PfZ2eWN7JXXGJ1kaWhdntYdyMqVQE0=; b=vR4z1u3E4IGd cvf9AjEaKuc7OIhjv4AsUrX/xXOWuXH85irR+j9HGampukqIwqcpl5jBcWYf6O6A FV23TZPoMIko8cyNDuCHbe2Uqc6stltlfgZfCoi8rKU6I1amt26q5MGvqYG/wW+a BR7glaVT09yW5h7UZg0fr0yWsDOzz2LuWJ36gDSykO3/DlrfNHQksVKDp/2aRRvI WJWrLNh5XgBMyEZBhHvMaXzO5jND42+HFhEct1aKsT74bZA7cFiCph+d20R7aSsU 8Jq/CjlW1+YWu46EYIuZx/HVydb+FjvlrshKVf4f7q30V/ziS1mTExPtG/3smSOi VpTEQKQpsA== Received: from maileast.thefacebook.com ([163.114.135.16]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 48bdg9aay0-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 05 Aug 2025 07:11:33 -0700 (PDT) Received: from twshared0973.10.ash9.facebook.com (2620:10d:c0a8:1b::8e35) by mail.thefacebook.com (2620:10d:c0a9:6f::8fd4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 5 Aug 2025 14:11:27 +0000 Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533) id 05F1D4FDD56; Tue, 5 Aug 2025 07:11:24 -0700 (PDT) From: Keith Busch To: , , CC: , , , , Keith Busch Subject: [PATCHv2 7/7] iov_iter: remove iov_iter_is_aligned Date: Tue, 5 Aug 2025 07:11:23 -0700 Message-ID: <20250805141123.332298-8-kbusch@meta.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250805141123.332298-1-kbusch@meta.com> References: <20250805141123.332298-1-kbusch@meta.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-FB-Internal: Safe X-Authority-Analysis: v=2.4 cv=dLymmPZb c=1 sm=1 tr=0 ts=68921115 cx=c_pps a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=S-mNSWGAXQVMvOK0xjcA:9 X-Proofpoint-ORIG-GUID: GFOKqPGi8s2sQ9K8oWaLFPNaiIJFLeTG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODA1MDEwNCBTYWx0ZWRfX7/2ZOtY9qXys m0R4gNefI442CYuFQU75Elc3sOnT6vPa8d625P4n83PzIi6aOKBzgB8YPBvKYwmNyMMFlSll6Pr /1GLAUkRxpilGCTqB9Ts6VE7z1oE+JRzC5Y3gqANOIwhNFFc3tvWHIOkBStJsFTUxVDJ5ZEiRSF GDERkkHXD8BKPLQ+St70U4I90kQnxJahcRwzxpVpbXM9X2cnqAK6crJSt9wJRs7ZDRswISuHWoi tvlyPcZjS8TRE52TG11c5JS3IcGd+frFZOTZDn1TIwiCPYMNX7nU4s2c20SvTKys8l14ly6v64M iV/9bve138IXntJ1MxaMHf0LnVsWROfMNXSc+JgcybFxMZoELxp8Sust+xfMK1EGEWp/PxKtsC9 kFeeFMa8c4VCAla3n9iu1XeNp+Xo7b1/n11uLy1Oyo7XZ+baGUP9KOCQ1crIHZWf6x3zRmS9 X-Proofpoint-GUID: GFOKqPGi8s2sQ9K8oWaLFPNaiIJFLeTG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-05_04,2025-08-04_01,2025-03-28_01 Content-Type: text/plain; charset="utf-8" From: Keith Busch No more callers. Signed-off-by: Keith Busch Reviewed-by: Mike Snitzer Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen --- include/linux/uio.h | 2 - lib/iov_iter.c | 95 --------------------------------------------- 2 files changed, 97 deletions(-) diff --git a/include/linux/uio.h b/include/linux/uio.h index 2e86c653186c6..5b127043a1519 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -286,8 +286,6 @@ size_t _copy_mc_to_iter(const void *addr, size_t bytes,= struct iov_iter *i); #endif =20 size_t iov_iter_zero(size_t bytes, struct iov_iter *); -bool iov_iter_is_aligned(const struct iov_iter *i, unsigned addr_mask, - unsigned len_mask); unsigned long iov_iter_alignment(const struct iov_iter *i); unsigned long iov_iter_gap_alignment(const struct iov_iter *i); void iov_iter_init(struct iov_iter *i, unsigned int direction, const struc= t iovec *iov, diff --git a/lib/iov_iter.c b/lib/iov_iter.c index f9193f952f499..2fe66a6b8789e 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -784,101 +784,6 @@ void iov_iter_discard(struct iov_iter *i, unsigned in= t direction, size_t count) } EXPORT_SYMBOL(iov_iter_discard); =20 -static bool iov_iter_aligned_iovec(const struct iov_iter *i, unsigned addr= _mask, - unsigned len_mask) -{ - const struct iovec *iov =3D iter_iov(i); - size_t size =3D i->count; - size_t skip =3D i->iov_offset; - - do { - size_t len =3D iov->iov_len - skip; - - if (len > size) - len =3D size; - if (len & len_mask) - return false; - if ((unsigned long)(iov->iov_base + skip) & addr_mask) - return false; - - iov++; - size -=3D len; - skip =3D 0; - } while (size); - - return true; -} - -static bool iov_iter_aligned_bvec(const struct iov_iter *i, unsigned addr_= mask, - unsigned len_mask) -{ - const struct bio_vec *bvec =3D i->bvec; - unsigned skip =3D i->iov_offset; - size_t size =3D i->count; - - do { - size_t len =3D bvec->bv_len - skip; - - if (len > size) - len =3D size; - if (len & len_mask) - return false; - if ((unsigned long)(bvec->bv_offset + skip) & addr_mask) - return false; - - bvec++; - size -=3D len; - skip =3D 0; - } while (size); - - return true; -} - -/** - * iov_iter_is_aligned() - Check if the addresses and lengths of each segm= ents - * are aligned to the parameters. - * - * @i: &struct iov_iter to restore - * @addr_mask: bit mask to check against the iov element's addresses - * @len_mask: bit mask to check against the iov element's lengths - * - * Return: false if any addresses or lengths intersect with the provided m= asks - */ -bool iov_iter_is_aligned(const struct iov_iter *i, unsigned addr_mask, - unsigned len_mask) -{ - if (likely(iter_is_ubuf(i))) { - if (i->count & len_mask) - return false; - if ((unsigned long)(i->ubuf + i->iov_offset) & addr_mask) - return false; - return true; - } - - if (likely(iter_is_iovec(i) || iov_iter_is_kvec(i))) - return iov_iter_aligned_iovec(i, addr_mask, len_mask); - - if (iov_iter_is_bvec(i)) - return iov_iter_aligned_bvec(i, addr_mask, len_mask); - - /* With both xarray and folioq types, we're dealing with whole folios. */ - if (iov_iter_is_xarray(i)) { - if (i->count & len_mask) - return false; - if ((i->xarray_start + i->iov_offset) & addr_mask) - return false; - } - if (iov_iter_is_folioq(i)) { - if (i->count & len_mask) - return false; - if (i->iov_offset & addr_mask) - return false; - } - - return true; -} -EXPORT_SYMBOL_GPL(iov_iter_is_aligned); - static unsigned long iov_iter_alignment_iovec(const struct iov_iter *i) { const struct iovec *iov =3D iter_iov(i); --=20 2.47.3