You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}
To clearly state the intent of copying from linear sk_buffs, _offset being a overly long variant but interesting for the sake of saving some bytes. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
David S. Miller
parent
2a123b86e2
commit
d626f62b11
+1
-1
@@ -1025,7 +1025,7 @@ static int send_packet(struct net_device *dev, struct sk_buff *skb)
|
||||
adapter->current_dma.start_time = jiffies;
|
||||
|
||||
if ((unsigned long)(skb->data + nlen) >= MAX_DMA_ADDRESS || nlen != skb->len) {
|
||||
memcpy(adapter->dma_buffer, skb->data, nlen);
|
||||
skb_copy_from_linear_data(skb, adapter->dma_buffer, nlen);
|
||||
memset(adapter->dma_buffer+skb->len, 0, nlen-skb->len);
|
||||
target = isa_virt_to_bus(adapter->dma_buffer);
|
||||
}
|
||||
|
||||
+1
-1
@@ -1145,7 +1145,7 @@ static int elmc_send_packet(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
if (len != skb->len)
|
||||
memset((char *) p->xmit_cbuffs[p->xmit_count], 0, ETH_ZLEN);
|
||||
memcpy((char *) p->xmit_cbuffs[p->xmit_count], (char *) (skb->data), skb->len);
|
||||
skb_copy_from_linear_data(skb, p->xmit_cbuffs[p->xmit_count], skb->len);
|
||||
|
||||
#if (NUM_XMIT_BUFFS == 1)
|
||||
#ifdef NO_NOPCOMMANDS
|
||||
|
||||
+1
-1
@@ -567,7 +567,7 @@ int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
if (skb->len < ETH_ZLEN)
|
||||
memset((char *)&ib->tx_buf[entry][0], 0, ETH_ZLEN);
|
||||
memcpy ((char *)&ib->tx_buf [entry][0], skb->data, skblen);
|
||||
skb_copy_from_linear_data(skb, &ib->tx_buf[entry][0], skblen);
|
||||
|
||||
/* Now, give the packet to the lance */
|
||||
ib->btx_ring [entry].tmd1_bits = (LE_T1_POK|LE_T1_OWN);
|
||||
|
||||
+1
-1
@@ -598,7 +598,7 @@ static int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
|
||||
ib->btx_ring [entry].length = (-len) | 0xf000;
|
||||
ib->btx_ring [entry].misc = 0;
|
||||
|
||||
memcpy ((char *)&ib->tx_buf [entry][0], skb->data, skblen);
|
||||
skb_copy_from_linear_data(skb, &ib->tx_buf [entry][0], skblen);
|
||||
|
||||
/* Clear the slack of the packet, do I need this? */
|
||||
if (len != skblen)
|
||||
|
||||
@@ -273,7 +273,8 @@ static int ack_tx(struct net_device *dev, int acked)
|
||||
/* skb_pull(ackskb, ARC_HDR_SIZE); */
|
||||
|
||||
|
||||
memcpy(ackpkt, lp->outgoing.skb->data, ARC_HDR_SIZE+sizeof(struct arc_cap));
|
||||
skb_copy_from_linear_data(lp->outgoing.skb, ackpkt,
|
||||
ARC_HDR_SIZE + sizeof(struct arc_cap));
|
||||
ackpkt->soft.cap.proto=0; /* using protocol 0 for acknowledge */
|
||||
ackpkt->soft.cap.mes.ack=acked;
|
||||
|
||||
|
||||
@@ -453,7 +453,8 @@ bionet_send_packet(struct sk_buff *skb, struct net_device *dev) {
|
||||
stdma_lock(bionet_intr, NULL);
|
||||
local_irq_restore(flags);
|
||||
if( !STRAM_ADDR(buf+length-1) ) {
|
||||
memcpy(nic_packet->buffer, skb->data, length);
|
||||
skb_copy_from_linear_data(skb, nic_packet->buffer,
|
||||
length);
|
||||
buf = (unsigned long)&((struct nic_pkt_s *)phys_nic_packet)->buffer;
|
||||
}
|
||||
|
||||
|
||||
@@ -717,7 +717,8 @@ pamsnet_send_packet(struct sk_buff *skb, struct net_device *dev) {
|
||||
|
||||
local_irq_restore(flags);
|
||||
if( !STRAM_ADDR(buf+length-1) ) {
|
||||
memcpy(nic_packet->buffer, skb->data, length);
|
||||
skb_copy_from_linear_data(skb, nic_packet->buffer,
|
||||
length);
|
||||
buf = (unsigned long)phys_nic_packet;
|
||||
}
|
||||
|
||||
|
||||
@@ -1125,7 +1125,7 @@ static int au1000_tx(struct sk_buff *skb, struct net_device *dev)
|
||||
}
|
||||
|
||||
pDB = aup->tx_db_inuse[aup->tx_head];
|
||||
memcpy((void *)pDB->vaddr, skb->data, skb->len);
|
||||
skb_copy_from_linear_data(skb, pDB->vaddr, skb->len);
|
||||
if (skb->len < ETH_ZLEN) {
|
||||
for (i=skb->len; i<ETH_ZLEN; i++) {
|
||||
((char *)pDB->vaddr)[i] = 0;
|
||||
|
||||
+4
-3
@@ -828,8 +828,8 @@ static int b44_rx(struct b44 *bp, int budget)
|
||||
skb_reserve(copy_skb, 2);
|
||||
skb_put(copy_skb, len);
|
||||
/* DMA sync done above, copy just the actual packet */
|
||||
memcpy(copy_skb->data, skb->data+bp->rx_offset, len);
|
||||
|
||||
skb_copy_from_linear_data_offset(skb, bp->rx_offset,
|
||||
copy_skb->data, len);
|
||||
skb = copy_skb;
|
||||
}
|
||||
skb->ip_summed = CHECKSUM_NONE;
|
||||
@@ -1006,7 +1006,8 @@ static int b44_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
memcpy(skb_put(bounce_skb, len), skb->data, skb->len);
|
||||
skb_copy_from_linear_data(skb, skb_put(bounce_skb, len),
|
||||
skb->len);
|
||||
dev_kfree_skb_any(skb);
|
||||
skb = bounce_skb;
|
||||
}
|
||||
|
||||
+2
-4
@@ -1884,10 +1884,8 @@ bnx2_rx_int(struct bnx2 *bp, int budget)
|
||||
goto reuse_rx;
|
||||
|
||||
/* aligned copy */
|
||||
memcpy(new_skb->data,
|
||||
skb->data + bp->rx_offset - 2,
|
||||
len + 2);
|
||||
|
||||
skb_copy_from_linear_data_offset(skb, bp->rx_offset - 2,
|
||||
new_skb->data, len + 2);
|
||||
skb_reserve(new_skb, 2);
|
||||
skb_put(new_skb, len);
|
||||
|
||||
|
||||
@@ -2846,8 +2846,8 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
|
||||
ctrl | TX_DESC_SOF, 0);
|
||||
entry = TX_DESC_NEXT(ring, entry);
|
||||
|
||||
memcpy(tx_tiny_buf(cp, ring, entry), skb->data +
|
||||
len - tabort, tabort);
|
||||
skb_copy_from_linear_data_offset(skb, len - tabort,
|
||||
tx_tiny_buf(cp, ring, entry), tabort);
|
||||
mapping = tx_tiny_map(cp, ring, entry, tentry);
|
||||
cas_write_txd(cp, ring, entry, mapping, tabort, ctrl,
|
||||
(nr_frags == 0));
|
||||
|
||||
@@ -1062,7 +1062,7 @@ static inline struct sk_buff *get_packet(struct pci_dev *pdev,
|
||||
pci_unmap_addr(ce, dma_addr),
|
||||
pci_unmap_len(ce, dma_len),
|
||||
PCI_DMA_FROMDEVICE);
|
||||
memcpy(skb->data, ce->skb->data, len);
|
||||
skb_copy_from_linear_data(ce->skb, skb->data, len);
|
||||
pci_dma_sync_single_for_device(pdev,
|
||||
pci_unmap_addr(ce, dma_addr),
|
||||
pci_unmap_len(ce, dma_len),
|
||||
|
||||
@@ -913,7 +913,8 @@ static void write_tx_pkt_wr(struct adapter *adap, struct sk_buff *skb,
|
||||
if (skb->len <= WR_LEN - sizeof(*cpl)) {
|
||||
q->sdesc[pidx].skb = NULL;
|
||||
if (!skb->data_len)
|
||||
memcpy(&d->flit[2], skb->data, skb->len);
|
||||
skb_copy_from_linear_data(skb, &d->flit[2],
|
||||
skb->len);
|
||||
else
|
||||
skb_copy_bits(skb, 0, &d->flit[2], skb->len);
|
||||
|
||||
@@ -1771,7 +1772,7 @@ static struct sk_buff *get_packet(struct adapter *adap, struct sge_fl *fl,
|
||||
__skb_put(skb, len);
|
||||
pci_dma_sync_single_for_cpu(adap->pdev, mapping, len,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
memcpy(skb->data, sd->t.skb->data, len);
|
||||
skb_copy_from_linear_data(sd->t.skb, skb->data, len);
|
||||
pci_dma_sync_single_for_device(adap->pdev, mapping, len,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
} else if (!drop_thres)
|
||||
|
||||
+1
-1
@@ -741,7 +741,7 @@ static int dgrs_start_xmit(struct sk_buff *skb, struct net_device *devN)
|
||||
}
|
||||
|
||||
amt = min_t(unsigned int, len, rbdp->size - count);
|
||||
memcpy( (char *) S2H(rbdp->buf) + count, skb->data + i, amt);
|
||||
skb_copy_from_linear_data_offset(skb, i, S2H(rbdp->buf) + count, amt);
|
||||
i += amt;
|
||||
count += amt;
|
||||
len -= amt;
|
||||
|
||||
@@ -1804,8 +1804,9 @@ speedo_rx(struct net_device *dev)
|
||||
eth_copy_and_sum(skb, sp->rx_skbuff[entry]->data, pkt_len, 0);
|
||||
skb_put(skb, pkt_len);
|
||||
#else
|
||||
memcpy(skb_put(skb, pkt_len), sp->rx_skbuff[entry]->data,
|
||||
pkt_len);
|
||||
skb_copy_from_linear_data(sp->rx_skbuff[entry],
|
||||
skb_put(skb, pkt_len),
|
||||
pkt_len);
|
||||
#endif
|
||||
pci_dma_sync_single_for_device(sp->pdev, sp->rx_ring_dma[entry],
|
||||
sizeof(struct RxFD) + pkt_len,
|
||||
|
||||
@@ -1306,7 +1306,7 @@ static void write_swqe2_TSO(struct sk_buff *skb,
|
||||
|
||||
if (skb_data_size >= headersize) {
|
||||
/* copy immediate data */
|
||||
memcpy(imm_data, skb->data, headersize);
|
||||
skb_copy_from_linear_data(skb, imm_data, headersize);
|
||||
swqe->immediate_data_length = headersize;
|
||||
|
||||
if (skb_data_size > headersize) {
|
||||
@@ -1337,7 +1337,7 @@ static void write_swqe2_nonTSO(struct sk_buff *skb,
|
||||
*/
|
||||
if (skb_data_size >= SWQE2_MAX_IMM) {
|
||||
/* copy immediate data */
|
||||
memcpy(imm_data, skb->data, SWQE2_MAX_IMM);
|
||||
skb_copy_from_linear_data(skb, imm_data, SWQE2_MAX_IMM);
|
||||
|
||||
swqe->immediate_data_length = SWQE2_MAX_IMM;
|
||||
|
||||
@@ -1350,7 +1350,7 @@ static void write_swqe2_nonTSO(struct sk_buff *skb,
|
||||
swqe->descriptors++;
|
||||
}
|
||||
} else {
|
||||
memcpy(imm_data, skb->data, skb_data_size);
|
||||
skb_copy_from_linear_data(skb, imm_data, skb_data_size);
|
||||
swqe->immediate_data_length = skb_data_size;
|
||||
}
|
||||
}
|
||||
@@ -1772,10 +1772,11 @@ static void ehea_xmit3(struct sk_buff *skb, struct net_device *dev,
|
||||
/* copy (immediate) data */
|
||||
if (nfrags == 0) {
|
||||
/* data is in a single piece */
|
||||
memcpy(imm_data, skb->data, skb->len);
|
||||
skb_copy_from_linear_data(skb, imm_data, skb->len);
|
||||
} else {
|
||||
/* first copy data from the skb->data buffer ... */
|
||||
memcpy(imm_data, skb->data, skb->len - skb->data_len);
|
||||
skb_copy_from_linear_data(skb, imm_data,
|
||||
skb->len - skb->data_len);
|
||||
imm_data += skb->len - skb->data_len;
|
||||
|
||||
/* ... then copy data from the fragments */
|
||||
|
||||
@@ -551,7 +551,9 @@ static int fec_enet_rx_common(struct net_device *dev, int *budget)
|
||||
skbn = dev_alloc_skb(pkt_len + 2);
|
||||
if (skbn != NULL) {
|
||||
skb_reserve(skbn, 2); /* align IP header */
|
||||
memcpy(skbn->data, skb->data, pkt_len);
|
||||
skb_copy_from_linear_data(skb
|
||||
skbn->data,
|
||||
pkt_len);
|
||||
/* swap */
|
||||
skbt = skb;
|
||||
skb = skbn;
|
||||
|
||||
@@ -160,7 +160,8 @@ static int fs_enet_rx_napi(struct net_device *dev, int *budget)
|
||||
skbn = dev_alloc_skb(pkt_len + 2);
|
||||
if (skbn != NULL) {
|
||||
skb_reserve(skbn, 2); /* align IP header */
|
||||
memcpy(skbn->data, skb->data, pkt_len);
|
||||
skb_copy_from_linear_data(skb,
|
||||
skbn->data, pkt_len);
|
||||
/* swap */
|
||||
skbt = skb;
|
||||
skb = skbn;
|
||||
@@ -293,7 +294,8 @@ static int fs_enet_rx_non_napi(struct net_device *dev)
|
||||
skbn = dev_alloc_skb(pkt_len + 2);
|
||||
if (skbn != NULL) {
|
||||
skb_reserve(skbn, 2); /* align IP header */
|
||||
memcpy(skbn->data, skb->data, pkt_len);
|
||||
skb_copy_from_linear_data(skb,
|
||||
skbn->data, pkt_len);
|
||||
/* swap */
|
||||
skbt = skb;
|
||||
skb = skbn;
|
||||
|
||||
@@ -930,7 +930,7 @@ static int scc_send_packet(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
/* Transfer data to DMA buffer */
|
||||
i = priv->tx_head;
|
||||
memcpy(priv->tx_buf[i], skb->data + 1, skb->len - 1);
|
||||
skb_copy_from_linear_data_offset(skb, 1, priv->tx_buf[i], skb->len - 1);
|
||||
priv->tx_len[i] = skb->len - 1;
|
||||
|
||||
/* Clear interrupts while we touch our circular buffers */
|
||||
|
||||
@@ -317,7 +317,9 @@ void hdlcdrv_transmitter(struct net_device *dev, struct hdlcdrv_state *s)
|
||||
dev_kfree_skb_irq(skb);
|
||||
break;
|
||||
}
|
||||
memcpy(s->hdlctx.buffer, skb->data+1, pkt_len);
|
||||
skb_copy_from_linear_data_offset(skb, 1,
|
||||
s->hdlctx.buffer,
|
||||
pkt_len);
|
||||
dev_kfree_skb_irq(skb);
|
||||
s->hdlctx.bp = s->hdlctx.buffer;
|
||||
append_crc_ccitt(s->hdlctx.buffer, pkt_len);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user