The patch titled block: use ARCH_KMALLOC_MINALIGN as the default dma pad mask has been removed from the -mm tree. Its filename was block-use-arch_kmalloc_minalign-as-the-default-dma-pad-mask.patch This patch was dropped because an updated version will be merged The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: block: use ARCH_KMALLOC_MINALIGN as the default dma pad mask From: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> The goal of this patchset is reverting the commit 22a9189fd073db3d03a4cf8b8c098aa207602de1 (cdrom: use kmalloced buffers instead of buffers on stack). http://lkml.org/lkml/2008/4/21/634 The commit is using kmalloced buffers for cdrom packet commands to avoid stack corruption on non coherent platforms. But allocating a small buffer like this is not nice (unnecessary complicity): + buffer = kmalloc(8, GFP_KERNEL); I tried to remove generic_packet() and convert cdrom users to use the block queue like pkt_generic_packet (as Jens suggested in the thread if I correctly understand), but it turned out that it needs tricky surgery (like handling ssleep and retries for packet commands in ide). Then I found that we can easily handle packet commands on non coherent platforms. The diffstat is pretty small except for the revert. All this patchset does is just setting the dma_pad_mask to ARCH_KMALLOC_MINALIGN. Only scsi and ide-cd do DMA generic_packet. In the case of scsi, sr_packet uses blk_rq_map_kern (the commit 68154e90c9d1492d570671ae181d9a8f8530da55) post 2.6.25. So if we set the dma padding on non coherent platforms, sr_packet uses allocated pages properly. In the case of IDE, ide-cd has a mechanism to handle alignment and padding for SG_IO. So we can easily exploit it for packet commands. If some architectures can't do DMA on stack, we also need to a new queue_flag like QUEUE_FLAG_NO_DMA_ON_STACK in addtion of this patchset. This patch: This sets the default dma pad mask to ARCH_KMALLOC_MINALIGN in blk_queue_make_request(). It affects only non-coherent platforms. Signed-off-by: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> Cc: Tejun Heo <htejun@xxxxxxxxx> Cc: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> Cc: Jens Axboe <jens.axboe@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- block/blk-settings.c | 6 ++++++ 1 file changed, 6 insertions(+) diff -puN block/blk-settings.c~block-use-arch_kmalloc_minalign-as-the-default-dma-pad-mask block/blk-settings.c --- a/block/blk-settings.c~block-use-arch_kmalloc_minalign-as-the-default-dma-pad-mask +++ a/block/blk-settings.c @@ -84,6 +84,11 @@ EXPORT_SYMBOL(blk_queue_softirq_done); **/ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn) { +#ifndef ARCH_KMALLOC_MINALIGN +#define ARCH_KMALLOC_MINALIGN 1 +#endif + unsigned int min_align = ARCH_KMALLOC_MINALIGN; + /* * set defaults */ @@ -98,6 +103,7 @@ void blk_queue_make_request(struct reque blk_queue_max_sectors(q, SAFE_MAX_SECTORS); blk_queue_hardsect_size(q, 512); blk_queue_dma_alignment(q, 511); + blk_queue_dma_pad(q, min_align - 1); blk_queue_congestion_threshold(q); q->nr_batching = BLK_BATCH_REQ; _ Patches currently in -mm which might be from fujita.tomonori@xxxxxxxxxxxxx are linux-next.patch block-use-arch_kmalloc_minalign-as-the-default-dma-pad-mask.patch block-add-blk_queue_update_dma_pad.patch ide-use-the-dma-safe-check-for-req_type_ata_pc.patch cdrom-revert-commit-22a9189-cdrom-use-kmalloced-buffers-instead-of-buffers-on-stack.patch dma-mapping-add-the-device-argument-to-dma_mapping_error.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-sge-fix.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-svc_rdma-fix.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-bnx2x.patch dma-mapping-add-the-device-argument-to-dma_mapping_error-sparc32.patch dma-mapping-x86-per-device-dma_mapping_ops-support.patch dma-mapping-x86-per-device-dma_mapping_ops-support-fix.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html