Re: [RFC PATCH 33/35] Add the Xenbus sysfs and virtual device hotplug driver.

Arjan van de Ven
2006-03-22T08:53:26Z

> +
> +extern struct semaphore xenwatch_mutex;

you know, there is this thing called "struct mutex", please use that
instead; don't add new deprecated semaphore's when using them as mutex

> +#define streq(a, b) (strcmp((a), (b)) == 0)

ehhh why?

> +EXPORT_SYMBOL(xenbus_register_frontend);

please consider _GPL

> +static void xenbus_dev_free(struct xenbus_device *xendev)
> +{
> + kfree(xendev);
> +}

why this wrapper ?

> +
> +/* Simplified asprintf. */
> +char *kasprintf(const char *fmt, ...)
> +{
> + va_list ap;
> + unsigned int len;
> + char *p, dummy[1];
> +
> + va_start(ap, fmt);
> + /* FIXME: vsnprintf has a bug, NULL should work */
> + len = vsnprintf(dummy, 0, fmt, ap);
> + va_end(ap);
> +
> + p = kmalloc(len + 1, GFP_KERNEL);
> + if (!p)
> + return NULL;
> + va_start(ap, fmt);
> + vsprintf(p, fmt, ap);
> + va_end(ap);
> + return p;
> +}

this should take a gfp mask most likely

> +
> + /* We don't refcnt properly, so set reserved on page.
> + * (this allocation is permanent) */
> + SetPageReserved(virt_to_page(page));

you may want to reconsider this given the "recent" vm changes

> + down(&xs_state.request_mutex);

please use a real mutex instead