On Sunday 01 July 2012 17:00:58 Sakari Ailus wrote: > On Fri, Mar 23, 2012 at 08:19:45AM +0100, Hans Petter Selasky wrote: > > Hi, > > > > I have a question about V4L2_MEMORY_USERPTR: > > > > From which context are the kernel's "copy_to_user()" functions called in > > relation to V4L2_MEMORY_USERPTR ? Can this be a USB callback function or > > is it only syscalls, like read/write/ioctl that are allowed to call > > "copy_to_user()" ? > > > > The reason for asking is that I am maintaining a userland port of the > > media tree's USB drivers for FreeBSD. At the present moment it is not > > allowed to call copy_to_user() or copy_from_user() unless the backtrace > > shows a syscall, so the V4L2_MEMORY_USERPTR feature is simply removed and > > disabled. I'm currently thinking how I can enable this feature. > > I hope this is still relevant --- I just read your message the first time. > > I don't know how V4L2 is being used in FreeBSD userland, but the intent of > copy_to_user() function is to copy the contents of kernel memory to > somewhere the user space has a mapping to (and the other way around for > copy_from_user()). copy_(to|from)_user(), by definition, require a userspace memory context to perform the copy operation. They can't be called from interrupt context, kernel threads, or any other context where no userspace memory context is present. > Are your video buffers allocated by the kernel or not? How is USB accessed > when you don't have the Linux kernel USB framework around? -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html