diff options
| -rw-r--r-- | drivers/s390/net/claw.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c index da8aa75bb20b..f1fa2483ae6b 100644 --- a/drivers/s390/net/claw.c +++ b/drivers/s390/net/claw.c | |||
| @@ -845,12 +845,10 @@ claw_irq_tasklet ( unsigned long data ) | |||
| 845 | { | 845 | { |
| 846 | struct chbk * p_ch; | 846 | struct chbk * p_ch; |
| 847 | struct net_device *dev; | 847 | struct net_device *dev; |
| 848 | struct claw_privbk * privptr; | ||
| 849 | 848 | ||
| 850 | p_ch = (struct chbk *) data; | 849 | p_ch = (struct chbk *) data; |
| 851 | dev = (struct net_device *)p_ch->ndev; | 850 | dev = (struct net_device *)p_ch->ndev; |
| 852 | CLAW_DBF_TEXT(4, trace, "IRQtask"); | 851 | CLAW_DBF_TEXT(4, trace, "IRQtask"); |
| 853 | privptr = (struct claw_privbk *)dev->ml_priv; | ||
| 854 | unpack_read(dev); | 852 | unpack_read(dev); |
| 855 | clear_bit(CLAW_BH_ACTIVE, (void *)&p_ch->flag_a); | 853 | clear_bit(CLAW_BH_ACTIVE, (void *)&p_ch->flag_a); |
| 856 | CLAW_DBF_TEXT(4, trace, "TskletXt"); | 854 | CLAW_DBF_TEXT(4, trace, "TskletXt"); |
| @@ -1026,7 +1024,6 @@ claw_write_next ( struct chbk * p_ch ) | |||
| 1026 | struct net_device *dev; | 1024 | struct net_device *dev; |
| 1027 | struct claw_privbk *privptr=NULL; | 1025 | struct claw_privbk *privptr=NULL; |
| 1028 | struct sk_buff *pk_skb; | 1026 | struct sk_buff *pk_skb; |
| 1029 | int rc; | ||
| 1030 | 1027 | ||
| 1031 | CLAW_DBF_TEXT(4, trace, "claw_wrt"); | 1028 | CLAW_DBF_TEXT(4, trace, "claw_wrt"); |
| 1032 | if (p_ch->claw_state == CLAW_STOP) | 1029 | if (p_ch->claw_state == CLAW_STOP) |
| @@ -1038,7 +1035,7 @@ claw_write_next ( struct chbk * p_ch ) | |||
| 1038 | !skb_queue_empty(&p_ch->collect_queue)) { | 1035 | !skb_queue_empty(&p_ch->collect_queue)) { |
| 1039 | pk_skb = claw_pack_skb(privptr); | 1036 | pk_skb = claw_pack_skb(privptr); |
| 1040 | while (pk_skb != NULL) { | 1037 | while (pk_skb != NULL) { |
| 1041 | rc = claw_hw_tx( pk_skb, dev,1); | 1038 | claw_hw_tx(pk_skb, dev, 1); |
| 1042 | if (privptr->write_free_count > 0) { | 1039 | if (privptr->write_free_count > 0) { |
| 1043 | pk_skb = claw_pack_skb(privptr); | 1040 | pk_skb = claw_pack_skb(privptr); |
| 1044 | } else | 1041 | } else |
| @@ -1322,15 +1319,12 @@ claw_hw_tx(struct sk_buff *skb, struct net_device *dev, long linkid) | |||
| 1322 | unsigned char *pDataAddress; | 1319 | unsigned char *pDataAddress; |
| 1323 | struct endccw *pEnd; | 1320 | struct endccw *pEnd; |
| 1324 | struct ccw1 tempCCW; | 1321 | struct ccw1 tempCCW; |
| 1325 | struct chbk *p_ch; | ||
| 1326 | struct claw_env *p_env; | 1322 | struct claw_env *p_env; |
| 1327 | int lock; | ||
| 1328 | struct clawph *pk_head; | 1323 | struct clawph *pk_head; |
| 1329 | struct chbk *ch; | 1324 | struct chbk *ch; |
| 1330 | 1325 | ||
| 1331 | CLAW_DBF_TEXT(4, trace, "hw_tx"); | 1326 | CLAW_DBF_TEXT(4, trace, "hw_tx"); |
| 1332 | privptr = (struct claw_privbk *)(dev->ml_priv); | 1327 | privptr = (struct claw_privbk *)(dev->ml_priv); |
| 1333 | p_ch = (struct chbk *)&privptr->channel[WRITE_CHANNEL]; | ||
| 1334 | p_env =privptr->p_env; | 1328 | p_env =privptr->p_env; |
| 1335 | claw_free_wrt_buf(dev); /* Clean up free chain if posible */ | 1329 | claw_free_wrt_buf(dev); /* Clean up free chain if posible */ |
| 1336 | /* scan the write queue to free any completed write packets */ | 1330 | /* scan the write queue to free any completed write packets */ |
| @@ -1511,12 +1505,6 @@ claw_hw_tx(struct sk_buff *skb, struct net_device *dev, long linkid) | |||
| 1511 | 1505 | ||
| 1512 | } /* endif (p_first_ccw!=NULL) */ | 1506 | } /* endif (p_first_ccw!=NULL) */ |
| 1513 | dev_kfree_skb_any(skb); | 1507 | dev_kfree_skb_any(skb); |
| 1514 | if (linkid==0) { | ||
| 1515 | lock=LOCK_NO; | ||
| 1516 | } | ||
| 1517 | else { | ||
| 1518 | lock=LOCK_YES; | ||
| 1519 | } | ||
| 1520 | claw_strt_out_IO(dev ); | 1508 | claw_strt_out_IO(dev ); |
| 1521 | /* if write free count is zero , set NOBUFFER */ | 1509 | /* if write free count is zero , set NOBUFFER */ |
| 1522 | if (privptr->write_free_count==0) { | 1510 | if (privptr->write_free_count==0) { |
| @@ -2821,15 +2809,11 @@ claw_free_wrt_buf( struct net_device *dev ) | |||
| 2821 | { | 2809 | { |
| 2822 | 2810 | ||
| 2823 | struct claw_privbk *privptr = (struct claw_privbk *)dev->ml_priv; | 2811 | struct claw_privbk *privptr = (struct claw_privbk *)dev->ml_priv; |
| 2824 | struct ccwbk*p_first_ccw; | ||
| 2825 | struct ccwbk*p_last_ccw; | ||
| 2826 | struct ccwbk*p_this_ccw; | 2812 | struct ccwbk*p_this_ccw; |
| 2827 | struct ccwbk*p_next_ccw; | 2813 | struct ccwbk*p_next_ccw; |
| 2828 | 2814 | ||
| 2829 | CLAW_DBF_TEXT(4, trace, "freewrtb"); | 2815 | CLAW_DBF_TEXT(4, trace, "freewrtb"); |
| 2830 | /* scan the write queue to free any completed write packets */ | 2816 | /* scan the write queue to free any completed write packets */ |
| 2831 | p_first_ccw=NULL; | ||
| 2832 | p_last_ccw=NULL; | ||
| 2833 | p_this_ccw=privptr->p_write_active_first; | 2817 | p_this_ccw=privptr->p_write_active_first; |
| 2834 | while ( (p_this_ccw!=NULL) && (p_this_ccw->header.flag!=CLAW_PENDING)) | 2818 | while ( (p_this_ccw!=NULL) && (p_this_ccw->header.flag!=CLAW_PENDING)) |
| 2835 | { | 2819 | { |
| @@ -3072,7 +3056,7 @@ claw_shutdown_device(struct ccwgroup_device *cgdev) | |||
| 3072 | { | 3056 | { |
| 3073 | struct claw_privbk *priv; | 3057 | struct claw_privbk *priv; |
| 3074 | struct net_device *ndev; | 3058 | struct net_device *ndev; |
| 3075 | int ret; | 3059 | int ret = 0; |
| 3076 | 3060 | ||
| 3077 | CLAW_DBF_TEXT_(2, setup, "%s", dev_name(&cgdev->dev)); | 3061 | CLAW_DBF_TEXT_(2, setup, "%s", dev_name(&cgdev->dev)); |
| 3078 | priv = dev_get_drvdata(&cgdev->dev); | 3062 | priv = dev_get_drvdata(&cgdev->dev); |
| @@ -3095,7 +3079,7 @@ claw_shutdown_device(struct ccwgroup_device *cgdev) | |||
| 3095 | } | 3079 | } |
| 3096 | ccw_device_set_offline(cgdev->cdev[1]); | 3080 | ccw_device_set_offline(cgdev->cdev[1]); |
| 3097 | ccw_device_set_offline(cgdev->cdev[0]); | 3081 | ccw_device_set_offline(cgdev->cdev[0]); |
| 3098 | return 0; | 3082 | return ret; |
| 3099 | } | 3083 | } |
| 3100 | 3084 | ||
| 3101 | static void | 3085 | static void |
