diff options
Diffstat (limited to 'block/ll_rw_blk.c')
-rw-r--r-- | block/ll_rw_blk.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 5ccec8aa964b..3d0422f48453 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -760,6 +760,30 @@ void blk_queue_dma_alignment(struct request_queue *q, int mask) | |||
760 | EXPORT_SYMBOL(blk_queue_dma_alignment); | 760 | EXPORT_SYMBOL(blk_queue_dma_alignment); |
761 | 761 | ||
762 | /** | 762 | /** |
763 | * blk_queue_update_dma_alignment - update dma length and memory alignment | ||
764 | * @q: the request queue for the device | ||
765 | * @mask: alignment mask | ||
766 | * | ||
767 | * description: | ||
768 | * update required memory and length aligment for direct dma transactions. | ||
769 | * If the requested alignment is larger than the current alignment, then | ||
770 | * the current queue alignment is updated to the new value, otherwise it | ||
771 | * is left alone. The design of this is to allow multiple objects | ||
772 | * (driver, device, transport etc) to set their respective | ||
773 | * alignments without having them interfere. | ||
774 | * | ||
775 | **/ | ||
776 | void blk_queue_update_dma_alignment(struct request_queue *q, int mask) | ||
777 | { | ||
778 | BUG_ON(mask > PAGE_SIZE); | ||
779 | |||
780 | if (mask > q->dma_alignment) | ||
781 | q->dma_alignment = mask; | ||
782 | } | ||
783 | |||
784 | EXPORT_SYMBOL(blk_queue_update_dma_alignment); | ||
785 | |||
786 | /** | ||
763 | * blk_queue_find_tag - find a request by its tag and queue | 787 | * blk_queue_find_tag - find a request by its tag and queue |
764 | * @q: The request queue for the device | 788 | * @q: The request queue for the device |
765 | * @tag: The tag of the request | 789 | * @tag: The tag of the request |