diff options
Diffstat (limited to 'drivers/atm')
-rw-r--r-- | drivers/atm/zatm.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c index 55959e4d1cb7..f484747f255e 100644 --- a/drivers/atm/zatm.c +++ b/drivers/atm/zatm.c | |||
@@ -669,11 +669,13 @@ printk("NONONONOO!!!!\n"); | |||
669 | u32 *put; | 669 | u32 *put; |
670 | int i; | 670 | int i; |
671 | 671 | ||
672 | dsc = (u32 *) kmalloc(uPD98401_TXPD_SIZE*2+ | 672 | dsc = kmalloc(uPD98401_TXPD_SIZE * 2 + |
673 | uPD98401_TXBD_SIZE*ATM_SKB(skb)->iovcnt,GFP_ATOMIC); | 673 | uPD98401_TXBD_SIZE * ATM_SKB(skb)->iovcnt, GFP_ATOMIC); |
674 | if (!dsc) { | 674 | if (!dsc) { |
675 | if (vcc->pop) vcc->pop(vcc,skb); | 675 | if (vcc->pop) |
676 | else dev_kfree_skb_irq(skb); | 676 | vcc->pop(vcc, skb); |
677 | else | ||
678 | dev_kfree_skb_irq(skb); | ||
677 | return -EAGAIN; | 679 | return -EAGAIN; |
678 | } | 680 | } |
679 | /* @@@ should check alignment */ | 681 | /* @@@ should check alignment */ |
@@ -683,7 +685,7 @@ printk("NONONONOO!!!!\n"); | |||
683 | (ATM_SKB(skb)->atm_options & ATM_ATMOPT_CLP ? | 685 | (ATM_SKB(skb)->atm_options & ATM_ATMOPT_CLP ? |
684 | uPD98401_CLPM_1 : uPD98401_CLPM_0)); | 686 | uPD98401_CLPM_1 : uPD98401_CLPM_0)); |
685 | dsc[1] = 0; | 687 | dsc[1] = 0; |
686 | dsc[2] = ATM_SKB(skb)->iovcnt*uPD98401_TXBD_SIZE; | 688 | dsc[2] = ATM_SKB(skb)->iovcnt * uPD98401_TXBD_SIZE; |
687 | dsc[3] = virt_to_bus(put); | 689 | dsc[3] = virt_to_bus(put); |
688 | for (i = 0; i < ATM_SKB(skb)->iovcnt; i++) { | 690 | for (i = 0; i < ATM_SKB(skb)->iovcnt; i++) { |
689 | *put++ = ((struct iovec *) skb->data)[i].iov_len; | 691 | *put++ = ((struct iovec *) skb->data)[i].iov_len; |