Hi all, the block layer bounce buffering from the early days of highmem keeps being a wart in the block layer despite usage by only four drivers, all through the SCSI layer. One of them is an old PIO-only ISA card, two are parallel port adapters, and the fourth is the usb-storage driver. This series makes the first three depend on !HIGHMEM and for the fourth rejects the probe only when used on highmem system and the HCD is one of the few annoying one that does not support DMA. This is not the most pretty way to do things, but none of the driver maintainers stepped up to convert them to properly kmapping buffers before doing PIO or MMIO operations it does shift the burden to these drivers and might get them to actually move that way if there are any users of the drivers, or in case of usb-storage configurations left. A nice benefit is that we remove the per-numa node stat used for the number of bounce buffer operations. Changes since v1: - return -EINVAL from usb-storage ->probe - improve the error message in usb-storage - improve comments in usb-storage Diffstat: b/arch/mips/configs/gcw0_defconfig | 1 b/block/Makefile | 1 b/block/blk-map.c | 5 b/block/blk-mq.c | 2 b/block/blk-settings.c | 5 b/block/blk.h | 17 -- b/drivers/base/node.c | 2 b/drivers/scsi/Kconfig | 3 b/drivers/scsi/aha152x.c | 1 b/drivers/scsi/imm.c | 1 b/drivers/scsi/ppa.c | 1 b/drivers/scsi/scsi_lib.c | 3 b/drivers/usb/storage/usb.c | 20 +- b/fs/proc/meminfo.c | 3 b/include/linux/blk_types.h | 1 b/include/linux/blkdev.h | 5 b/include/linux/mmzone.h | 1 b/include/scsi/scsi_host.h | 2 b/include/trace/events/block.h | 15 -- b/include/uapi/linux/blktrace_api.h | 2 b/kernel/trace/blktrace.c | 9 - b/mm/show_mem.c | 4 block/bounce.c | 267 ------------------------------------ 23 files changed, 24 insertions(+), 347 deletions(-)