]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop queue-5.4/revert-s390-dasd-establish-dma-alignment.patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Aug 2024 14:28:12 +0000 (16:28 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Aug 2024 14:28:12 +0000 (16:28 +0200)
My fault :(

queue-5.4/revert-s390-dasd-establish-dma-alignment.patch [deleted file]
queue-5.4/series

diff --git a/queue-5.4/revert-s390-dasd-establish-dma-alignment.patch b/queue-5.4/revert-s390-dasd-establish-dma-alignment.patch
deleted file mode 100644 (file)
index 36f79cb..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From hoeppner@linux.ibm.com  Tue Aug 27 15:13:30 2024
-From: "Jan Höppner" <hoeppner@linux.ibm.com>
-Date: Tue, 20 Aug 2024 16:13:07 +0200
-Subject: Revert "s390/dasd: Establish DMA alignment"
-To: gregkh@linuxfoundation.org
-Cc: stable@vger.kernel.org, sth@linux.ibm.com
-Message-ID: <20240820141307.2869182-1-hoeppner@linux.ibm.com>
-
-From: "Jan Höppner" <hoeppner@linux.ibm.com>
-
-This reverts commit bc792884b76f ("s390/dasd: Establish DMA alignment").
-
-Quoting the original commit:
-    linux-next commit bf8d08532bc1 ("iomap: add support for dma aligned
-    direct-io") changes the alignment requirement to come from the block
-    device rather than the block size, and the default alignment
-    requirement is 512-byte boundaries. Since DASD I/O has page
-    alignments for IDAW/TIDAW requests, let's override this value to
-    restore the expected behavior.
-
-I mentioned TIDAW, but that was wrong. TIDAWs have no distinct alignment
-requirement (per p. 15-70 of POPS SA22-7832-13):
-
-   Unless otherwise specified, TIDAWs may designate
-   a block of main storage on any boundary and length
-   up to 4K bytes, provided the specified block does not
-   cross a 4 K-byte boundary.
-
-IDAWs do, but the original commit neglected that while ECKD DASD are
-typically formatted in 4096-byte blocks, they don't HAVE to be. Formatting
-an ECKD volume with smaller blocks is permitted (dasdfmt -b xxx), and the
-problematic commit enforces alignment properties to such a device that
-will result in errors, such as:
-
-   [test@host ~]# lsdasd -l a367 | grep blksz
-     blksz:                            512
-   [test@host ~]# mkfs.xfs -f /dev/disk/by-path/ccw-0.0.a367-part1
-   meta-data=/dev/dasdc1            isize=512    agcount=4, agsize=230075 blks
-            =                       sectsz=512   attr=2, projid32bit=1
-            =                       crc=1        finobt=1, sparse=1, rmapbt=1
-            =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
-   data     =                       bsize=4096   blocks=920299, imaxpct=25
-            =                       sunit=0      swidth=0 blks
-   naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
-   log      =internal log           bsize=4096   blocks=16384, version=2
-            =                       sectsz=512   sunit=0 blks, lazy-count=1
-   realtime =none                   extsz=4096   blocks=0, rtextents=0
-   error reading existing superblock: Invalid argument
-   mkfs.xfs: pwrite failed: Invalid argument
-   libxfs_bwrite: write failed on (unknown) bno 0x70565c/0x100, err=22
-   mkfs.xfs: Releasing dirty buffer to free list!
-   found dirty buffer (bulk) on free list!
-   mkfs.xfs: pwrite failed: Invalid argument
-   ...snipped...
-
-The original commit omitted the FBA discipline for just this reason,
-but the formatted block size of the other disciplines was overlooked.
-The solution to all of this is to revert to the original behavior,
-such that the block size can be respected.
-
-But what of the original problem? That was manifested with a direct-io
-QEMU guest, where QEMU itself was changed a month or two later with
-commit 25474d90aa ("block: use the request length for iov alignment")
-such that the blamed kernel commit is unnecessary.
-
-Note: This is an adapted version of the original upstream commit
-2a07bb64d801 ("s390/dasd: Remove DMA alignment").
-
-Cc: stable@vger.kernel.org # 6.0+
-Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/s390/block/dasd_diag.c | 1 -
- drivers/s390/block/dasd_eckd.c | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
-index 2e4e555b37c3..12db1046aad0 100644
---- a/drivers/s390/block/dasd_diag.c
-+++ b/drivers/s390/block/dasd_diag.c
-@@ -639,7 +639,6 @@ static void dasd_diag_setup_blk_queue(struct dasd_block *block)
-       /* With page sized segments each segment can be translated into one idaw/tidaw */
-       blk_queue_max_segment_size(q, PAGE_SIZE);
-       blk_queue_segment_boundary(q, PAGE_SIZE - 1);
--      blk_queue_dma_alignment(q, PAGE_SIZE - 1);
- }
- static int dasd_diag_pe_handler(struct dasd_device *device,
-diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
-index bd89b032968a..18b63210ac5d 100644
---- a/drivers/s390/block/dasd_eckd.c
-+++ b/drivers/s390/block/dasd_eckd.c
-@@ -6895,7 +6895,6 @@ static void dasd_eckd_setup_blk_queue(struct dasd_block *block)
-       /* With page sized segments each segment can be translated into one idaw/tidaw */
-       blk_queue_max_segment_size(q, PAGE_SIZE);
-       blk_queue_segment_boundary(q, PAGE_SIZE - 1);
--      blk_queue_dma_alignment(q, PAGE_SIZE - 1);
- }
- static struct ccw_driver dasd_eckd_driver = {
--- 
-2.43.0
-
index 8049a7469a173d23d76a84988f12e70750913c05..a5e604117f64bd61a25420f273870db97fc10ed9 100644 (file)
@@ -105,4 +105,3 @@ mmc-dw_mmc-allow-biu-and-ciu-clocks-to-defer.patch
 alsa-timer-relax-start-tick-time-check-for-slave-timer-elements.patch
 bluetooth-hci_ldisc-check-hci_uart_proto_ready-flag-in-hciuartgetproto.patch
 input-mt-limit-max-slots.patch
-revert-s390-dasd-establish-dma-alignment.patch