diff options
Diffstat (limited to 'drivers/net/tokenring/smctr.c')
-rw-r--r-- | drivers/net/tokenring/smctr.c | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c index 54ad4ed..ebda61bc4 100644 --- a/drivers/net/tokenring/smctr.c +++ b/drivers/net/tokenring/smctr.c @@ -234,7 +234,8 @@ static int smctr_rx_frame(struct net_device *dev); /* S */ static int smctr_send_dat(struct net_device *dev); -static int smctr_send_packet(struct sk_buff *skb, struct net_device *dev); +static netdev_tx_t smctr_send_packet(struct sk_buff *skb, + struct net_device *dev); static int smctr_send_lobe_media_test(struct net_device *dev); static int smctr_send_rpt_addr(struct net_device *dev, MAC_HEADER *rmf, __u16 correlator); @@ -3091,11 +3092,7 @@ static int smctr_lobe_media_test(struct net_device *dev) /* Setup the lobe media test. */ smctr_lobe_media_test_cmd(dev); if(smctr_wait_cmd(dev)) - { - smctr_reset_adapter(dev); - tp->status = CLOSED; - return (LOBE_MEDIA_TEST_FAILED); - } + goto err; /* Tx lobe media test frames. */ for(i = 0; i < 1500; ++i) @@ -3103,20 +3100,12 @@ static int smctr_lobe_media_test(struct net_device *dev) if(smctr_send_lobe_media_test(dev)) { if(perror) - { - smctr_reset_adapter(dev); - tp->state = CLOSED; - return (LOBE_MEDIA_TEST_FAILED); - } + goto err; else { perror = 1; if(smctr_lobe_media_test_cmd(dev)) - { - smctr_reset_adapter(dev); - tp->state = CLOSED; - return (LOBE_MEDIA_TEST_FAILED); - } + goto err; } } } @@ -3124,28 +3113,24 @@ static int smctr_lobe_media_test(struct net_device *dev) if(smctr_send_dat(dev)) { if(smctr_send_dat(dev)) - { - smctr_reset_adapter(dev); - tp->state = CLOSED; - return (LOBE_MEDIA_TEST_FAILED); - } + goto err; } /* Check if any frames received during test. */ if((tp->rx_fcb_curr[MAC_QUEUE]->frame_status) || (tp->rx_fcb_curr[NON_MAC_QUEUE]->frame_status)) - { - smctr_reset_adapter(dev); - tp->state = CLOSED; - return (LOBE_MEDIA_TEST_FAILED); - } + goto err; /* Set receive mask to "Promisc" mode. */ tp->receive_mask = saved_rcv_mask; smctr_chg_rx_mask(dev); - return (0); + return 0; +err: + smctr_reset_adapter(dev); + tp->status = CLOSED; + return LOBE_MEDIA_TEST_FAILED; } static int smctr_lobe_media_test_cmd(struct net_device *dev) @@ -4587,7 +4572,8 @@ static void smctr_timeout(struct net_device *dev) /* * Gets skb from system, queues it and checks if it can be sent */ -static int smctr_send_packet(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t smctr_send_packet(struct sk_buff *skb, + struct net_device *dev) { struct net_local *tp = netdev_priv(dev); @@ -4609,7 +4595,7 @@ static int smctr_send_packet(struct sk_buff *skb, struct net_device *dev) if(tp->QueueSkb > 0) netif_wake_queue(dev); - return (0); + return NETDEV_TX_OK; } static int smctr_send_lobe_media_test(struct net_device *dev) |