]> err.no Git - linux-2.6/blobdiff - drivers/net/irda/ali-ircc.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[linux-2.6] / drivers / net / irda / ali-ircc.c
index 971e2dee1e6bae0a43e60dbd39dc60371fbe5d87..9f584521304a8a84ce5e8230f43df2fa72def8b3 100644 (file)
@@ -360,10 +360,6 @@ static int ali_ircc_open(int i, chipio_t *info)
        self->tx_fifo.len = self->tx_fifo.ptr = self->tx_fifo.free = 0;
        self->tx_fifo.tail = self->tx_buff.head;
 
-       
-       /* Keep track of module usage */
-       SET_MODULE_OWNER(dev);
-
        /* Override the network functions we need to use */
        dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
        dev->open            = ali_ircc_net_open;
@@ -662,19 +658,13 @@ static int ali_ircc_read_dongle_id (int i, chipio_t *info)
  */
 static irqreturn_t ali_ircc_interrupt(int irq, void *dev_id)
 {
-       struct net_device *dev = (struct net_device *) dev_id;
+       struct net_device *dev = dev_id;
        struct ali_ircc_cb *self;
        int ret;
                
        IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__);
                
-       if (!dev) {
-               IRDA_WARNING("%s: irq %d for unknown device.\n",
-                            ALI_IRCC_DRIVER_NAME, irq);
-               return IRQ_NONE;
-       }       
-       
-       self = (struct ali_ircc_cb *) dev->priv;
+       self = dev->priv;
        
        spin_lock(&self->lock);
        
@@ -1478,9 +1468,8 @@ static int ali_ircc_fir_hard_xmit(struct sk_buff *skb, struct net_device *dev)
 
        self->stats.tx_bytes += skb->len;
 
-       memcpy(self->tx_fifo.queue[self->tx_fifo.free].start, skb->data, 
-              skb->len);
-       
+       skb_copy_from_linear_data(skb, self->tx_fifo.queue[self->tx_fifo.free].start,
+                     skb->len);
        self->tx_fifo.len++;
        self->tx_fifo.free++;
 
@@ -1930,7 +1919,7 @@ static int  ali_ircc_dma_receive_complete(struct ali_ircc_cb *self)
                        
                        /* Copy frame without CRC, CRC is removed by hardware*/
                        skb_put(skb, len);
-                       memcpy(skb->data, self->rx_buff.data, len);
+                       skb_copy_to_linear_data(skb, self->rx_buff.data, len);
 
                        /* Move to next frame */
                        self->rx_buff.data += len;
@@ -1938,7 +1927,7 @@ static int  ali_ircc_dma_receive_complete(struct ali_ircc_cb *self)
                        self->stats.rx_packets++;
 
                        skb->dev = self->netdev;
-                       skb->mac.raw  = skb->data;
+                       skb_reset_mac_header(skb);
                        skb->protocol = htons(ETH_P_IRDA);
                        netif_rx(skb);
                        self->netdev->last_rx = jiffies;