}
-void _dev_error(struct xenbus_device *dev, int err, const char *fmt,
+static void _dev_error(struct xenbus_device *dev, int err, const char *loglevel, const char *fmt,
va_list ap)
{
int ret;
BUG_ON(len + ret > PRINTF_BUFFER_SIZE-1);
- dev_err(&dev->dev, "%s\n", printf_buffer);
+ printk("%sxenbus dev %s error %s\n", loglevel, dev->nodename,
+ printf_buffer);
path_buffer = error_path(dev);
if (path_buffer == NULL) {
- printk("xenbus: failed to write error node for %s (%s)\n",
+ printk(KERN_ERR "xenbus: failed to write error node for %s (%s)\n",
dev->nodename, printf_buffer);
goto fail;
}
if (xenbus_write(XBT_NIL, path_buffer, "error", printf_buffer) != 0) {
- printk("xenbus: failed to write error node for %s (%s)\n",
+ printk(KERN_ERR "xenbus: failed to write error node for %s (%s)\n",
dev->nodename, printf_buffer);
goto fail;
}
kfree(path_buffer);
}
-
void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt,
...)
{
va_list ap;
va_start(ap, fmt);
- _dev_error(dev, err, fmt, ap);
+ _dev_error(dev, err, KERN_WARNING, fmt, ap);
va_end(ap);
}
EXPORT_SYMBOL_GPL(xenbus_dev_error);
+void xenbus_dev_error_loglevel(struct xenbus_device *dev, int err, const char *loglevel, const char *fmt,
+ ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ _dev_error(dev, err, loglevel, fmt, ap);
+ va_end(ap);
+}
+EXPORT_SYMBOL_GPL(xenbus_dev_error_loglevel);
void xenbus_dev_fatal(struct xenbus_device *dev, int err, const char *fmt,
...)
va_list ap;
va_start(ap, fmt);
- _dev_error(dev, err, fmt, ap);
+ _dev_error(dev, err, KERN_ALERT, fmt, ap);
va_end(ap);
xenbus_switch_state(dev, XenbusStateClosing);
void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt,
...);
+/***
+ * The same as xenbus_dev_error, but using loglevel for printks to console.
+ * xenbus_dev_error(dev, err, fmt, args) is equivalent to
+ * xenbus_dev_error_loglevel(dev, err, KERN_WARNING, fmt, args).
+ */
+void xenbus_dev_error_loglevel(struct xenbus_device *dev, int err, const char *loglevel, const char *fmt,
+ ...);
/***
* Equivalent to xenbus_dev_error(dev, err, fmt, args), followed by