Subject: Re: [PATCH 0001/001] xen: multi page ring support for block devices

From: Rusty Russell <[email-masked]>
Date: Tue, 06 Mar 2012 13:12:49 +1030

On Mon, 5 Mar 2012 13:49:07 -0800, Santosh Jodh <[email-masked]> wrote:
> +/* Order of maximum shared ring size advertised to the front end. */
> +int xen_blkif_max_ring_order = XENBUS_MAX_RING_ORDER;
> +
> +#define BLK_RING_SIZE(_order) __CONST_RING_SIZE(blkif, PAGE_SIZE << (_order))
> +
> +static int set_max_ring_order(const char *buf, struct kernel_param *kp)
> +{
> +       int err;
> +       unsigned long order;
> +
> +       err = kstrtol(buf, 0, &order);
> +       if (err ||
> +           order < 0 ||
> +           order > XENBUS_MAX_RING_ORDER)
> +               return -EINVAL;

Hmm, order can't be < 0, since it's unsigned.  So did you mean
kstrtoull?

And I think returning err is cleaner (it's -EINVAL for malformed
strings, -ERANGE for ones too big).

> +       if (xen_blkif_reqs < BLK_RING_SIZE(order))
> +               printk(KERN_WARNING "WARNING: "
> +                      "I/O request space (%d reqs) < ring order %ld, "
> +                      "consider increasing %s.reqs to >= %ld.",
> +                      xen_blkif_reqs, order, KBUILD_MODNAME,
> +                      roundup_pow_of_two(BLK_RING_SIZE(order)));

This message doesn't mention the module namr or parameter name
anywhere.  Think of the poor sysadmins!

Thanks,
Rusty.
-- 
  How could I marry someone with more hair than me?  http://baldalex.org