Re: [PATCH] bitmap: parse input from kernel and user buffers




Reinette Chatre wrote:
lib/bitmap.c:bitmap_parse() is a library function that received as
input a user buffer. This seemed to have originated from the way
the write_proc function of the /proc filesystem operates.

This has been reworked to not use kmalloc and eliminates a lot
of get_user() overhead by performing one access_ok before using
__get_user().
We need to test if we are in kernel or user space (is_user) and access
the buffer differently. We cannot use __get_user() to access kernel
addresses in all cases, for example in architectures with separate
address space for kernel and user.

This function will be useful for other uses as well; for example,
taking input for /sysfs instead of /proc, so it was changed to accept
kernel buffers. We have this use for the Linux UWB project, as part
as the upcoming bandwidth allocator code.

Only a few routines used this function and they were changed too.

Signed-off-by: Reinette Chatre <reinette.chatre@xxxxxxxxxxxxxxx>
Signed-off-by: Inaky Perez-Gonzalez <inaky@xxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Reg RTP and Kernel Mode buffer exchanges
    ... Like address 0x0baddeed may be 0x8baddeed in kernel. ... I'm writing a driver and I want to use a buffer that I want to send/ ... pointer is a user space virtual address the kernel cannot access it. ... How can the kernel exchange buffer with user space RTP? ...
    (comp.os.vxworks)
  • Re: HEADS UP: zerocopy bpf commits impending
    ... Zerocopy bpf will be disabled by default, and can be enabled globally though the use of a sysctl variable. ... Once the kernel bits are in and we sort out a couple minor nits in libpcap+tcpdump, we will be be looking at getting our libpcap patches committed upstream. ... Rather than map the user space memory into the kernel, ... primary buffer to be smaller but to have more alternate buffers. ...
    (freebsd-arch)
  • Re: HEADS UP: zerocopy bpf commits impending
    ... Zerocopy bpf will be disabled by default, and can be enabled globally though the use of a sysctl variable. ... Once the kernel bits are in and we sort out a couple minor nits in libpcap+tcpdump, we will be be looking at getting our libpcap patches committed upstream. ... Rather than map the user space memory into the kernel, ... primary buffer to be smaller but to have more alternate buffers. ...
    (freebsd-current)
  • Kernel buffer not cached in the kernel space
    ... Does anybody know how can I allocate a physically contiguous memory buffer ... should ensure that the kernel writes to a page that is mapped into a user ... buffer is mmaped in user space as _not cached_). ...
    (Linux-Kernel)
  • Re: Driver to Driver communication for faster Harddisk access
    ... The actual data is not copied between kernel mode and user mode. ... Is that what you are doing now, copying from user space to ... Which could be around 100 MB/s, even for modern ATA drives. ... Make a large buffer in kernel space, ...
    (microsoft.public.development.device.drivers)