Patch 1 changes UBIblock to use a copy of scsi_kmap_atomic_sg() for sg list processing. This patch is meant for backporting to stable. It makes use of kmap_atomic() and a bounce buffer because MTD/UBI IO can sleep. Patches 2 to 7 move scsi_kmap_atomic_sg() into lib/scatterlist.c, convert it to kmap_local(), convert all users to it and remove the bounce buffer from UBIblock again. Richard Weinberger (7): ubi: block: Refactor sg list processing for highmem scatterlist: Add kmap helpers scsi: dc395x: Switch to kmap_sg scsi: esp_scsi: Switch to kmap_sg scsi: fdomain: Switch to kmap_sg ubi: block: Switch to kmap_sg scsi: core: Remove scsi_kmap_atomic_sg() drivers/mtd/ubi/block.c | 11 +++---- drivers/mtd/ubi/eba.c | 50 +++++++++++++------------------ drivers/scsi/dc395x.c | 12 ++++---- drivers/scsi/esp_scsi.c | 4 +-- drivers/scsi/fdomain.c | 10 +++---- drivers/scsi/scsi_lib.c | 60 ------------------------------------- include/linux/mtd/ubi.h | 12 ++++---- include/linux/scatterlist.h | 3 ++ include/scsi/scsi_cmnd.h | 4 --- lib/scatterlist.c | 55 ++++++++++++++++++++++++++++++++++ 10 files changed, 100 insertions(+), 121 deletions(-) -- 2.35.3