aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2007-03-27 17:55:52 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:28:23 -0400
commitd626f62b11e00c16e81e4308ab93d3f13551812a (patch)
treefac4af6ced853755e12fc709d55f0c2bec51265d /drivers/isdn/hisax
parent2a123b86e2b242a4a6db990d2851d45e192f88e5 (diff)
[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>
Diffstat (limited to 'drivers/isdn/hisax')
-rw-r--r--drivers/isdn/hisax/elsa_ser.c6
-rw-r--r--drivers/isdn/hisax/isdnl2.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/isdn/hisax/elsa_ser.c b/drivers/isdn/hisax/elsa_ser.c
index ae377e812775..1642dca988a1 100644
--- a/drivers/isdn/hisax/elsa_ser.c
+++ b/drivers/isdn/hisax/elsa_ser.c
@@ -254,14 +254,16 @@ write_modem(struct BCState *bcs) {
254 count = len; 254 count = len;
255 if (count > MAX_MODEM_BUF - fp) { 255 if (count > MAX_MODEM_BUF - fp) {
256 count = MAX_MODEM_BUF - fp; 256 count = MAX_MODEM_BUF - fp;
257 memcpy(cs->hw.elsa.transbuf + fp, bcs->tx_skb->data, count); 257 skb_copy_from_linear_data(bcs->tx_skb,
258 cs->hw.elsa.transbuf + fp, count);
258 skb_pull(bcs->tx_skb, count); 259 skb_pull(bcs->tx_skb, count);
259 cs->hw.elsa.transcnt += count; 260 cs->hw.elsa.transcnt += count;
260 ret = count; 261 ret = count;
261 count = len - count; 262 count = len - count;
262 fp = 0; 263 fp = 0;
263 } 264 }
264 memcpy((cs->hw.elsa.transbuf + fp), bcs->tx_skb->data, count); 265 skb_copy_from_linear_data(bcs->tx_skb,
266 cs->hw.elsa.transbuf + fp, count);
265 skb_pull(bcs->tx_skb, count); 267 skb_pull(bcs->tx_skb, count);
266 cs->hw.elsa.transcnt += count; 268 cs->hw.elsa.transcnt += count;
267 ret += count; 269 ret += count;
diff --git a/drivers/isdn/hisax/isdnl2.c b/drivers/isdn/hisax/isdnl2.c
index cd3b5ad53491..3446f249d675 100644
--- a/drivers/isdn/hisax/isdnl2.c
+++ b/drivers/isdn/hisax/isdnl2.c
@@ -1293,7 +1293,8 @@ l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
1293 oskb = skb; 1293 oskb = skb;
1294 skb = alloc_skb(oskb->len + i, GFP_ATOMIC); 1294 skb = alloc_skb(oskb->len + i, GFP_ATOMIC);
1295 memcpy(skb_put(skb, i), header, i); 1295 memcpy(skb_put(skb, i), header, i);
1296 memcpy(skb_put(skb, oskb->len), oskb->data, oskb->len); 1296 skb_copy_from_linear_data(oskb,
1297 skb_put(skb, oskb->len), oskb->len);
1297 dev_kfree_skb(oskb); 1298 dev_kfree_skb(oskb);
1298 } 1299 }
1299 st->l2.l2l1(st, PH_PULL | INDICATION, skb); 1300 st->l2.l2l1(st, PH_PULL | INDICATION, skb);