mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04: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 <[email protected]>
This commit is contained in:
parent
2a123b86e2
commit
d626f62b11
133 changed files with 321 additions and 230 deletions
|
|
@ -442,7 +442,7 @@ act2000_sendbuf(act2000_card *card, int channel, int ack, struct sk_buff *skb)
|
|||
return 0;
|
||||
}
|
||||
skb_reserve(xmit_skb, 19);
|
||||
memcpy(skb_put(xmit_skb, len), skb->data, len);
|
||||
skb_copy_from_linear_data(skb, skb_put(xmit_skb, len), len);
|
||||
} else {
|
||||
xmit_skb = skb_clone(skb, GFP_ATOMIC);
|
||||
if (!xmit_skb) {
|
||||
|
|
|
|||
|
|
@ -652,7 +652,7 @@ static int write_modem(struct cardstate *cs)
|
|||
* transmit data
|
||||
*/
|
||||
count = min(bcs->tx_skb->len, (unsigned) ucs->bulk_out_size);
|
||||
memcpy(ucs->bulk_out_buffer, bcs->tx_skb->data, count);
|
||||
skb_copy_from_linear_data(bcs->tx_skb, ucs->bulk_out_buffer, count);
|
||||
skb_pull(bcs->tx_skb, count);
|
||||
atomic_set(&ucs->busy, 1);
|
||||
gig_dbg(DEBUG_OUTPUT, "write_modem: send %d bytes", count);
|
||||
|
|
|
|||
|
|
@ -404,7 +404,8 @@ static void b1dma_dispatch_tx(avmcard *card)
|
|||
printk(KERN_DEBUG "tx: put 0x%x len=%d\n",
|
||||
skb->data[2], txlen);
|
||||
#endif
|
||||
memcpy(dma->sendbuf.dmabuf, skb->data+2, skb->len-2);
|
||||
skb_copy_from_linear_data_offset(skb, 2, dma->sendbuf.dmabuf,
|
||||
skb->len - 2);
|
||||
}
|
||||
txlen = (txlen + 3) & ~3;
|
||||
|
||||
|
|
|
|||
|
|
@ -457,7 +457,8 @@ static void c4_dispatch_tx(avmcard *card)
|
|||
printk(KERN_DEBUG "%s: tx put 0x%x len=%d\n",
|
||||
card->name, skb->data[2], txlen);
|
||||
#endif
|
||||
memcpy(dma->sendbuf.dmabuf, skb->data+2, skb->len-2);
|
||||
skb_copy_from_linear_data_offset(skb, 2, dma->sendbuf.dmabuf,
|
||||
skb->len - 2);
|
||||
}
|
||||
txlen = (txlen + 3) & ~3;
|
||||
|
||||
|
|
|
|||
|
|
@ -254,14 +254,16 @@ write_modem(struct BCState *bcs) {
|
|||
count = len;
|
||||
if (count > MAX_MODEM_BUF - fp) {
|
||||
count = MAX_MODEM_BUF - fp;
|
||||
memcpy(cs->hw.elsa.transbuf + fp, bcs->tx_skb->data, count);
|
||||
skb_copy_from_linear_data(bcs->tx_skb,
|
||||
cs->hw.elsa.transbuf + fp, count);
|
||||
skb_pull(bcs->tx_skb, count);
|
||||
cs->hw.elsa.transcnt += count;
|
||||
ret = count;
|
||||
count = len - count;
|
||||
fp = 0;
|
||||
}
|
||||
memcpy((cs->hw.elsa.transbuf + fp), bcs->tx_skb->data, count);
|
||||
skb_copy_from_linear_data(bcs->tx_skb,
|
||||
cs->hw.elsa.transbuf + fp, count);
|
||||
skb_pull(bcs->tx_skb, count);
|
||||
cs->hw.elsa.transcnt += count;
|
||||
ret += count;
|
||||
|
|
|
|||
|
|
@ -1293,7 +1293,8 @@ l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
|
|||
oskb = skb;
|
||||
skb = alloc_skb(oskb->len + i, GFP_ATOMIC);
|
||||
memcpy(skb_put(skb, i), header, i);
|
||||
memcpy(skb_put(skb, oskb->len), oskb->data, oskb->len);
|
||||
skb_copy_from_linear_data(oskb,
|
||||
skb_put(skb, oskb->len), oskb->len);
|
||||
dev_kfree_skb(oskb);
|
||||
}
|
||||
st->l2.l2l1(st, PH_PULL | INDICATION, skb);
|
||||
|
|
|
|||
|
|
@ -398,7 +398,7 @@ static u16 hycapi_send_message(struct capi_ctr *ctrl, struct sk_buff *skb)
|
|||
_len = CAPIMSG_LEN(skb->data);
|
||||
if (_len > 22) {
|
||||
_len2 = _len - 22;
|
||||
memcpy(msghead, skb->data, 22);
|
||||
skb_copy_from_linear_data(skb, msghead, 22);
|
||||
memcpy(skb->data + _len2, msghead, 22);
|
||||
skb_pull(skb, _len2);
|
||||
CAPIMSG_SETLEN(skb->data, 22);
|
||||
|
|
|
|||
|
|
@ -113,7 +113,8 @@ hysdn_sched_tx(hysdn_card *card, unsigned char *buf,
|
|||
(skb = hysdn_tx_netget(card)) != NULL)
|
||||
{
|
||||
if (skb->len <= maxlen) {
|
||||
memcpy(buf, skb->data, skb->len); /* copy the packet to the buffer */
|
||||
/* copy the packet to the buffer */
|
||||
skb_copy_from_linear_data(skb, buf, skb->len);
|
||||
*len = skb->len;
|
||||
*chan = CHAN_NDIS_DATA;
|
||||
card->net_tx_busy = 1; /* we are busy sending network data */
|
||||
|
|
@ -126,7 +127,7 @@ hysdn_sched_tx(hysdn_card *card, unsigned char *buf,
|
|||
((skb = hycapi_tx_capiget(card)) != NULL) )
|
||||
{
|
||||
if (skb->len <= maxlen) {
|
||||
memcpy(buf, skb->data, skb->len);
|
||||
skb_copy_from_linear_data(skb, buf, skb->len);
|
||||
*len = skb->len;
|
||||
*chan = CHAN_CAPI;
|
||||
hycapi_tx_capiack(card);
|
||||
|
|
|
|||
|
|
@ -829,7 +829,7 @@ isdn_readbchan(int di, int channel, u_char * buf, u_char * fp, int len, wait_que
|
|||
dflag = 0;
|
||||
}
|
||||
count_put = count_pull;
|
||||
memcpy(cp, skb->data, count_put);
|
||||
skb_copy_from_linear_data(skb, cp, count_put);
|
||||
cp += count_put;
|
||||
len -= count_put;
|
||||
#ifdef CONFIG_ISDN_AUDIO
|
||||
|
|
|
|||
|
|
@ -1100,7 +1100,8 @@ isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff
|
|||
goto drop_packet;
|
||||
}
|
||||
skb_put(skb, skb_old->len + 128);
|
||||
memcpy(skb->data, skb_old->data, skb_old->len);
|
||||
skb_copy_from_linear_data(skb_old, skb->data,
|
||||
skb_old->len);
|
||||
if (net_dev->local->ppp_slot < 0) {
|
||||
printk(KERN_ERR "%s: net_dev->local->ppp_slot(%d) out of range\n",
|
||||
__FUNCTION__, net_dev->local->ppp_slot);
|
||||
|
|
@ -1902,7 +1903,9 @@ void isdn_ppp_mp_reassembly( isdn_net_dev * net_dev, isdn_net_local * lp,
|
|||
while( from != to ) {
|
||||
unsigned int len = from->len - MP_HEADER_LEN;
|
||||
|
||||
memcpy(skb_put(skb,len), from->data+MP_HEADER_LEN, len);
|
||||
skb_copy_from_linear_data_offset(from, MP_HEADER_LEN,
|
||||
skb_put(skb,len),
|
||||
len);
|
||||
frag = from->next;
|
||||
isdn_ppp_mp_free_skb(mp, from);
|
||||
from = frag;
|
||||
|
|
|
|||
|
|
@ -415,7 +415,8 @@ isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card * card)
|
|||
spin_lock_irqsave(&card->isdnloop_lock, flags);
|
||||
nskb = dev_alloc_skb(skb->len);
|
||||
if (nskb) {
|
||||
memcpy(skb_put(nskb, len), skb->data, len);
|
||||
skb_copy_from_linear_data(skb,
|
||||
skb_put(nskb, len), len);
|
||||
skb_queue_tail(&card->bqueue[channel], nskb);
|
||||
dev_kfree_skb(skb);
|
||||
} else
|
||||
|
|
|
|||
|
|
@ -429,8 +429,9 @@ int capi_decode_conn_ind(struct pcbit_chan * chan,
|
|||
if (!(info->data.setup.CallingPN = kmalloc(len - count + 1, GFP_ATOMIC)))
|
||||
return -1;
|
||||
|
||||
memcpy(info->data.setup.CallingPN, skb->data + count + 1,
|
||||
len - count);
|
||||
skb_copy_from_linear_data_offset(skb, count + 1,
|
||||
info->data.setup.CallingPN,
|
||||
len - count);
|
||||
info->data.setup.CallingPN[len - count] = 0;
|
||||
|
||||
}
|
||||
|
|
@ -457,8 +458,9 @@ int capi_decode_conn_ind(struct pcbit_chan * chan,
|
|||
if (!(info->data.setup.CalledPN = kmalloc(len - count + 1, GFP_ATOMIC)))
|
||||
return -1;
|
||||
|
||||
memcpy(info->data.setup.CalledPN, skb->data + count + 1,
|
||||
len - count);
|
||||
skb_copy_from_linear_data_offset(skb, count + 1,
|
||||
info->data.setup.CalledPN,
|
||||
len - count);
|
||||
info->data.setup.CalledPN[len - count] = 0;
|
||||
|
||||
}
|
||||
|
|
@ -539,7 +541,7 @@ int capi_decode_conn_actv_ind(struct pcbit_chan * chan, struct sk_buff *skb)
|
|||
|
||||
#ifdef DEBUG
|
||||
if (len > 1 && len < 31) {
|
||||
memcpy(str, skb->data + 2, len - 1);
|
||||
skb_copy_from_linear_data_offset(skb, 2, str, len - 1);
|
||||
str[len] = 0;
|
||||
printk(KERN_DEBUG "Connected Party Number: %s\n", str);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue