Handle lack of chaninfo() in print_chaninfo()
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 15 Jun 2016 20:38:45 +0000 (16:38 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 17 Jun 2016 16:17:55 +0000 (12:17 -0400)
The output was a bit ugly and probably not what we wanted.  This is what
you see when you do a 'pip' from the monitor.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/ns/sysfile.c

index 72cfeea..e47a81a 100644 (file)
@@ -1264,17 +1264,15 @@ void print_chaninfo(struct chan *c)
 
        char buf[64] = { 0 };
        bool has_dev = c->type != -1;
-       if (has_dev && !devtab[c->type].chaninfo) {
-               printk("Chan type %d has no chaninfo!\n", c->type);
-               has_dev = FALSE;
-       }
+       bool has_chaninfo = has_dev && devtab[c->type].chaninfo;
+
        printk("Chan flags: %p, pathname: %s, ref: %d, Dev: %s, Devinfo: %s",
                   c->flag,
                   c->name ? c->name->s : "no cname",
                   kref_refcnt(&c->ref),
                   has_dev ? devtab[c->type].name : "no dev",
-                  has_dev ? devtab[c->type].chaninfo(c, buf, sizeof(buf)) : "");
-       if (!has_dev)
+                  has_chaninfo ? devtab[c->type].chaninfo(c, buf, sizeof(buf)) : "");
+       if (!has_chaninfo)
                printk("qid.path: %p\n", c->qid.path);
        printk("\n");
 }