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_to_linear_data{_offset}
To clearly state the intent of copying to 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@ghostprotocols.net>
This commit is contained in:
committed by
David S. Miller
parent
3dbad80ac7
commit
27d7ff46a3
@@ -473,7 +473,7 @@ simeth_rx(struct net_device *dev)
|
|||||||
* XXX Fix me
|
* XXX Fix me
|
||||||
* Should really do a csum+copy here
|
* Should really do a csum+copy here
|
||||||
*/
|
*/
|
||||||
memcpy(skb->data, frame, len);
|
skb_copy_to_linear_data(skb, frame, len);
|
||||||
#endif
|
#endif
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
|
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ xpnet_receive(partid_t partid, int channel, struct xpnet_message *msg)
|
|||||||
"%lu)\n", skb->data, &msg->data,
|
"%lu)\n", skb->data, &msg->data,
|
||||||
(size_t) msg->embedded_bytes);
|
(size_t) msg->embedded_bytes);
|
||||||
|
|
||||||
memcpy(skb->data, &msg->data, (size_t) msg->embedded_bytes);
|
skb_copy_to_linear_data(skb, &msg->data, (size_t)msg->embedded_bytes);
|
||||||
} else {
|
} else {
|
||||||
dev_dbg(xpnet, "transferring buffer to the skb->data area;\n\t"
|
dev_dbg(xpnet, "transferring buffer to the skb->data area;\n\t"
|
||||||
"bte_copy(0x%p, 0x%p, %hu)\n", (void *)msg->buf_pa,
|
"bte_copy(0x%p, 0x%p, %hu)\n", (void *)msg->buf_pa,
|
||||||
|
|||||||
@@ -399,7 +399,8 @@ static u16 hycapi_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
|
|||||||
if (_len > 22) {
|
if (_len > 22) {
|
||||||
_len2 = _len - 22;
|
_len2 = _len - 22;
|
||||||
skb_copy_from_linear_data(skb, msghead, 22);
|
skb_copy_from_linear_data(skb, msghead, 22);
|
||||||
memcpy(skb->data + _len2, msghead, 22);
|
skb_copy_to_linear_data_offset(skb, _len2,
|
||||||
|
msghead, 22);
|
||||||
skb_pull(skb, _len2);
|
skb_pull(skb, _len2);
|
||||||
CAPIMSG_SETLEN(skb->data, 22);
|
CAPIMSG_SETLEN(skb->data, 22);
|
||||||
retval = capilib_data_b3_req(&cinfo->ncci_head,
|
retval = capilib_data_b3_req(&cinfo->ncci_head,
|
||||||
|
|||||||
@@ -1904,10 +1904,10 @@ static __inline__ void wrap_copy(struct sk_buff *skb, const unsigned char *ring,
|
|||||||
u32 left = RX_BUF_LEN - offset;
|
u32 left = RX_BUF_LEN - offset;
|
||||||
|
|
||||||
if (size > left) {
|
if (size > left) {
|
||||||
memcpy(skb->data, ring + offset, left);
|
skb_copy_to_linear_data(skb, ring + offset, left);
|
||||||
memcpy(skb->data+left, ring, size - left);
|
skb_copy_to_linear_data_offset(skb, left, ring, size - left);
|
||||||
} else
|
} else
|
||||||
memcpy(skb->data, ring + offset, size);
|
skb_copy_to_linear_data(skb, ring + offset, size);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -774,7 +774,7 @@ static int sendup_buffer (struct net_device *dev)
|
|||||||
skb_pull(skb,3);
|
skb_pull(skb,3);
|
||||||
|
|
||||||
/* copy ddp(s,e)hdr + contents */
|
/* copy ddp(s,e)hdr + contents */
|
||||||
memcpy(skb->data,(void*)ltdmabuf,len);
|
skb_copy_to_linear_data(skb, ltdmabuf, len);
|
||||||
|
|
||||||
skb_reset_transport_header(skb);
|
skb_reset_transport_header(skb);
|
||||||
|
|
||||||
|
|||||||
@@ -550,7 +550,8 @@ bionet_poll_rx(struct net_device *dev) {
|
|||||||
|
|
||||||
/* 'skb->data' points to the start of sk_buff data area.
|
/* 'skb->data' points to the start of sk_buff data area.
|
||||||
*/
|
*/
|
||||||
memcpy(skb->data, nic_packet->buffer, pkt_len);
|
skb_copy_to_linear_data(skb, nic_packet->buffer,
|
||||||
|
pkt_len);
|
||||||
skb->protocol = eth_type_trans( skb, dev );
|
skb->protocol = eth_type_trans( skb, dev );
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
dev->last_rx = jiffies;
|
dev->last_rx = jiffies;
|
||||||
|
|||||||
@@ -793,7 +793,8 @@ pamsnet_poll_rx(struct net_device *dev) {
|
|||||||
|
|
||||||
/* 'skb->data' points to the start of sk_buff data area.
|
/* 'skb->data' points to the start of sk_buff data area.
|
||||||
*/
|
*/
|
||||||
memcpy(skb->data, nic_packet->buffer, pkt_len);
|
skb_copy_to_linear_data(skb, nic_packet->buffer,
|
||||||
|
pkt_len);
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
dev->last_rx = jiffies;
|
dev->last_rx = jiffies;
|
||||||
lp->stats.rx_packets++;
|
lp->stats.rx_packets++;
|
||||||
|
|||||||
@@ -2095,10 +2095,14 @@ static void espibug_workaround_t204(unsigned long data)
|
|||||||
0x0, 0x7, 0x43, 0x0, 0x0, 0x0
|
0x0, 0x7, 0x43, 0x0, 0x0, 0x0
|
||||||
};
|
};
|
||||||
|
|
||||||
memcpy(skb->data + sizeof(struct cpl_tx_pkt),
|
skb_copy_to_linear_data_offset(skb,
|
||||||
ch_mac_addr, ETH_ALEN);
|
sizeof(struct cpl_tx_pkt),
|
||||||
memcpy(skb->data + skb->len - 10,
|
ch_mac_addr,
|
||||||
ch_mac_addr, ETH_ALEN);
|
ETH_ALEN);
|
||||||
|
skb_copy_to_linear_data_offset(skb,
|
||||||
|
skb->len - 10,
|
||||||
|
ch_mac_addr,
|
||||||
|
ETH_ALEN);
|
||||||
skb->cb[0] = 0xff;
|
skb->cb[0] = 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2125,10 +2129,14 @@ static void espibug_workaround(unsigned long data)
|
|||||||
if (!skb->cb[0]) {
|
if (!skb->cb[0]) {
|
||||||
u8 ch_mac_addr[ETH_ALEN] =
|
u8 ch_mac_addr[ETH_ALEN] =
|
||||||
{0x0, 0x7, 0x43, 0x0, 0x0, 0x0};
|
{0x0, 0x7, 0x43, 0x0, 0x0, 0x0};
|
||||||
memcpy(skb->data + sizeof(struct cpl_tx_pkt),
|
skb_copy_to_linear_data_offset(skb,
|
||||||
ch_mac_addr, ETH_ALEN);
|
sizeof(struct cpl_tx_pkt),
|
||||||
memcpy(skb->data + skb->len - 10, ch_mac_addr,
|
ch_mac_addr,
|
||||||
ETH_ALEN);
|
ETH_ALEN);
|
||||||
|
skb_copy_to_linear_data_offset(skb,
|
||||||
|
skb->len - 10,
|
||||||
|
ch_mac_addr,
|
||||||
|
ETH_ALEN);
|
||||||
skb->cb[0] = 0xff;
|
skb->cb[0] = 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -661,7 +661,7 @@ static inline struct sk_buff *get_imm_packet(const struct rsp_desc *resp)
|
|||||||
|
|
||||||
if (skb) {
|
if (skb) {
|
||||||
__skb_put(skb, IMMED_PKT_SIZE);
|
__skb_put(skb, IMMED_PKT_SIZE);
|
||||||
memcpy(skb->data, resp->imm_data, IMMED_PKT_SIZE);
|
skb_copy_to_linear_data(skb, resp->imm_data, IMMED_PKT_SIZE);
|
||||||
}
|
}
|
||||||
return skb;
|
return skb;
|
||||||
}
|
}
|
||||||
@@ -1722,11 +1722,11 @@ static void skb_data_init(struct sk_buff *skb, struct sge_fl_page *p,
|
|||||||
{
|
{
|
||||||
skb->len = len;
|
skb->len = len;
|
||||||
if (len <= SKB_DATA_SIZE) {
|
if (len <= SKB_DATA_SIZE) {
|
||||||
memcpy(skb->data, p->va, len);
|
skb_copy_to_linear_data(skb, p->va, len);
|
||||||
skb->tail += len;
|
skb->tail += len;
|
||||||
put_page(p->frag.page);
|
put_page(p->frag.page);
|
||||||
} else {
|
} else {
|
||||||
memcpy(skb->data, p->va, SKB_DATA_SIZE);
|
skb_copy_to_linear_data(skb, p->va, SKB_DATA_SIZE);
|
||||||
skb_shinfo(skb)->frags[0].page = p->frag.page;
|
skb_shinfo(skb)->frags[0].page = p->frag.page;
|
||||||
skb_shinfo(skb)->frags[0].page_offset =
|
skb_shinfo(skb)->frags[0].page_offset =
|
||||||
p->frag.page_offset + SKB_DATA_SIZE;
|
p->frag.page_offset + SKB_DATA_SIZE;
|
||||||
|
|||||||
+3
-1
@@ -3091,7 +3091,9 @@ static void dfx_rcv_queue_process(
|
|||||||
{
|
{
|
||||||
/* Receive buffer allocated, pass receive packet up */
|
/* Receive buffer allocated, pass receive packet up */
|
||||||
|
|
||||||
memcpy(skb->data, p_buff + RCV_BUFF_K_PADDING, pkt_len+3);
|
skb_copy_to_linear_data(skb,
|
||||||
|
p_buff + RCV_BUFF_K_PADDING,
|
||||||
|
pkt_len + 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
skb_reserve(skb,3); /* adjust data field so that it points to FC byte */
|
skb_reserve(skb,3); /* adjust data field so that it points to FC byte */
|
||||||
|
|||||||
+1
-1
@@ -1769,7 +1769,7 @@ static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
|
|||||||
|
|
||||||
/* Align, init, and map the RFD. */
|
/* Align, init, and map the RFD. */
|
||||||
skb_reserve(rx->skb, NET_IP_ALIGN);
|
skb_reserve(rx->skb, NET_IP_ALIGN);
|
||||||
memcpy(rx->skb->data, &nic->blank_rfd, sizeof(struct rfd));
|
skb_copy_to_linear_data(rx->skb, &nic->blank_rfd, sizeof(struct rfd));
|
||||||
rx->dma_addr = pci_map_single(nic->pdev, rx->skb->data,
|
rx->dma_addr = pci_map_single(nic->pdev, rx->skb->data,
|
||||||
RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL);
|
RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL);
|
||||||
|
|
||||||
|
|||||||
@@ -4224,9 +4224,12 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
|
|||||||
netdev_alloc_skb(netdev, length + NET_IP_ALIGN);
|
netdev_alloc_skb(netdev, length + NET_IP_ALIGN);
|
||||||
if (new_skb) {
|
if (new_skb) {
|
||||||
skb_reserve(new_skb, NET_IP_ALIGN);
|
skb_reserve(new_skb, NET_IP_ALIGN);
|
||||||
memcpy(new_skb->data - NET_IP_ALIGN,
|
skb_copy_to_linear_data_offset(new_skb,
|
||||||
skb->data - NET_IP_ALIGN,
|
-NET_IP_ALIGN,
|
||||||
length + NET_IP_ALIGN);
|
(skb->data -
|
||||||
|
NET_IP_ALIGN),
|
||||||
|
(length +
|
||||||
|
NET_IP_ALIGN));
|
||||||
/* save the skb in buffer_info as good */
|
/* save the skb in buffer_info as good */
|
||||||
buffer_info->skb = skb;
|
buffer_info->skb = skb;
|
||||||
skb = new_skb;
|
skb = new_skb;
|
||||||
|
|||||||
@@ -391,8 +391,8 @@ static int ehea_poll(struct net_device *dev, int *budget)
|
|||||||
if (!skb)
|
if (!skb)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memcpy(skb->data, ((char*)cqe) + 64,
|
skb_copy_to_linear_data(skb, ((char*)cqe) + 64,
|
||||||
cqe->num_bytes_transfered - 4);
|
cqe->num_bytes_transfered - 4);
|
||||||
ehea_fill_skb(dev, skb, cqe);
|
ehea_fill_skb(dev, skb, cqe);
|
||||||
} else if (rq == 2) { /* RQ2 */
|
} else if (rq == 2) { /* RQ2 */
|
||||||
skb = get_skb_by_index(skb_arr_rq2,
|
skb = get_skb_by_index(skb_arr_rq2,
|
||||||
|
|||||||
@@ -1923,7 +1923,7 @@ static int ali_ircc_dma_receive_complete(struct ali_ircc_cb *self)
|
|||||||
|
|
||||||
/* Copy frame without CRC, CRC is removed by hardware*/
|
/* Copy frame without CRC, CRC is removed by hardware*/
|
||||||
skb_put(skb, len);
|
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 */
|
/* Move to next frame */
|
||||||
self->rx_buff.data += len;
|
self->rx_buff.data += len;
|
||||||
|
|||||||
@@ -604,7 +604,7 @@ static int au1k_irda_rx(struct net_device *dev)
|
|||||||
skb_put(skb, count);
|
skb_put(skb, count);
|
||||||
else
|
else
|
||||||
skb_put(skb, count-2);
|
skb_put(skb, count-2);
|
||||||
memcpy(skb->data, (void *)pDB->vaddr, count-2);
|
skb_copy_to_linear_data(skb, pDB->vaddr, count - 2);
|
||||||
skb->dev = dev;
|
skb->dev = dev;
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
skb->protocol = htons(ETH_P_IRDA);
|
skb->protocol = htons(ETH_P_IRDA);
|
||||||
|
|||||||
@@ -1282,8 +1282,8 @@ dumpbufs(self->rx_bufs[self->rxs],len,'<');
|
|||||||
skb_reserve (skb, 1);
|
skb_reserve (skb, 1);
|
||||||
|
|
||||||
skb_put (skb, len);
|
skb_put (skb, len);
|
||||||
memcpy (skb->data, self->rx_bufs[self->rxs], len);
|
skb_copy_to_linear_data(skb, self->rx_bufs[self->rxs],
|
||||||
|
len);
|
||||||
self->stats.rx_packets++;
|
self->stats.rx_packets++;
|
||||||
skb->dev = self->netdev;
|
skb->dev = self->netdev;
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ static void mcs_unwrap_mir(struct mcs_cb *mcs, __u8 *buf, int len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
skb_reserve(skb, 1);
|
skb_reserve(skb, 1);
|
||||||
memcpy(skb->data, buf, new_len);
|
skb_copy_to_linear_data(skb, buf, new_len);
|
||||||
skb_put(skb, new_len);
|
skb_put(skb, new_len);
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
skb->protocol = htons(ETH_P_IRDA);
|
skb->protocol = htons(ETH_P_IRDA);
|
||||||
@@ -479,7 +479,7 @@ static void mcs_unwrap_fir(struct mcs_cb *mcs, __u8 *buf, int len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
skb_reserve(skb, 1);
|
skb_reserve(skb, 1);
|
||||||
memcpy(skb->data, buf, new_len);
|
skb_copy_to_linear_data(skb, buf, new_len);
|
||||||
skb_put(skb, new_len);
|
skb_put(skb, new_len);
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
skb->protocol = htons(ETH_P_IRDA);
|
skb->protocol = htons(ETH_P_IRDA);
|
||||||
|
|||||||
@@ -1868,10 +1868,14 @@ static int nsc_ircc_dma_receive_complete(struct nsc_ircc_cb *self, int iobase)
|
|||||||
/* Copy frame without CRC */
|
/* Copy frame without CRC */
|
||||||
if (self->io.speed < 4000000) {
|
if (self->io.speed < 4000000) {
|
||||||
skb_put(skb, len-2);
|
skb_put(skb, len-2);
|
||||||
memcpy(skb->data, self->rx_buff.data, len-2);
|
skb_copy_to_linear_data(skb,
|
||||||
|
self->rx_buff.data,
|
||||||
|
len - 2);
|
||||||
} else {
|
} else {
|
||||||
skb_put(skb, len-4);
|
skb_put(skb, len-4);
|
||||||
memcpy(skb->data, self->rx_buff.data, len-4);
|
skb_copy_to_linear_data(skb,
|
||||||
|
self->rx_buff.data,
|
||||||
|
len - 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move to next frame */
|
/* Move to next frame */
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ static void pxa_irda_fir_irq_eif(struct pxa_irda *si, struct net_device *dev, in
|
|||||||
|
|
||||||
/* Align IP header to 20 bytes */
|
/* Align IP header to 20 bytes */
|
||||||
skb_reserve(skb, 1);
|
skb_reserve(skb, 1);
|
||||||
memcpy(skb->data, si->dma_rx_buff, len);
|
skb_copy_to_linear_data(skb, si->dma_rx_buff, len);
|
||||||
skb_put(skb, len);
|
skb_put(skb, len);
|
||||||
|
|
||||||
/* Feed it to IrLAP */
|
/* Feed it to IrLAP */
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ static void fir_eof(struct stir_cb *stir)
|
|||||||
}
|
}
|
||||||
skb_reserve(nskb, 1);
|
skb_reserve(nskb, 1);
|
||||||
skb = nskb;
|
skb = nskb;
|
||||||
memcpy(nskb->data, rx_buff->data, len);
|
skb_copy_to_linear_data(nskb, rx_buff->data, len);
|
||||||
} else {
|
} else {
|
||||||
nskb = dev_alloc_skb(rx_buff->truesize);
|
nskb = dev_alloc_skb(rx_buff->truesize);
|
||||||
if (unlikely(!nskb)) {
|
if (unlikely(!nskb)) {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user