aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2023-08-10 09:21:14 +0200
committerRichard Weinberger <richard@nod.at>2023-08-10 17:33:34 +0200
commit20327e106a1edea0167b79cfde8c7a5660c828df (patch)
treea4f29695a0abcb75f66e6a309fb3029848e553a6
parent3b401444cf9c6d2e762b595f8106d74b1b8855c7 (diff)
downloadmisc-ubiblock_highmem.tar.gz
scsi: core: Remove scsi_kmap_atomic_sg()ubiblock_highmem
All users have been migrated to use kmap_sg(), let's kill this helper. Signed-off-by: Richard Weinberger <richard@nod.at>
-rw-r--r--drivers/scsi/scsi_lib.c60
-rw-r--r--include/scsi/scsi_cmnd.h4
2 files changed, 0 insertions, 64 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index ad9afae49544ab..70469502aeb76a 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -3001,66 +3001,6 @@ scsi_host_unblock(struct Scsi_Host *shost, int new_state)
}
EXPORT_SYMBOL_GPL(scsi_host_unblock);
-/**
- * scsi_kmap_atomic_sg - find and atomically map an sg-elemnt
- * @sgl: scatter-gather list
- * @sg_count: number of segments in sg
- * @offset: offset in bytes into sg, on return offset into the mapped area
- * @len: bytes to map, on return number of bytes mapped
- *
- * Returns virtual address of the start of the mapped page
- */
-void *scsi_kmap_atomic_sg(struct scatterlist *sgl, int sg_count,
- size_t *offset, size_t *len)
-{
- int i;
- size_t sg_len = 0, len_complete = 0;
- struct scatterlist *sg;
- struct page *page;
-
- WARN_ON(!irqs_disabled());
-
- for_each_sg(sgl, sg, sg_count, i) {
- len_complete = sg_len; /* Complete sg-entries */
- sg_len += sg->length;
- if (sg_len > *offset)
- break;
- }
-
- if (unlikely(i == sg_count)) {
- printk(KERN_ERR "%s: Bytes in sg: %zu, requested offset %zu, "
- "elements %d\n",
- __func__, sg_len, *offset, sg_count);
- WARN_ON(1);
- return NULL;
- }
-
- /* Offset starting from the beginning of first page in this sg-entry */
- *offset = *offset - len_complete + sg->offset;
-
- /* Assumption: contiguous pages can be accessed as "page + i" */
- page = nth_page(sg_page(sg), (*offset >> PAGE_SHIFT));
- *offset &= ~PAGE_MASK;
-
- /* Bytes in this sg-entry from *offset to the end of the page */
- sg_len = PAGE_SIZE - *offset;
- if (*len > sg_len)
- *len = sg_len;
-
- return kmap_atomic(page);
-}
-EXPORT_SYMBOL(scsi_kmap_atomic_sg);
-
-/**
- * scsi_kunmap_atomic_sg - atomically unmap a virtual address, previously mapped with scsi_kmap_atomic_sg
- * @virt: virtual address to be unmapped
- */
-void scsi_kunmap_atomic_sg(void *virt)
-{
- kunmap_atomic(virt);
-}
-EXPORT_SYMBOL(scsi_kunmap_atomic_sg);
-
void sdev_disable_disk_events(struct scsi_device *sdev)
{
atomic_inc(&sdev->disk_events_disable_depth);
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index 526def14e7fb75..919ac97229481c 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -163,10 +163,6 @@ void scsi_done_direct(struct scsi_cmnd *cmd);
extern void scsi_finish_command(struct scsi_cmnd *cmd);
-extern void *scsi_kmap_atomic_sg(struct scatterlist *sg, int sg_count,
- size_t *offset, size_t *len);
-extern void scsi_kunmap_atomic_sg(void *virt);
-
blk_status_t scsi_alloc_sgtables(struct scsi_cmnd *cmd);
void scsi_free_sgtables(struct scsi_cmnd *cmd);