Messages in this thread | | | Date | Thu, 11 Nov 1999 08:48:16 -0800 (PST) | From | Matt Robinson <> | Subject | Re: kiobuf using kernel pages |
| |
On Thu, 11 Nov 1999, Keith Owens wrote: |>Trying to port the SGI lcrash code to 2.3.26 ix86. It compiles, runs, |>traps the oops, starts writing the dump to swap, dies with -EFAULT in |>sd_raw_rw. My guess is because the buffer address is c2c00000, i.e. I |>am trying to do I/O directly from kernel pages, not from user space. |>sd_raw_rw() calls map_user_kiobuf() which is perfect for user space |>callers, no good for kernel callers. How do I get around this?
There is a mechanism in the patch to pass AS_KERNEL to map_user_kiobuf() so that the kernel pages are tagged appropriately for raw I/O. Given that, when sd_raw_rw() is called, if the f_reada flag of the file pointer is DUMP_KIOBUF_NUMBER, we automatically set AS_KERNEL.
|>Changing sd_raw_rw to indicate if the caller is kernel or user would |>work but is clumsy, all callers have to change. Can I map the kernel |>pages into user space, if so how? Or would set_fs (get_ds()) fudge the |>mappings enough to work?
If you have the appropriate patch, this should all work correctly.
--Matt
- 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/
| |