title: copy_to_user works, memcpy fails
body: <p>I'm programming for device on sh4-arch linux 2.6.32 who plays video stream from UDP socket.
  I've got a ring buffer in user space (called <code>ubuffer</code>) which decoder (kernel space) reads. <code>ubuffer</code> was mapped from kernel space buffer (called <code>kbuffer</code>).</p>
  
  <p>Existing application (with source code) reads data from UDP socket to <code>ubuffer</code> in user space. For decreasing of delay, I've made a driver who reads payload data from UDP <code>sk_buf</code> directly to ring buffer. Right now I'm using ioctl from existing app, who sends an ubuffer to <code>ioctl_proc</code> for every UDP packet. <code>ioctl_proc</code> making <code>copy_to_user(ubuffer+off, skb-&gt;data+skb_off, len)</code> and all works fine. I need to make it without any userspace app and ioctl. So I've send <code>kbuffer</code> to my driver and make <code>memcpy(kbuffer+off, skb-&gt;data+skb_off, len)</code> instead of <code>copy_to_user</code> (that's the only difference) with the same parameters and it not works: I'm see the picture with 10% of valid pixel (some text and colors), but rest are fails. If <code>kbuffer</code> was wrong, I'll shall not see anything right, but I see something.
  Value of <code>len</code> is about 100-1300 bytes.</p>
  
  <p>What I'm doing wrong? Maybe I must to use some page-aligned calls?</p>