Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[cascardo/linux.git] / drivers / net / wan / pc300_drv.c
index d0a8d1e..c23fde0 100644 (file)
@@ -1769,7 +1769,7 @@ cpc_trace(struct net_device *dev, struct sk_buff *skb_main, char rx_tx)
 
 static void cpc_tx_timeout(struct net_device *dev)
 {
-       pc300dev_t *d = (pc300dev_t *) dev->priv;
+       pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
        pc300ch_t *chan = (pc300ch_t *) d->chan;
        pc300_t *card = (pc300_t *) chan->card;
        int ch = chan->channel;
@@ -1796,7 +1796,7 @@ static void cpc_tx_timeout(struct net_device *dev)
 
 static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       pc300dev_t *d = (pc300dev_t *) dev->priv;
+       pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
        pc300ch_t *chan = (pc300ch_t *) d->chan;
        pc300_t *card = (pc300_t *) chan->card;
        int ch = chan->channel;
@@ -1874,7 +1874,7 @@ static int cpc_queue_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static void cpc_net_rx(struct net_device *dev)
 {
-       pc300dev_t *d = (pc300dev_t *) dev->priv;
+       pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
        pc300ch_t *chan = (pc300ch_t *) d->chan;
        pc300_t *card = (pc300_t *) chan->card;
        int ch = chan->channel;
@@ -2522,7 +2522,7 @@ static int cpc_change_mtu(struct net_device *dev, int new_mtu)
 
 static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
-       pc300dev_t *d = (pc300dev_t *) dev->priv;
+       pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
        pc300ch_t *chan = (pc300ch_t *) d->chan;
        pc300_t *card = (pc300_t *) chan->card;
        pc300conf_t conf_aux;
@@ -2718,9 +2718,8 @@ static int cpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                                        }
                                        pc300patrntst.num_errors =
                                                falc_pattern_test_error(card, ch);
-                                       if (!arg
-                                           || copy_to_user(arg, &pc300patrntst,
-                                                           sizeof (pc300patterntst_t)))
+                                       if (copy_to_user(arg, &pc300patrntst,
+                                                        sizeof(pc300patterntst_t)))
                                                        return -EINVAL;
                                } else {
                                        falc_pattern_test(card, ch, pc300patrntst.patrntst_on);
@@ -3058,7 +3057,7 @@ static int tx_config(pc300dev_t * d)
 static int cpc_attach(struct net_device *dev, unsigned short encoding,
                      unsigned short parity)
 {
-       pc300dev_t *d = (pc300dev_t *)dev->priv;
+       pc300dev_t *d = (pc300dev_t *)dev_to_hdlc(dev)->priv;
        pc300ch_t *chan = (pc300ch_t *)d->chan;
        pc300_t *card = (pc300_t *)chan->card;
        pc300chconf_t *conf = (pc300chconf_t *)&chan->conf;
@@ -3138,7 +3137,7 @@ static void cpc_closech(pc300dev_t * d)
 
 int cpc_open(struct net_device *dev)
 {
-       pc300dev_t *d = (pc300dev_t *) dev->priv;
+       pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
        struct ifreq ifr;
        int result;
 
@@ -3166,7 +3165,7 @@ err_out:
 
 static int cpc_close(struct net_device *dev)
 {
-       pc300dev_t *d = (pc300dev_t *) dev->priv;
+       pc300dev_t *d = (pc300dev_t *) dev_to_hdlc(dev)->priv;
        pc300ch_t *chan = (pc300ch_t *) d->chan;
        pc300_t *card = (pc300_t *) chan->card;
        unsigned long flags;
@@ -3347,7 +3346,7 @@ static void cpc_init_card(pc300_t * card)
                d->line_on = 0;
                d->line_off = 0;
 
-               dev = alloc_hdlcdev(NULL);
+               dev = alloc_hdlcdev(d);
                if (dev == NULL)
                        continue;
 
@@ -3372,7 +3371,6 @@ static void cpc_init_card(pc300_t * card)
                dev->do_ioctl = cpc_ioctl;
 
                if (register_hdlc_device(dev) == 0) {
-                       dev->priv = d;  /* We need 'priv', hdlc doesn't */
                        printk("%s: Cyclades-PC300/", dev->name);
                        switch (card->hw.type) {
                                case PC300_TE: