master/ethernet.c
changeset 1552 c9e2c3be294e
parent 1500 ed1a733efbc5
child 1561 89f6cd5b90ff
equal deleted inserted replaced
1551:82a9eaba8a8b 1552:c9e2c3be294e
   183  * Unregisteres the net_device and frees allocated memory.
   183  * Unregisteres the net_device and frees allocated memory.
   184  */
   184  */
   185 void ec_eoe_clear(ec_eoe_t *eoe /**< EoE handler */)
   185 void ec_eoe_clear(ec_eoe_t *eoe /**< EoE handler */)
   186 {
   186 {
   187     unregister_netdev(eoe->dev); // possibly calls close callback
   187     unregister_netdev(eoe->dev); // possibly calls close callback
   188     free_netdev(eoe->dev);
       
   189 
   188 
   190     // empty transmit queue
   189     // empty transmit queue
   191     ec_eoe_flush(eoe);
   190     ec_eoe_flush(eoe);
   192 
   191 
   193     if (eoe->tx_frame) {
   192     if (eoe->tx_frame) {
   194         dev_kfree_skb(eoe->tx_frame->skb);
   193         dev_kfree_skb(eoe->tx_frame->skb);
   195         kfree(eoe->tx_frame);
   194         kfree(eoe->tx_frame);
   196     }
   195     }
   197 
   196 
   198     if (eoe->rx_skb) dev_kfree_skb(eoe->rx_skb);
   197     if (eoe->rx_skb)
       
   198         dev_kfree_skb(eoe->rx_skb);
       
   199 
       
   200     free_netdev(eoe->dev);
   199 
   201 
   200     ec_datagram_clear(&eoe->datagram);
   202     ec_datagram_clear(&eoe->datagram);
   201 }
   203 }
   202 
   204 
   203 /*****************************************************************************/
   205 /*****************************************************************************/