Messages in this thread | | | Date | Sun, 24 Oct 2004 04:18:27 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] Fix incorrect kunmap_atomic in pktcdvd |
| |
Peter Osterlund <petero2@telia.com> wrote: > > Andrew Morton <akpm@osdl.org> writes: > > > Peter Osterlund <petero2@telia.com> wrote: > > > > > > The pktcdvd driver uses kunmap_atomic() incorrectly. The function is > > > supposed to take an address as the first parameter, but the pktcdvd > > > driver passed a page pointer. Thanks to Douglas Gilbert and Jens Axboe > > > for discovering this. > > > > You're about the 7,000th person to make that mistake. We really should > > catch it via typechecking but the code's really lame and nobody ever got > > around to rotorooting it. > > Why was the interface made different from kmap()/kunmap() in the first > place? Wouldn't it have made more sense to let kunmap_atomic() take a > page pointer as the first parameter?
No, kmap-atomic() maps a single page into the CPU's address space by making a pte point at the page. To unmap that page we need to get at the pte, not at the page. If kmap_atomic() were to take a pageframe address we'd need to search the whole fixmap space for the corresponding page - a reverse lookup.
- 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/
| |