X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fark%2Fark_ethdev.c;h=4c807f8ddcc2711ab426b3b8546f12afb15df07a;hb=400d985eb586aae5ef009431cd251bd3d5c42ce2;hp=7692aa2d95719f180b5322c206a5dfd4f7ed956a;hpb=35b2d13fd6fdcbd191f2a30d74648faeb1186c65;p=dpdk.git diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c index 7692aa2d95..4c807f8ddc 100644 --- a/drivers/net/ark/ark_ethdev.c +++ b/drivers/net/ark/ark_ethdev.c @@ -78,6 +78,8 @@ static int eth_ark_set_mtu(struct rte_eth_dev *dev, uint16_t size); #define ARK_TX_MAX_QUEUE (4096 * 4) #define ARK_TX_MIN_QUEUE (256) +int ark_logtype; + static const char * const valid_arguments[] = { ARK_PKTGEN_ARG, ARK_PKTCHKR_ARG, @@ -241,8 +243,7 @@ check_for_ext(struct ark_adapter *ark) static int eth_ark_dev_init(struct rte_eth_dev *dev) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; struct rte_pci_device *pci_dev; int ret; int port_count = 1; @@ -262,6 +263,8 @@ eth_ark_dev_init(struct rte_eth_dev *dev) /* Use dummy function until setup */ dev->rx_pkt_burst = ð_ark_recv_pkts_noop; dev->tx_pkt_burst = ð_ark_xmit_pkts_noop; + /* Let rte_eth_dev_close() release the port resources */ + dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE; ark->bar0 = (uint8_t *)pci_dev->mem_resource[0].addr; ark->a_bar = (uint8_t *)pci_dev->mem_resource[2].addr; @@ -404,9 +407,9 @@ eth_ark_dev_init(struct rte_eth_dev *dev) return ret; - error: - if (dev->data->mac_addrs) - rte_free(dev->data->mac_addrs); +error: + rte_free(dev->data->mac_addrs); + dev->data->mac_addrs = NULL; return -1; } @@ -418,8 +421,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev) static int ark_config_device(struct rte_eth_dev *dev) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; uint16_t num_q, i; struct ark_mpu_t *mpu; @@ -494,8 +496,7 @@ ark_config_device(struct rte_eth_dev *dev) static int eth_ark_dev_uninit(struct rte_eth_dev *dev) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; @@ -517,8 +518,7 @@ static int eth_ark_dev_configure(struct rte_eth_dev *dev) { PMD_FUNC_LOG(DEBUG, "\n"); - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; eth_ark_dev_set_link_up(dev); if (ark->user_ext.dev_configure) @@ -544,8 +544,7 @@ delay_pg_start(void *arg) static int eth_ark_dev_start(struct rte_eth_dev *dev) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; int i; PMD_FUNC_LOG(DEBUG, "\n"); @@ -597,8 +596,7 @@ eth_ark_dev_stop(struct rte_eth_dev *dev) { uint16_t i; int status; - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; struct ark_mpu_t *mpu; PMD_FUNC_LOG(DEBUG, "\n"); @@ -688,8 +686,7 @@ eth_ark_dev_stop(struct rte_eth_dev *dev) static void eth_ark_dev_close(struct rte_eth_dev *dev) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; uint16_t i; if (ark->user_ext.dev_close) @@ -713,14 +710,16 @@ eth_ark_dev_close(struct rte_eth_dev *dev) eth_ark_dev_rx_queue_release(dev->data->rx_queues[i]); dev->data->rx_queues[i] = 0; } + + rte_free(dev->data->mac_addrs); + dev->data->mac_addrs = 0; } static void eth_ark_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; struct ark_mpu_t *tx_mpu = RTE_PTR_ADD(ark->bar0, ARK_MPU_TX_BASE); struct ark_mpu_t *rx_mpu = RTE_PTR_ADD(ark->bar0, ARK_MPU_RX_BASE); uint16_t ports = ark->num_ports; @@ -755,8 +754,7 @@ eth_ark_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete) { PMD_DEBUG_LOG(DEBUG, "link status = %d\n", dev->data->dev_link.link_status); - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.link_update) { return ark->user_ext.link_update @@ -770,8 +768,7 @@ static int eth_ark_dev_set_link_up(struct rte_eth_dev *dev) { dev->data->dev_link.link_status = 1; - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.dev_set_link_up) return ark->user_ext.dev_set_link_up(dev, @@ -783,8 +780,7 @@ static int eth_ark_dev_set_link_down(struct rte_eth_dev *dev) { dev->data->dev_link.link_status = 0; - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.dev_set_link_down) return ark->user_ext.dev_set_link_down(dev, @@ -796,8 +792,7 @@ static int eth_ark_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) { uint16_t i; - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; stats->ipackets = 0; stats->ibytes = 0; @@ -820,8 +815,7 @@ static void eth_ark_dev_stats_reset(struct rte_eth_dev *dev) { uint16_t i; - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; for (i = 0; i < dev->data->nb_tx_queues; i++) eth_tx_queue_stats_reset(dev->data->tx_queues[i]); @@ -838,8 +832,7 @@ eth_ark_macaddr_add(struct rte_eth_dev *dev, uint32_t index, uint32_t pool) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.mac_addr_add) { ark->user_ext.mac_addr_add(dev, @@ -855,8 +848,7 @@ eth_ark_macaddr_add(struct rte_eth_dev *dev, static void eth_ark_macaddr_remove(struct rte_eth_dev *dev, uint32_t index) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.mac_addr_remove) ark->user_ext.mac_addr_remove(dev, index, @@ -867,8 +859,7 @@ static int eth_ark_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.mac_addr_set) { ark->user_ext.mac_addr_set(dev, mac_addr, @@ -881,8 +872,7 @@ eth_ark_set_default_mac_addr(struct rte_eth_dev *dev, static int eth_ark_set_mtu(struct rte_eth_dev *dev, uint16_t size) { - struct ark_adapter *ark = - (struct ark_adapter *)dev->data->dev_private; + struct ark_adapter *ark = dev->data->dev_private; if (ark->user_ext.set_mtu) return ark->user_ext.set_mtu(dev, size, @@ -1024,3 +1014,10 @@ RTE_PMD_REGISTER_PARAM_STRING(net_ark, ARK_PKTGEN_ARG "= " ARK_PKTCHKR_ARG "= " ARK_PKTDIR_ARG "="); + +RTE_INIT(ark_init_log) +{ + ark_logtype = rte_log_register("pmd.net.ark"); + if (ark_logtype >= 0) + rte_log_set_level(ark_logtype, RTE_LOG_NOTICE); +}