diff options
Diffstat (limited to 'drivers/s390/net/ctcm_main.c')
-rw-r--r-- | drivers/s390/net/ctcm_main.c | 26 |
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); |
861 | done: | 861 | done: |