]> err.no Git - linux-2.6/blobdiff - block/blk-map.c
spi: new orion_spi driver
[linux-2.6] / block / blk-map.c
index 813011ef8276e8e2f7c7858a5d70eeb86255574a..af37e4ae62f5933db45692c81258e5af84c632b4 100644 (file)
@@ -277,7 +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));
+       do_copy = ((kaddr & alignment) || (len & alignment) ||
+                  object_is_on_stack(kbuf));
 
        if (do_copy)
                bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);