Messages in this thread | | | From | "Stephen C. Tweedie" <> | Date | Thu, 19 Aug 1999 19:18:21 +0100 (BST) | Subject | Re: [PATCH] 2.3.14: bug-fix for raw IO error recovery |
| |
Hi,
On Thu, 19 Aug 1999 17:47:33 +0200 (CEST), Andrea Arcangeli <andrea@suse.de> said:
> On Thu, 19 Aug 1999, Stephen C. Tweedie wrote: >> The patch below fixes a problem with map_user_kiobuf() failing to >> reset its virtual address pointer before a retry if it encounters a >> locked page.
> Stehpen what about the fact that raw-io goes ahead even if the > get_page_map() returns 0? Is this a bug or I am missing something (I admit > I have not looked into raw-io too hard yet...).
As far as map_user_kiobuf() is concerned that is definitely a feature: I want it to be able to encode user virtual addresses which might contain non-page-struct pages (eg. video framebuffers). That's why there are separate struct page *[] and void *[] arrays in the kiobuf.
However, currently, trying to actually do a brw_kiovec on such pages will do the Wrong Thing, due to the the __io_virt/__io_phys bitops. This is closely tied into the whole business of bigmem support, btw --- if we get IO to high addresses right then brw_kiovec will do the right thing.
For now, I'll probably just add a flag to the kiobuf header indicating whether any unmappable pages are present in the page list, and reject such IOs in brw_kiovec. However, I do actually have at least one user currently relying on the existing behaviour in order to do IO direct from frame buffers to disk.
--Stephen
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |