Messages in this thread | | | Date | Fri, 27 Jan 2006 22:58:59 +0100 | From | Pierre Ossman <> | Subject | Re: How to map high memory for block io |
| |
Pierre Ossman wrote: > Russell King wrote: > >> On Fri, Jan 27, 2006 at 09:22:06PM +0100, Jens Axboe wrote: >> >> >>> That is definitely valid, same goes for the bio_vec structure. They map >>> _a_ page, after all :-) >>> >>> >> Okay. Pierre - are you saying that you have an sg entry where >> sg->offset + sg->length > PAGE_SIZE, and hence is causing you to >> cross a page boundary? >> >> >> > > That, and sg->length > PAGE_SIZE. On highmem systems this causes all > kinds of funky behaviour. Usually just bogus data in the buffers though. > >
Test done here, few minutes ago. Added this to the wbsd driver in its kmap routine:
if ((host->cur_sg->offset + host->cur_sg->length) > PAGE_SIZE) printk(KERN_DEBUG "wbsd: Big sg: %d, %d\n", host->cur_sg->offset, host->cur_sg->length);
got:
[17385.425389] wbsd: Big sg: 0, 8192 [17385.436849] wbsd: Big sg: 0, 7168 [17385.436859] wbsd: Big sg: 0, 7168 [17385.454029] wbsd: Big sg: 2560, 5632 [17385.454216] wbsd: Big sg: 2560, 5632
And so on.
Rgds Pierre
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |