[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH net-next v4] xen-netback: Adding debugfs "io_ring_qX" files


  • To: xen-devel@xxxxxxxxxxxxx
  • From: SeeChen Ng <seechen81@xxxxxxxxx>
  • Date: Sun, 10 Aug 2014 22:57:51 +0800
  • Delivery-date: Sun, 10 Aug 2014 14:58:35 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

Hi, I'm a noob to linux kernel, I tried to figure out the usage of the function
"simple_write_to_buffer", and I got confused about the code here.

> +static ssize_t
> +xenvif_write_io_ring(struct file *filp, const char __user *buf, size_t count,
> +                    loff_t *ppos)
> +{
> +       struct xenvif_queue *queue =
> +               ((struct seq_file *)filp->private_data)->private;
> +       int len;
> +       char write[sizeof(XENVIF_KICK_STR)];
> +
> +       /* don't allow partial writes and check the length */
> +       if (*ppos != 0)
> +               return 0;
> +       if (count < sizeof(XENVIF_KICK_STR) - 1)
> +               return -ENOSPC;
The statement here is trying to verify the value of "count" is smaller
than the size of array "write", make sure that the array got
enough space for the write operation, right?

So, I think the statement should be:

         if (count >= sizeof(XENVIF_KICK_STR))
                 return -ENOSPC;


Sorry for bothering if I am mistaken.


> +
> +       len = simple_write_to_buffer(write,
> +                                    sizeof(write),
> +                                    ppos,
> +                                    buf,
> +                                    count);
> +       if (len < 0)
> +               return len;
> +
> +       if (!strncmp(write, XENVIF_KICK_STR, sizeof(XENVIF_KICK_STR) - 1))
> +               xenvif_interrupt(0, (void *)queue);
> +       else {
> +               pr_warn("Unknown command to io_ring_q%d. Available: kick\n",
> +                       queue->id);
> +               count = -EINVAL;
> +       }
> +       return count;
> +}

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.