return 0;
 
        if (0 != parse_chan_pair(line->init_str, &line->chan_list,
-                                line->init_pri, co->index, opts))
+                                co->index, opts))
                return -1;
        if (0 != open_chan(&line->chan_list))
                return -1;
 #endif
 };
 
-static struct chan *parse_chan(char *str, int pri, int device,
-                              struct chan_opts *opts)
+static struct chan *parse_chan(char *str, int device, struct chan_opts *opts)
 {
        struct chan_type *entry;
        struct chan_ops *ops;
                                 .output        = 0,
                                 .opened        = 0,
                                 .fd            = -1,
-                                .pri           = pri,
                                 .ops           = ops,
                                 .data          = data });
        return chan;
 }
 
-int parse_chan_pair(char *str, struct list_head *chans, int pri, int device,
+int parse_chan_pair(char *str, struct list_head *chans, int device,
                    struct chan_opts *opts)
 {
        struct chan *new, *chan;
 
        if(!list_empty(chans)){
                chan = list_entry(chans->next, struct chan, list);
-               if(chan->pri >= pri)
-                       return 0;
                free_chan(chans);
                INIT_LIST_HEAD(chans);
        }
                in = str;
                *out = '\0';
                out++;
-               new = parse_chan(in, pri, device, opts);
+               new = parse_chan(in, device, opts);
                if(new == NULL)
                        return -1;
 
                new->input = 1;
                list_add(&new->list, chans);
 
-               new = parse_chan(out, pri, device, opts);
+               new = parse_chan(out, device, opts);
                if(new == NULL)
                        return -1;
 
                new->output = 1;
        }
        else {
-               new = parse_chan(str, pri, device, opts);
+               new = parse_chan(str, device, opts);
                if(new == NULL)
                        return -1;
 
 
                }
                if (list_empty(&line->chan_list)) {
                        err = parse_chan_pair(line->init_str, &line->chan_list,
-                                             line->init_pri, tty->index, opts);
+                                             tty->index, opts);
                        if(err) goto out;
                        err = open_chan(&line->chan_list);
                        if(err) goto out;
 
        unsigned int output:1;
        unsigned int opened:1;
        int fd;
-       enum chan_init_pri pri;
        struct chan_ops *ops;
        void *data;
 };
 
 extern void chan_interrupt(struct list_head *chans, struct work_struct *task,
                           struct tty_struct *tty, int irq);
-extern int parse_chan_pair(char *str, struct list_head *chans, int pri, 
-                          int device, struct chan_opts *opts);
+extern int parse_chan_pair(char *str, struct list_head *chans, int device,
+                          struct chan_opts *opts);
 extern int open_chan(struct list_head *chans);
 extern int write_chan(struct list_head *chans, const char *buf, int len,
                             int write_irq);