block: fix queue bounce limit setting
authorTejun Heo <tj@kernel.org>
Wed, 15 Apr 2009 13:10:25 +0000 (22:10 +0900)
committerJens Axboe <jens.axboe@oracle.com>
Wed, 22 Apr 2009 06:35:09 +0000 (08:35 +0200)
commitcd0aca2d550f238d80ba58e7dcade4ea3d0a3aa7
tree9581a77ce54247a18963c9d827063923a667add7
parent25636e282fe95508cae96bb27f86407aef935817
block: fix queue bounce limit setting

Impact: don't set GFP_DMA in q->bounce_gfp unnecessarily

All DMA address limits are expressed in terms of the last addressable
unit (byte or page) instead of one plus that.  However, when
determining bounce_gfp for 64bit machines in blk_queue_bounce_limit(),
it compares the specified limit against 0x100000000UL to determine
whether it's below 4G ending up falsely setting GFP_DMA in
q->bounce_gfp.

As DMA zone is very small on x86_64, this makes larger SG_IO transfers
very eager to trigger OOM killer.  Fix it.  While at it, rename the
parameter to @dma_mask for clarity and convert comment to proper
winged style.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blk-settings.c