libata: fix ata_pio_sector for CONFIG_HIGHMEM
authorChristoph Hellwig <hch@lst.de>
Fri, 9 Jul 2021 13:02:37 +0000 (15:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Aug 2021 11:22:19 +0000 (13:22 +0200)
commit0f05e0ffa247e97ed2586a0e41b1bb4c385d5089
tree7639db24622f53e60bb257b72ec5e9d1ba81fa65
parent11891adab23daa7e08a8e0c25bebfba9c5b5a579
libata: fix ata_pio_sector for CONFIG_HIGHMEM

[ Upstream commit ecef6a9effe49e8e2635c839020b9833b71e934c ]

Data transfers are not required to be block aligned in memory, so they
span two pages.  Fix this by splitting the call to >sff_data_xfer into
two for that case.

This has been broken since the initial libata import before the damn
of git, but was uncovered by the legacy ide driver removal.

Reported-by: kernel test robot <oliver.sang@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210709130237.3730959-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/ata/libata-sff.c