static char *cosa_net_setup_rx(struct channel_data *channel, int size);
 static int cosa_net_rx_done(struct channel_data *channel);
 static int cosa_net_tx_done(struct channel_data *channel, int size);
-static int cosa_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
 
 /* Character device */
 static char *chrdev_setup_rx(struct channel_data *channel, int size);
        .ndo_open       = cosa_net_open,
        .ndo_stop       = cosa_net_close,
        .ndo_start_xmit = hdlc_start_xmit,
-       .ndo_do_ioctl   = cosa_net_ioctl,
+       .ndo_do_ioctl   = hdlc_ioctl,
        .ndo_tx_timeout = cosa_net_timeout,
 };
 
        return -ENOIOCTLCMD;
 }
 
-static int cosa_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
-{
-       int rv;
-       struct channel_data *chan = dev_to_chan(dev);
-
-       rv = cosa_ioctl_common(chan->cosa, chan, cmd,
-                              (unsigned long)ifr->ifr_data);
-       if (rv != -ENOIOCTLCMD)
-               return rv;
-       return hdlc_ioctl(dev, ifr, cmd);
-}
-
 static long cosa_chardev_ioctl(struct file *file, unsigned int cmd,
                               unsigned long arg)
 {