From 93b3f558f002619a171b0c80bd6790eb0dc7bfd7 Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Fri, 25 Jul 2008 19:44:39 -0700 Subject: [PATCH] --- yaml --- r: 106143 b: refs/heads/master c: a76eef9573c93f8f324ebacfd090a3e319a64d59 h: refs/heads/master i: 106141: c48f2a82f03bd8a3866d9d01e72f4b11153ed2df 106139: a0b4afdb5112976979d7cb4048b7faf647eb3f88 106135: 6d3db9f2433cfb32826278bd7e7ab2677d2a64cb 106127: c64999868a64ad79f6e524c7868c11f88c838134 106111: 36bd3dbdd185b324c0e5352c76c1aa55641c7815 v: v3 --- [refs] | 2 +- trunk/block/blk-map.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index e8429337c9f9..d22982fe94be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a2e2e3577c3ef2b5dbb866e97e612aae4adfa32f +refs/heads/master: a76eef9573c93f8f324ebacfd090a3e319a64d59 diff --git a/trunk/block/blk-map.c b/trunk/block/blk-map.c index ddd96fb11a7d..af37e4ae62f5 100644 --- a/trunk/block/blk-map.c +++ b/trunk/block/blk-map.c @@ -269,7 +269,6 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf, int reading = rq_data_dir(rq) == READ; int do_copy = 0; struct bio *bio; - unsigned long stack_mask = ~(THREAD_SIZE - 1); if (len > (q->max_hw_sectors << 9)) return -EINVAL; @@ -278,11 +277,8 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf, kaddr = (unsigned long)kbuf; alignment = queue_dma_alignment(q) | q->dma_pad_mask; - do_copy = ((kaddr & alignment) || (len & alignment)); - - if (!((kaddr & stack_mask) ^ - ((unsigned long)current->stack & stack_mask))) - do_copy = 1; + do_copy = ((kaddr & alignment) || (len & alignment) || + object_is_on_stack(kbuf)); if (do_copy) bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);