aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/blk-settings.c')
-rw-r--r--block/blk-settings.c61
1 files changed, 27 insertions, 34 deletions
diff --git a/block/blk-settings.c b/block/blk-settings.c
index 4df09a1b8f43..c8d0c5724098 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -10,8 +10,10 @@
10 10
11#include "blk.h" 11#include "blk.h"
12 12
13unsigned long blk_max_low_pfn, blk_max_pfn; 13unsigned long blk_max_low_pfn;
14EXPORT_SYMBOL(blk_max_low_pfn); 14EXPORT_SYMBOL(blk_max_low_pfn);
15
16unsigned long blk_max_pfn;
15EXPORT_SYMBOL(blk_max_pfn); 17EXPORT_SYMBOL(blk_max_pfn);
16 18
17/** 19/**
@@ -29,7 +31,6 @@ void blk_queue_prep_rq(struct request_queue *q, prep_rq_fn *pfn)
29{ 31{
30 q->prep_rq_fn = pfn; 32 q->prep_rq_fn = pfn;
31} 33}
32
33EXPORT_SYMBOL(blk_queue_prep_rq); 34EXPORT_SYMBOL(blk_queue_prep_rq);
34 35
35/** 36/**
@@ -52,14 +53,12 @@ void blk_queue_merge_bvec(struct request_queue *q, merge_bvec_fn *mbfn)
52{ 53{
53 q->merge_bvec_fn = mbfn; 54 q->merge_bvec_fn = mbfn;
54} 55}
55
56EXPORT_SYMBOL(blk_queue_merge_bvec); 56EXPORT_SYMBOL(blk_queue_merge_bvec);
57 57
58void blk_queue_softirq_done(struct request_queue *q, softirq_done_fn *fn) 58void blk_queue_softirq_done(struct request_queue *q, softirq_done_fn *fn)
59{ 59{
60 q->softirq_done_fn = fn; 60 q->softirq_done_fn = fn;
61} 61}
62
63EXPORT_SYMBOL(blk_queue_softirq_done); 62EXPORT_SYMBOL(blk_queue_softirq_done);
64 63
65/** 64/**
@@ -84,7 +83,7 @@ EXPORT_SYMBOL(blk_queue_softirq_done);
84 * __bio_kmap_atomic() to get a temporary kernel mapping, or by calling 83 * __bio_kmap_atomic() to get a temporary kernel mapping, or by calling
85 * blk_queue_bounce() to create a buffer in normal memory. 84 * blk_queue_bounce() to create a buffer in normal memory.
86 **/ 85 **/
87void blk_queue_make_request(struct request_queue * q, make_request_fn * mfn) 86void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
88{ 87{
89 /* 88 /*
90 * set defaults 89 * set defaults
@@ -93,7 +92,8 @@ void blk_queue_make_request(struct request_queue * q, make_request_fn * mfn)
93 blk_queue_max_phys_segments(q, MAX_PHYS_SEGMENTS); 92 blk_queue_max_phys_segments(q, MAX_PHYS_SEGMENTS);
94 blk_queue_max_hw_segments(q, MAX_HW_SEGMENTS); 93 blk_queue_max_hw_segments(q, MAX_HW_SEGMENTS);
95 q->make_request_fn = mfn; 94 q->make_request_fn = mfn;
96 q->backing_dev_info.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; 95 q->backing_dev_info.ra_pages =
96 (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE;
97 q->backing_dev_info.state = 0; 97 q->backing_dev_info.state = 0;
98 q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY; 98 q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY;
99 blk_queue_max_sectors(q, SAFE_MAX_SECTORS); 99 blk_queue_max_sectors(q, SAFE_MAX_SECTORS);
@@ -117,7 +117,6 @@ void blk_queue_make_request(struct request_queue * q, make_request_fn * mfn)
117 */ 117 */
118 blk_queue_bounce_limit(q, BLK_BOUNCE_HIGH); 118 blk_queue_bounce_limit(q, BLK_BOUNCE_HIGH);
119} 119}
120
121EXPORT_SYMBOL(blk_queue_make_request); 120EXPORT_SYMBOL(blk_queue_make_request);
122 121
123/** 122/**
@@ -133,7 +132,7 @@ EXPORT_SYMBOL(blk_queue_make_request);
133 **/ 132 **/
134void blk_queue_bounce_limit(struct request_queue *q, u64 dma_addr) 133void blk_queue_bounce_limit(struct request_queue *q, u64 dma_addr)
135{ 134{
136 unsigned long bounce_pfn = dma_addr >> PAGE_SHIFT; 135 unsigned long b_pfn = dma_addr >> PAGE_SHIFT;
137 int dma = 0; 136 int dma = 0;
138 137
139 q->bounce_gfp = GFP_NOIO; 138 q->bounce_gfp = GFP_NOIO;
@@ -141,21 +140,20 @@ void blk_queue_bounce_limit(struct request_queue *q, u64 dma_addr)
141 /* Assume anything <= 4GB can be handled by IOMMU. 140 /* Assume anything <= 4GB can be handled by IOMMU.
142 Actually some IOMMUs can handle everything, but I don't 141 Actually some IOMMUs can handle everything, but I don't
143 know of a way to test this here. */ 142 know of a way to test this here. */
144 if (bounce_pfn < (min_t(u64,0xffffffff,BLK_BOUNCE_HIGH) >> PAGE_SHIFT)) 143 if (b_pfn < (min_t(u64, 0xffffffff, BLK_BOUNCE_HIGH) >> PAGE_SHIFT))
145 dma = 1; 144 dma = 1;
146 q->bounce_pfn = max_low_pfn; 145 q->bounce_pfn = max_low_pfn;
147#else 146#else
148 if (bounce_pfn < blk_max_low_pfn) 147 if (b_pfn < blk_max_low_pfn)
149 dma = 1; 148 dma = 1;
150 q->bounce_pfn = bounce_pfn; 149 q->bounce_pfn = b_pfn;
151#endif 150#endif
152 if (dma) { 151 if (dma) {
153 init_emergency_isa_pool(); 152 init_emergency_isa_pool();
154 q->bounce_gfp = GFP_NOIO | GFP_DMA; 153 q->bounce_gfp = GFP_NOIO | GFP_DMA;
155 q->bounce_pfn = bounce_pfn; 154 q->bounce_pfn = b_pfn;
156 } 155 }
157} 156}
158
159EXPORT_SYMBOL(blk_queue_bounce_limit); 157EXPORT_SYMBOL(blk_queue_bounce_limit);
160 158
161/** 159/**
@@ -171,7 +169,8 @@ void blk_queue_max_sectors(struct request_queue *q, unsigned int max_sectors)
171{ 169{
172 if ((max_sectors << 9) < PAGE_CACHE_SIZE) { 170 if ((max_sectors << 9) < PAGE_CACHE_SIZE) {
173 max_sectors = 1 << (PAGE_CACHE_SHIFT - 9); 171 max_sectors = 1 << (PAGE_CACHE_SHIFT - 9);
174 printk("%s: set to minimum %d\n", __FUNCTION__, max_sectors); 172 printk(KERN_INFO "%s: set to minimum %d\n", __FUNCTION__,
173 max_sectors);
175 } 174 }
176 175
177 if (BLK_DEF_MAX_SECTORS > max_sectors) 176 if (BLK_DEF_MAX_SECTORS > max_sectors)
@@ -181,7 +180,6 @@ void blk_queue_max_sectors(struct request_queue *q, unsigned int max_sectors)
181 q->max_hw_sectors = max_sectors; 180 q->max_hw_sectors = max_sectors;
182 } 181 }
183} 182}
184
185EXPORT_SYMBOL(blk_queue_max_sectors); 183EXPORT_SYMBOL(blk_queue_max_sectors);
186 184
187/** 185/**
@@ -199,12 +197,12 @@ void blk_queue_max_phys_segments(struct request_queue *q,
199{ 197{
200 if (!max_segments) { 198 if (!max_segments) {
201 max_segments = 1; 199 max_segments = 1;
202 printk("%s: set to minimum %d\n", __FUNCTION__, max_segments); 200 printk(KERN_INFO "%s: set to minimum %d\n", __FUNCTION__,
201 max_segments);
203 } 202 }
204 203
205 q->max_phys_segments = max_segments; 204 q->max_phys_segments = max_segments;
206} 205}
207
208EXPORT_SYMBOL(blk_queue_max_phys_segments); 206EXPORT_SYMBOL(blk_queue_max_phys_segments);
209 207
210/** 208/**
@@ -223,12 +221,12 @@ void blk_queue_max_hw_segments(struct request_queue *q,
223{ 221{
224 if (!max_segments) { 222 if (!max_segments) {
225 max_segments = 1; 223 max_segments = 1;
226 printk("%s: set to minimum %d\n", __FUNCTION__, max_segments); 224 printk(KERN_INFO "%s: set to minimum %d\n", __FUNCTION__,
225 max_segments);
227 } 226 }
228 227
229 q->max_hw_segments = max_segments; 228 q->max_hw_segments = max_segments;
230} 229}
231
232EXPORT_SYMBOL(blk_queue_max_hw_segments); 230EXPORT_SYMBOL(blk_queue_max_hw_segments);
233 231
234/** 232/**
@@ -244,12 +242,12 @@ void blk_queue_max_segment_size(struct request_queue *q, unsigned int max_size)
244{ 242{
245 if (max_size < PAGE_CACHE_SIZE) { 243 if (max_size < PAGE_CACHE_SIZE) {
246 max_size = PAGE_CACHE_SIZE; 244 max_size = PAGE_CACHE_SIZE;
247 printk("%s: set to minimum %d\n", __FUNCTION__, max_size); 245 printk(KERN_INFO "%s: set to minimum %d\n", __FUNCTION__,
246 max_size);
248 } 247 }
249 248
250 q->max_segment_size = max_size; 249 q->max_segment_size = max_size;
251} 250}
252
253EXPORT_SYMBOL(blk_queue_max_segment_size); 251EXPORT_SYMBOL(blk_queue_max_segment_size);
254 252
255/** 253/**
@@ -267,7 +265,6 @@ void blk_queue_hardsect_size(struct request_queue *q, unsigned short size)
267{ 265{
268 q->hardsect_size = size; 266 q->hardsect_size = size;
269} 267}
270
271EXPORT_SYMBOL(blk_queue_hardsect_size); 268EXPORT_SYMBOL(blk_queue_hardsect_size);
272 269
273/* 270/*
@@ -283,17 +280,16 @@ EXPORT_SYMBOL(blk_queue_hardsect_size);
283void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) 280void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b)
284{ 281{
285 /* zero is "infinity" */ 282 /* zero is "infinity" */
286 t->max_sectors = min_not_zero(t->max_sectors,b->max_sectors); 283 t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors);
287 t->max_hw_sectors = min_not_zero(t->max_hw_sectors,b->max_hw_sectors); 284 t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors);
288 285
289 t->max_phys_segments = min(t->max_phys_segments,b->max_phys_segments); 286 t->max_phys_segments = min(t->max_phys_segments, b->max_phys_segments);
290 t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments); 287 t->max_hw_segments = min(t->max_hw_segments, b->max_hw_segments);
291 t->max_segment_size = min(t->max_segment_size,b->max_segment_size); 288 t->max_segment_size = min(t->max_segment_size, b->max_segment_size);
292 t->hardsect_size = max(t->hardsect_size,b->hardsect_size); 289 t->hardsect_size = max(t->hardsect_size, b->hardsect_size);
293 if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) 290 if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags))
294 clear_bit(QUEUE_FLAG_CLUSTER, &t->queue_flags); 291 clear_bit(QUEUE_FLAG_CLUSTER, &t->queue_flags);
295} 292}
296
297EXPORT_SYMBOL(blk_queue_stack_limits); 293EXPORT_SYMBOL(blk_queue_stack_limits);
298 294
299/** 295/**
@@ -332,7 +328,6 @@ int blk_queue_dma_drain(struct request_queue *q, void *buf,
332 328
333 return 0; 329 return 0;
334} 330}
335
336EXPORT_SYMBOL_GPL(blk_queue_dma_drain); 331EXPORT_SYMBOL_GPL(blk_queue_dma_drain);
337 332
338/** 333/**
@@ -344,12 +339,12 @@ void blk_queue_segment_boundary(struct request_queue *q, unsigned long mask)
344{ 339{
345 if (mask < PAGE_CACHE_SIZE - 1) { 340 if (mask < PAGE_CACHE_SIZE - 1) {
346 mask = PAGE_CACHE_SIZE - 1; 341 mask = PAGE_CACHE_SIZE - 1;
347 printk("%s: set to minimum %lx\n", __FUNCTION__, mask); 342 printk(KERN_INFO "%s: set to minimum %lx\n", __FUNCTION__,
343 mask);
348 } 344 }
349 345
350 q->seg_boundary_mask = mask; 346 q->seg_boundary_mask = mask;
351} 347}
352
353EXPORT_SYMBOL(blk_queue_segment_boundary); 348EXPORT_SYMBOL(blk_queue_segment_boundary);
354 349
355/** 350/**
@@ -366,7 +361,6 @@ void blk_queue_dma_alignment(struct request_queue *q, int mask)
366{ 361{
367 q->dma_alignment = mask; 362 q->dma_alignment = mask;
368} 363}
369
370EXPORT_SYMBOL(blk_queue_dma_alignment); 364EXPORT_SYMBOL(blk_queue_dma_alignment);
371 365
372/** 366/**
@@ -390,7 +384,6 @@ void blk_queue_update_dma_alignment(struct request_queue *q, int mask)
390 if (mask > q->dma_alignment) 384 if (mask > q->dma_alignment)
391 q->dma_alignment = mask; 385 q->dma_alignment = mask;
392} 386}
393
394EXPORT_SYMBOL(blk_queue_update_dma_alignment); 387EXPORT_SYMBOL(blk_queue_update_dma_alignment);
395 388
396int __init blk_settings_init(void) 389int __init blk_settings_init(void)