From 440e7926fbfc419115a85b61d3c740f640b68756 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 17 Sep 2007 05:12:47 +0100 Subject: [PATCH] Dead code removal --- src/drivers/net/mlx_ipoib/mt25218.c | 475 +--------------------------- src/include/gpxe/infiniband.h | 63 ---- 2 files changed, 5 insertions(+), 533 deletions(-) diff --git a/src/drivers/net/mlx_ipoib/mt25218.c b/src/drivers/net/mlx_ipoib/mt25218.c index 6aa4e7fe..da33e97b 100644 --- a/src/drivers/net/mlx_ipoib/mt25218.c +++ b/src/drivers/net/mlx_ipoib/mt25218.c @@ -35,291 +35,8 @@ struct ib_address_vector hack_ipoib_bcast_av; -static const struct ib_gid arbel_no_gid = { - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 } -}; -#if 0 - -#define MLX_RX_MAX_FILL NUM_IPOIB_RCV_WQES - -struct mlx_nic { -#if ! CREATE_OWN - /** Queue pair handle */ - udqp_t ipoib_qph; - /** Send completion queue */ - cq_t snd_cqh; - /** Receive completion queue */ - cq_t rcv_cqh; -#endif - /** Broadcast Address Vector */ - ud_av_t bcast_av; - - /** RX fill level */ - unsigned int rx_fill; - -#if CREATE_OWN - struct ib_completion_queue *own_send_cq; - struct ib_completion_queue *own_recv_cq; - struct ib_queue_pair *own_qp; -#endif -}; - - -static struct io_buffer *static_ipoib_tx_ring[NUM_IPOIB_SND_WQES]; -static struct io_buffer *static_ipoib_rx_ring[NUM_IPOIB_RCV_WQES]; - -static struct arbel static_arbel; - -#if ! CREATE_OWN - -static struct arbel_completion_queue static_arbel_ipoib_send_cq = { - .ci_doorbell_idx = IPOIB_SND_CQ_CI_DB_IDX, -}; -static struct ib_completion_queue static_ipoib_send_cq = { - .cqn = 1234, /* Only used for debug messages */ - .num_cqes = NUM_IPOIB_SND_CQES, - .work_queues = LIST_HEAD_INIT ( static_ipoib_send_cq.work_queues ), - .dev_priv = &static_arbel_ipoib_send_cq, -}; - -static struct arbel_completion_queue static_arbel_ipoib_recv_cq = { - .ci_doorbell_idx = IPOIB_RCV_CQ_CI_DB_IDX, -}; -static struct ib_completion_queue static_ipoib_recv_cq = { - .cqn = 2345, /* Only used for debug messages */ - .num_cqes = NUM_IPOIB_RCV_CQES, - .work_queues = LIST_HEAD_INIT ( static_ipoib_recv_cq.work_queues ), - .dev_priv = &static_arbel_ipoib_recv_cq, -}; - -static struct arbel_queue_pair static_arbel_ipoib_qp = { - .send = { - .doorbell_idx = IPOIB_SND_QP_DB_IDX, - }, - .recv = { - .doorbell_idx = IPOIB_RCV_QP_DB_IDX, - }, -}; -static struct ib_queue_pair static_ipoib_qp = { - .send = { - .qp = &static_ipoib_qp, - .is_send = 1, - .cq = &static_ipoib_send_cq, - .num_wqes = NUM_IPOIB_SND_WQES, - .iobufs = static_ipoib_tx_ring, - .list = LIST_HEAD_INIT (static_ipoib_qp.send.list), - .dev_priv = &static_arbel_ipoib_qp.send, - }, - .recv = { - .qp = &static_ipoib_qp, - .is_send = 0, - .cq = &static_ipoib_recv_cq, - .num_wqes = NUM_IPOIB_RCV_WQES, - .iobufs = static_ipoib_rx_ring, - .list = LIST_HEAD_INIT (static_ipoib_qp.recv.list), - .dev_priv = &static_arbel_ipoib_qp.recv, - }, - .dev_priv = &static_arbel_ipoib_qp, -}; - -#endif - - -static struct ib_device static_ibdev = { - .dev_priv = &static_arbel, -}; - - -/** - * Open network device - * - * @v netdev Network device - * @ret rc Return status code - */ -static int mlx_open ( struct net_device *netdev ) { - - ( void ) netdev; - - return 0; -} - -/** - * Close network device - * - * @v netdev Network device - */ -static void mlx_close ( struct net_device *netdev ) { - - ( void ) netdev; - -} - -static int arbel_post_send ( struct ib_device *ibdev, - struct ib_queue_pair *qp, - struct ib_address_vector *av, - struct io_buffer *iobuf ); - -static int mlx_transmit_direct ( struct net_device *netdev, - struct io_buffer *iobuf ) { - struct mlx_nic *mlx = netdev->priv; - int rc; - - struct ud_av_st *bcast_av = mlx->bcast_av; - struct arbelprm_ud_address_vector *bav = - ( struct arbelprm_ud_address_vector * ) &bcast_av->av; - struct ib_address_vector av = { - .dest_qp = bcast_av->dest_qp, - .qkey = bcast_av->qkey, - .dlid = MLX_GET ( bav, rlid ), - .rate = ( MLX_GET ( bav, max_stat_rate ) ? 1 : 4 ), - .sl = MLX_GET ( bav, sl ), - .gid_present = 1, - }; - memcpy ( &av.gid, ( ( void * ) bav ) + 16, 16 ); - - rc = arbel_post_send ( &static_ibdev, -#if CREATE_OWN - mlx->own_qp, -#else - &static_ipoib_qp, -#endif - &av, iobuf ); - - return rc; -} - -static void arbel_poll_cq ( struct ib_device *ibdev, - struct ib_completion_queue *cq, - ib_completer_t complete_send, - ib_completer_t complete_recv ); - -static void temp_complete_send ( struct ib_device *ibdev __unused, - struct ib_queue_pair *qp, - struct ib_completion *completion, - struct io_buffer *iobuf ) { - struct net_device *netdev = qp->owner_priv; - - DBG ( "Wahey! TX completion\n" ); - netdev_tx_complete_err ( netdev, iobuf, - ( completion->syndrome ? -EIO : 0 ) ); -} - -static void temp_complete_recv ( struct ib_device *ibdev __unused, - struct ib_queue_pair *qp, - struct ib_completion *completion, - struct io_buffer *iobuf ) { - struct net_device *netdev = qp->owner_priv; - struct mlx_nic *mlx = netdev->priv; - - DBG ( "Yay! RX completion on %p len %zx:\n", iobuf, completion->len ); - if ( completion->syndrome ) { - netdev_rx_err ( netdev, iobuf, -EIO ); - } else { - iob_put ( iobuf, completion->len ); - iob_pull ( iobuf, sizeof ( struct ib_global_route_header ) ); - netdev_rx ( netdev, iobuf ); - } - - mlx->rx_fill--; -} - -static int arbel_post_recv ( struct ib_device *ibdev, - struct ib_queue_pair *qp, - struct io_buffer *iobuf ); - -static void mlx_refill_rx ( struct net_device *netdev ) { - struct mlx_nic *mlx = netdev->priv; - struct io_buffer *iobuf; - int rc; - - while ( mlx->rx_fill < MLX_RX_MAX_FILL ) { - iobuf = alloc_iob ( 2048 ); - if ( ! iobuf ) - break; - DBG ( "Posting RX buffer %p:\n", iobuf ); - if ( ( rc = arbel_post_recv ( &static_ibdev, -#if CREATE_OWN - mlx->own_qp, -#else - &static_ipoib_qp, -#endif - iobuf ) ) != 0 ) { - free_iob ( iobuf ); - break; - } - mlx->rx_fill++; - } -} - -/** - * Poll for completed and received packets - * - * @v netdev Network device - */ -static void mlx_poll ( struct net_device *netdev ) { - struct mlx_nic *mlx = netdev->priv; - int rc; - - if ( ( rc = poll_error_buf() ) != 0 ) { - DBG ( "poll_error_buf() failed: %s\n", strerror ( rc ) ); - return; - } - - /* Drain event queue. We can ignore events, since we're going - * to just poll all completion queues anyway. - */ - if ( ( rc = drain_eq() ) != 0 ) { - DBG ( "drain_eq() failed: %s\n", strerror ( rc ) ); - return; - } - - /* Poll completion queues */ - arbel_poll_cq ( &static_ibdev, -#if CREATE_OWN - mlx->own_send_cq, -#else - &static_ipoib_send_cq, -#endif - temp_complete_send, temp_complete_recv ); -#if 0 - arbel_poll_cq ( &static_ibdev, -#if CREATE_OWN - mlx->own_recv_cq, -#else - &static_ipoib_recv_cq, -#endif - temp_complete_send, temp_complete_recv ); -#endif - - mlx_refill_rx ( netdev ); -} - -/** - * Enable or disable interrupts - * - * @v netdev Network device - * @v enable Interrupts should be enabled - */ -static void mlx_irq ( struct net_device *netdev, int enable ) { - - ( void ) netdev; - ( void ) enable; - -} - -static struct net_device_operations mlx_operations = { - .open = mlx_open, - .close = mlx_close, - .transmit = mlx_transmit_direct, - .poll = mlx_poll, - .irq = mlx_irq, -}; - - -#endif /* 0 */ - /*************************************************************************** @@ -1030,6 +747,11 @@ static void arbel_ring_doorbell ( struct arbel *arbel, writel ( db_reg->dword[1], ( arbel->uar + offset + 4 ) ); } +/** GID used for GID-less send work queue entries */ +static const struct ib_gid arbel_no_gid = { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 } +}; + /** * Post send work queue entry * @@ -1500,193 +1222,6 @@ static int arbel_get_port_gid ( struct arbel *arbel, struct ib_gid *gid ) { -#if 0 - -/** - * Probe PCI device - * - * @v pci PCI device - * @v id PCI ID - * @ret rc Return status code - */ -static int arbel_probe ( struct pci_device *pci, - const struct pci_device_id *id __unused ) { - struct net_device *netdev; - struct arbelprm_query_dev_lim dev_lim; - struct arbel *arbel = &static_arbel; - struct mlx_nic *mlx; - struct ib_mac *mac; - udqp_t qph; - int rc; - - /* Allocate net device */ - netdev = alloc_ibdev ( sizeof ( *mlx ) ); - if ( ! netdev ) - return -ENOMEM; - netdev_init ( netdev, &mlx_operations ); - mlx = netdev->priv; - pci_set_drvdata ( pci, netdev ); - netdev->dev = &pci->dev; - memset ( mlx, 0, sizeof ( *mlx ) ); - - /* Fix up PCI device */ - adjust_pci_device ( pci ); - - /* Initialise hardware */ - if ( ( rc = ib_driver_init ( pci, &qph ) ) != 0 ) - goto err_ipoib_init; - mlx->bcast_av = ib_data.bcast_av; -#if ! CREATE_OWN - mlx->ipoib_qph = qph; - mlx->snd_cqh = ib_data.ipoib_snd_cq; - mlx->rcv_cqh = ib_data.ipoib_rcv_cq; - mac = ( ( struct ib_mac * ) netdev->ll_addr ); - mac->qpn = htonl ( ib_get_qpn ( mlx->ipoib_qph ) ); - memcpy ( &mac->gid, ib_data.port_gid.raw, sizeof ( mac->gid ) ); -#endif - - /* Hack up IB structures */ - arbel->config = memfree_pci_dev.cr_space; - arbel->mailbox_in = dev_buffers_p->inprm_buf; - arbel->mailbox_out = dev_buffers_p->outprm_buf; - arbel->uar = memfree_pci_dev.uar; - arbel->db_rec = dev_ib_data.uar_context_base; - arbel->reserved_lkey = dev_ib_data.mkey; - arbel->eqn = dev_ib_data.eq.eqn; -#if ! CREATE_OWN - static_arbel_ipoib_qp.send.wqe = - ( ( struct udqp_st * ) qph )->snd_wq; - static_arbel_ipoib_qp.recv.wqe = - ( ( struct udqp_st * ) qph )->rcv_wq; - static_arbel_ipoib_send_cq.cqe = - ( ( struct cq_st * ) ib_data.ipoib_snd_cq )->cq_buf; - static_arbel_ipoib_recv_cq.cqe = - ( ( struct cq_st * ) ib_data.ipoib_rcv_cq )->cq_buf; - static_ipoib_qp.qpn = ib_get_qpn ( qph ); - static_ipoib_qp.owner_priv = netdev; - list_add ( &static_ipoib_qp.send.list, - &static_ipoib_send_cq.work_queues ); - list_add ( &static_ipoib_qp.recv.list, - &static_ipoib_recv_cq.work_queues ); -#endif - static_ibdev.op = &arbel_ib_operations; - - /* Get device limits */ - if ( ( rc = arbel_cmd_query_dev_lim ( arbel, &dev_lim ) ) != 0 ) { - DBGC ( arbel, "Arbel %p could not get device limits: %s\n", - arbel, strerror ( rc ) ); - goto err_query_dev_lim; - } - arbel->limits.reserved_uars = MLX_GET ( &dev_lim, num_rsvd_uars ); - arbel->limits.reserved_cqs = - ( 1 << MLX_GET ( &dev_lim, log2_rsvd_cqs ) ); - arbel->limits.reserved_qps = - ( 1 << MLX_GET ( &dev_lim, log2_rsvd_qps ) ); - -#if CREATE_OWN - struct ib_device *ibdev = &static_ibdev; - mlx->own_send_cq = ib_create_cq ( ibdev, 32 ); - if ( ! mlx->own_send_cq ) { - DBG ( "Could not create send CQ\n" ); - return -EIO; - } -#if 0 - mlx->own_recv_cq = ib_create_cq ( ibdev, 32 ); - if ( ! mlx->own_recv_cq ) { - DBG ( "Could not create send CQ\n" ); - return -EIO; - } -#endif - mlx->own_qp = ib_create_qp ( ibdev, NUM_IPOIB_SND_WQES, - mlx->own_send_cq, NUM_IPOIB_RCV_WQES, - //mlx->own_recv_cq, ipoib_qkey ); - mlx->own_send_cq, ipoib_qkey ); - if ( ! mlx->own_qp ) { - DBG ( "Could not create QP\n" ); - return -EIO; - } - mlx->own_qp->owner_priv = netdev; - struct ib_gid *bcast_gid = ( struct ib_gid * ) &ib_data.bcast_gid; - if ( ( rc = ib_mcast_attach ( ibdev, mlx->own_qp, - bcast_gid ) ) != 0 ) { - DBG ( "Could not attach to broadcast GID: %s\n", - strerror ( rc ) ); - return rc; - } - - if ( ( rc = arbel_get_port_gid ( arbel, &ibdev->port_gid ) ) != 0 ) { - DBGC ( arbel, "Arbel %p could not determine port GID: %s\n", - arbel, strerror ( rc ) ); - return rc; - } - - DBG ( "Port GID:\n" ); - DBG_HD ( &ibdev->port_gid, sizeof ( ibdev->port_gid ) ); - - - mac = ( ( struct ib_mac * ) netdev->ll_addr ); - mac->qpn = htonl ( mlx->own_qp->qpn ); - memcpy ( &mac->gid, &ibdev->port_gid, sizeof ( mac->gid ) ); -#endif - -#if 0 - DBG ( "MADS SND CQN = %#lx\n", dev_ib_data.mads_qp.snd_cq.cqn ); - struct ib_completion_queue *test_cq; - test_cq = ib_create_cq ( &static_ibdev, 32 ); - if ( test_cq ) { - DBG ( "Woot: create_cq() passed!\n" ); - } -#endif - - ibdev->dev = &pci->dev; - - - struct ud_av_st *bcast_av = mlx->bcast_av; - struct arbelprm_ud_address_vector *bav = - ( struct arbelprm_ud_address_vector * ) &bcast_av->av; - struct ib_address_vector *av = &hack_ipoib_bcast_av; - av->dest_qp = bcast_av->dest_qp; - av->qkey = bcast_av->qkey; - av->dlid = MLX_GET ( bav, rlid ); - av->rate = ( MLX_GET ( bav, max_stat_rate ) ? 1 : 4 ); - av->sl = MLX_GET ( bav, sl ); - av->gid_present = 1; - memcpy ( &av->gid, ( ( void * ) bav ) + 16, 16 ); - - - /* Register network device */ - if ( ( rc = register_netdev ( netdev ) ) != 0 ) - goto err_register_netdev; - - return 0; - - err_query_dev_lim: - err_register_netdev: - err_ipoib_init: - ib_driver_close ( 0 ); - netdev_nullify ( netdev ); - netdev_put ( netdev ); - return rc; -} - -/** - * Remove PCI device - * - * @v pci PCI device - */ -static void arbel_remove ( struct pci_device *pci ) { - struct net_device *netdev = pci_get_drvdata ( pci ); - - unregister_netdev ( netdev ); - ib_driver_close ( 0 ); - netdev_nullify ( netdev ); - netdev_put ( netdev ); -} - -#endif /* 0 */ - - - /** * Probe PCI device * diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h index e9e0121d..236b2727 100644 --- a/src/include/gpxe/infiniband.h +++ b/src/include/gpxe/infiniband.h @@ -10,42 +10,6 @@ #include #include - - -#if 0 -/** Infiniband MAC address length */ -#define IB_ALEN 20 - -/** An Infiniband MAC address */ -struct ib_mac { - /** Queue pair number - * - * MSB must be zero; QPNs are only 24-bit. - */ - uint32_t qpn; - /** Port GID */ - struct ib_gid gid; -} __attribute__ (( packed )); - -/** Infiniband link-layer header length */ -#define IB_HLEN 4 - -/** An Infiniband link-layer header */ -struct ibhdr { - /** Network-layer protocol */ - uint16_t proto; - /** Reserved, must be zero */ - uint16_t reserved; -} __attribute__ (( packed )); -#endif - - - - - - - - /** An Infiniband Global Identifier */ struct ib_gid { uint8_t bytes[16]; @@ -511,31 +475,4 @@ union ib_mad { struct ib_mad_port_info port_info; } __attribute__ (( packed )); - - - -#if 0 - -extern struct ll_protocol infiniband_protocol; - -extern const char * ib_ntoa ( const void *ll_addr ); - -/** - * Allocate Infiniband device - * - * @v priv_size Size of driver private data - * @ret netdev Network device, or NULL - */ -static inline struct net_device * alloc_ibdev ( size_t priv_size ) { - struct net_device *netdev; - - netdev = alloc_netdev ( priv_size ); - if ( netdev ) { - netdev->ll_protocol = &infiniband_protocol; - } - return netdev; -} - -#endif - #endif /* _GPXE_INFINIBAND_H */