diff options
Diffstat (limited to 'drivers/net/tokenring')
| -rw-r--r-- | drivers/net/tokenring/3c359.c | 7 | ||||
| -rw-r--r-- | drivers/net/tokenring/olympic.c | 8 | ||||
| -rw-r--r-- | drivers/net/tokenring/tms380tr.c | 2 | 
3 files changed, 12 insertions, 5 deletions
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c index d293423ee8e..e22a3f5333e 100644 --- a/drivers/net/tokenring/3c359.c +++ b/drivers/net/tokenring/3c359.c @@ -937,14 +937,17 @@ static void xl_rx(struct net_device *dev)  				copy_len = xl_priv->xl_rx_ring[xl_priv->rx_ring_tail].upfraglen & 0x7FFF ;   				frame_length -= copy_len ;    				pci_dma_sync_single_for_cpu(xl_priv->pdev,xl_priv->xl_rx_ring[xl_priv->rx_ring_tail].upfragaddr,xl_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ; -				memcpy(skb_put(skb,copy_len), xl_priv->rx_ring_skb[xl_priv->rx_ring_tail]->data, copy_len) ;  +				skb_copy_from_linear_data(xl_priv->rx_ring_skb[xl_priv->rx_ring_tail], +							  skb_put(skb, copy_len), +							  copy_len);  				pci_dma_sync_single_for_device(xl_priv->pdev,xl_priv->xl_rx_ring[xl_priv->rx_ring_tail].upfragaddr,xl_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ;  				adv_rx_ring(dev) ;   			}   			/* Now we have found the last fragment */  			pci_dma_sync_single_for_cpu(xl_priv->pdev,xl_priv->xl_rx_ring[xl_priv->rx_ring_tail].upfragaddr,xl_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ; -			memcpy(skb_put(skb,copy_len), xl_priv->rx_ring_skb[xl_priv->rx_ring_tail]->data, frame_length) ;  +			skb_copy_from_linear_data(xl_priv->rx_ring_skb[xl_priv->rx_ring_tail], +				      skb_put(skb,copy_len), frame_length);  /*			memcpy(skb_put(skb,frame_length), bus_to_virt(xl_priv->xl_rx_ring[xl_priv->rx_ring_tail].upfragaddr), frame_length) ; */  			pci_dma_sync_single_for_device(xl_priv->pdev,xl_priv->xl_rx_ring[xl_priv->rx_ring_tail].upfragaddr,xl_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ;  			adv_rx_ring(dev) ;  diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c index a6206580888..09b3cfb8e80 100644 --- a/drivers/net/tokenring/olympic.c +++ b/drivers/net/tokenring/olympic.c @@ -845,7 +845,9 @@ static void olympic_rx(struct net_device *dev)  							pci_dma_sync_single_for_cpu(olympic_priv->pdev,  								le32_to_cpu(olympic_priv->olympic_rx_ring[rx_ring_last_received].buffer),  								olympic_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ;  -							memcpy(skb_put(skb,length-4),olympic_priv->rx_ring_skb[rx_ring_last_received]->data,length-4) ;  +							skb_copy_from_linear_data(olympic_priv->rx_ring_skb[rx_ring_last_received], +								      skb_put(skb,length - 4), +								      length - 4);  							pci_dma_sync_single_for_device(olympic_priv->pdev,  								le32_to_cpu(olympic_priv->olympic_rx_ring[rx_ring_last_received].buffer),  								olympic_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ; @@ -862,7 +864,9 @@ static void olympic_rx(struct net_device *dev)  								olympic_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ;   							rx_desc = &(olympic_priv->olympic_rx_ring[rx_ring_last_received]);  							cpy_length = (i == 1 ? frag_len : le32_to_cpu(rx_desc->res_length));  -							memcpy(skb_put(skb, cpy_length), olympic_priv->rx_ring_skb[rx_ring_last_received]->data, cpy_length) ; +							skb_copy_from_linear_data(olympic_priv->rx_ring_skb[rx_ring_last_received], +								      skb_put(skb, cpy_length), +								      cpy_length);  							pci_dma_sync_single_for_device(olympic_priv->pdev,  								le32_to_cpu(olympic_priv->olympic_rx_ring[rx_ring_last_received].buffer),  								olympic_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ; diff --git a/drivers/net/tokenring/tms380tr.c b/drivers/net/tokenring/tms380tr.c index de6f72775ec..e6f0817c350 100644 --- a/drivers/net/tokenring/tms380tr.c +++ b/drivers/net/tokenring/tms380tr.c @@ -644,7 +644,7 @@ static int tms380tr_hardware_send_packet(struct sk_buff *skb, struct net_device  		dmabuf  = 0;  		i 	= tp->TplFree->TPLIndex;  		buf 	= tp->LocalTxBuffers[i]; -		memcpy(buf, skb->data, length); +		skb_copy_from_linear_data(skb, buf, length);  		newbuf 	= ((char *)buf - (char *)tp) + tp->dmabuffer;  	}  	else {  |