aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/ctcm_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/net/ctcm_main.c')
-rw-r--r--drivers/s390/net/ctcm_main.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 99121352c57b..e8782a8619f7 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -483,7 +483,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
483 spin_unlock_irqrestore(&ch->collect_lock, saveflags); 483 spin_unlock_irqrestore(&ch->collect_lock, saveflags);
484 return -EBUSY; 484 return -EBUSY;
485 } else { 485 } else {
486 atomic_inc(&skb->users); 486 refcount_inc(&skb->users);
487 header.length = l; 487 header.length = l;
488 header.type = be16_to_cpu(skb->protocol); 488 header.type = be16_to_cpu(skb->protocol);
489 header.unused = 0; 489 header.unused = 0;
@@ -500,7 +500,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
500 * Protect skb against beeing free'd by upper 500 * Protect skb against beeing free'd by upper
501 * layers. 501 * layers.
502 */ 502 */
503 atomic_inc(&skb->users); 503 refcount_inc(&skb->users);
504 ch->prof.txlen += skb->len; 504 ch->prof.txlen += skb->len;
505 header.length = skb->len + LL_HEADER_LENGTH; 505 header.length = skb->len + LL_HEADER_LENGTH;
506 header.type = be16_to_cpu(skb->protocol); 506 header.type = be16_to_cpu(skb->protocol);
@@ -517,14 +517,14 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
517 if (hi) { 517 if (hi) {
518 nskb = alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA); 518 nskb = alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA);
519 if (!nskb) { 519 if (!nskb) {
520 atomic_dec(&skb->users); 520 refcount_dec(&skb->users);
521 skb_pull(skb, LL_HEADER_LENGTH + 2); 521 skb_pull(skb, LL_HEADER_LENGTH + 2);
522 ctcm_clear_busy(ch->netdev); 522 ctcm_clear_busy(ch->netdev);
523 return -ENOMEM; 523 return -ENOMEM;
524 } else { 524 } else {
525 skb_put_data(nskb, skb->data, skb->len); 525 skb_put_data(nskb, skb->data, skb->len);
526 atomic_inc(&nskb->users); 526 refcount_inc(&nskb->users);
527 atomic_dec(&skb->users); 527 refcount_dec(&skb->users);
528 dev_kfree_skb_irq(skb); 528 dev_kfree_skb_irq(skb);
529 skb = nskb; 529 skb = nskb;
530 } 530 }
@@ -542,7 +542,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
542 * Remove our header. It gets added 542 * Remove our header. It gets added
543 * again on retransmit. 543 * again on retransmit.
544 */ 544 */
545 atomic_dec(&skb->users); 545 refcount_dec(&skb->users);
546 skb_pull(skb, LL_HEADER_LENGTH + 2); 546 skb_pull(skb, LL_HEADER_LENGTH + 2);
547 ctcm_clear_busy(ch->netdev); 547 ctcm_clear_busy(ch->netdev);
548 return -ENOMEM; 548 return -ENOMEM;
@@ -553,7 +553,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
553 ch->ccw[1].count = skb->len; 553 ch->ccw[1].count = skb->len;
554 skb_copy_from_linear_data(skb, 554 skb_copy_from_linear_data(skb,
555 skb_put(ch->trans_skb, skb->len), skb->len); 555 skb_put(ch->trans_skb, skb->len), skb->len);
556 atomic_dec(&skb->users); 556 refcount_dec(&skb->users);
557 dev_kfree_skb_irq(skb); 557 dev_kfree_skb_irq(skb);
558 ccw_idx = 0; 558 ccw_idx = 0;
559 } else { 559 } else {
@@ -679,7 +679,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
679 679
680 if ((fsm_getstate(ch->fsm) != CTC_STATE_TXIDLE) || grp->in_sweep) { 680 if ((fsm_getstate(ch->fsm) != CTC_STATE_TXIDLE) || grp->in_sweep) {
681 spin_lock_irqsave(&ch->collect_lock, saveflags); 681 spin_lock_irqsave(&ch->collect_lock, saveflags);
682 atomic_inc(&skb->users); 682 refcount_inc(&skb->users);
683 p_header = kmalloc(PDU_HEADER_LENGTH, gfp_type()); 683 p_header = kmalloc(PDU_HEADER_LENGTH, gfp_type());
684 684
685 if (!p_header) { 685 if (!p_header) {
@@ -716,7 +716,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
716 * Protect skb against beeing free'd by upper 716 * Protect skb against beeing free'd by upper
717 * layers. 717 * layers.
718 */ 718 */
719 atomic_inc(&skb->users); 719 refcount_inc(&skb->users);
720 720
721 /* 721 /*
722 * IDAL support in CTCM is broken, so we have to 722 * IDAL support in CTCM is broken, so we have to
@@ -729,8 +729,8 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
729 goto nomem_exit; 729 goto nomem_exit;
730 } else { 730 } else {
731 skb_put_data(nskb, skb->data, skb->len); 731 skb_put_data(nskb, skb->data, skb->len);
732 atomic_inc(&nskb->users); 732 refcount_inc(&nskb->users);
733 atomic_dec(&skb->users); 733 refcount_dec(&skb->users);
734 dev_kfree_skb_irq(skb); 734 dev_kfree_skb_irq(skb);
735 skb = nskb; 735 skb = nskb;
736 } 736 }
@@ -810,7 +810,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
810 ch->trans_skb->len = 0; 810 ch->trans_skb->len = 0;
811 ch->ccw[1].count = skb->len; 811 ch->ccw[1].count = skb->len;
812 skb_put_data(ch->trans_skb, skb->data, skb->len); 812 skb_put_data(ch->trans_skb, skb->data, skb->len);
813 atomic_dec(&skb->users); 813 refcount_dec(&skb->users);
814 dev_kfree_skb_irq(skb); 814 dev_kfree_skb_irq(skb);
815 ccw_idx = 0; 815 ccw_idx = 0;
816 CTCM_PR_DBGDATA("%s(%s): trans_skb len: %04x\n" 816 CTCM_PR_DBGDATA("%s(%s): trans_skb len: %04x\n"
@@ -855,7 +855,7 @@ nomem_exit:
855 "%s(%s): MEMORY allocation ERROR\n", 855 "%s(%s): MEMORY allocation ERROR\n",
856 CTCM_FUNTAIL, ch->id); 856 CTCM_FUNTAIL, ch->id);
857 rc = -ENOMEM; 857 rc = -ENOMEM;
858 atomic_dec(&skb->users); 858 refcount_dec(&skb->users);
859 dev_kfree_skb_any(skb); 859 dev_kfree_skb_any(skb);
860 fsm_event(priv->mpcg->fsm, MPCG_EVENT_INOP, dev); 860 fsm_event(priv->mpcg->fsm, MPCG_EVENT_INOP, dev);
861done: 861done: