[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] More cleanups and g/c of unused code.
# HG changeset patch # User cl349@xxxxxxxxxxxxxxxxxxxx # Node ID 488bdf86c686a8ec7bccefe706417b08940f02d2 # Parent 4abd299ef2f6047d7205bebc127a5883d6ec6792 More cleanups and g/c of unused code. Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx> diff -r 4abd299ef2f6 -r 488bdf86c686 linux-2.6-xen-sparse/drivers/xen/netback/common.h --- a/linux-2.6-xen-sparse/drivers/xen/netback/common.h Thu Aug 25 14:16:38 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/common.h Thu Aug 25 14:40:15 2005 @@ -83,12 +83,6 @@ /* Miscellaneous private stuff. */ enum { DISCONNECTED, DISCONNECTING, CONNECTED } status; int active; - /* - * DISCONNECT response is deferred until pending requests are ack'ed. - * We therefore need to store the id from the original request. - */ - u8 disconnect_rspid; - struct netif_st *hash_next; struct list_head list; /* scheduling list */ atomic_t refcnt; struct net_device *dev; @@ -97,12 +91,8 @@ struct work_struct free_work; } netif_t; -int netif_create(netif_t *netif); -void netif_destroy(netif_be_destroy_t *destroy); -void netif_creditlimit(netif_be_creditlimit_t *creditlimit); -int netif_disconnect(netif_be_disconnect_t *disconnect, u8 rsp_id); -void netif_disconnect_complete(netif_t *netif); -netif_t *netif_find_by_handle(domid_t domid, unsigned int handle); +void netif_creditlimit(netif_t *netif); +int netif_disconnect(netif_t *netif); netif_t *alloc_netif(domid_t domid, unsigned int handle, u8 be_mac[ETH_ALEN]); void free_netif_callback(netif_t *netif); @@ -116,8 +106,7 @@ free_netif_callback(_b); \ } while (0) -void netif_interface_init(void); -void netif_ctrlif_init(void); +void netif_xenbus_init(void); void netif_schedule_work(netif_t *netif); void netif_deschedule_work(netif_t *netif); diff -r 4abd299ef2f6 -r 488bdf86c686 linux-2.6-xen-sparse/drivers/xen/netback/interface.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/interface.c Thu Aug 25 14:16:38 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/interface.c Thu Aug 25 14:40:15 2005 @@ -9,20 +9,6 @@ #include "common.h" #include <linux/rtnetlink.h> -#define NETIF_HASHSZ 1024 -#define NETIF_HASH(_d,_h) (((int)(_d)^(int)(_h))&(NETIF_HASHSZ-1)) - -static netif_t *netif_hash[NETIF_HASHSZ]; - -netif_t *netif_find_by_handle(domid_t domid, unsigned int handle) -{ - netif_t *netif = netif_hash[NETIF_HASH(domid, handle)]; - while ( (netif != NULL) && - ((netif->domid != domid) || (netif->handle != handle)) ) - netif = netif->hash_next; - return netif; -} - static void __netif_up(netif_t *netif) { struct net_device *dev = netif->dev; @@ -47,7 +33,7 @@ static int net_open(struct net_device *dev) { netif_t *netif = netdev_priv(dev); - if ( netif->status == CONNECTED ) + if (netif->status == CONNECTED) __netif_up(netif); netif_start_queue(dev); return 0; @@ -57,7 +43,7 @@ { netif_t *netif = netdev_priv(dev); netif_stop_queue(dev); - if ( netif->status == CONNECTED ) + if (netif->status == CONNECTED) __netif_down(netif); return 0; } @@ -66,15 +52,13 @@ { int err = 0, i; struct net_device *dev; - netif_t **pnetif, *netif; + netif_t *netif; char name[IFNAMSIZ] = {}; snprintf(name, IFNAMSIZ - 1, "vif%u.%u", domid, handle); dev = alloc_netdev(sizeof(netif_t), name, ether_setup); - if ( dev == NULL ) - { + if (dev == NULL) { DPRINTK("Could not create netif: out of memory\n"); - // create->status = NETIF_BE_STATUS_OUT_OF_MEMORY; return NULL; } @@ -90,19 +74,6 @@ netif->credit_usec = 0UL; init_timer(&netif->credit_timeout); - pnetif = &netif_hash[NETIF_HASH(domid, handle)]; - while ( *pnetif != NULL ) - { - if ( ((*pnetif)->domid == domid) && ((*pnetif)->handle == handle) ) - { - DPRINTK("Could not create netif: already exists\n"); - // create->status = NETIF_BE_STATUS_INTERFACE_EXISTS; - free_netdev(dev); - return NULL; - } - pnetif = &(*pnetif)->hash_next; - } - dev->hard_start_xmit = netif_be_start_xmit; dev->get_stats = netif_be_get_stats; dev->open = net_open; @@ -115,8 +86,7 @@ for (i = 0; i < ETH_ALEN; i++) if (be_mac[i] != 0) break; - if (i == ETH_ALEN) - { + if (i == ETH_ALEN) { /* * Initialise a dummy MAC address. We choose the numerically largest * non-broadcast address to prevent the address getting stolen by an @@ -124,30 +94,20 @@ */ memset(dev->dev_addr, 0xFF, ETH_ALEN); dev->dev_addr[0] &= ~0x01; - } - else - { + } else memcpy(dev->dev_addr, be_mac, ETH_ALEN); - } rtnl_lock(); err = register_netdevice(dev); rtnl_unlock(); - - if ( err != 0 ) - { + if (err) { DPRINTK("Could not register new net device %s: err=%d\n", dev->name, err); - // create->status = NETIF_BE_STATUS_OUT_OF_MEMORY; free_netdev(dev); return NULL; } - netif->hash_next = *pnetif; - *pnetif = netif; - DPRINTK("Successfully created netif\n"); - // create->status = NETIF_BE_STATUS_OKAY; return netif; } @@ -245,17 +205,9 @@ evtchn_op_t op = { .cmd = EVTCHNOP_bind_interdomain }; int err; -#if 0 - if ( netif->status != DISCONNECTED ) { - connect->status = NETIF_BE_STATUS_INTERFACE_CONNECTED; - return; - } -#endif - - if ( (vma = get_vm_area(2*PAGE_SIZE, VM_IOREMAP)) == NULL ) { - // connect->status = NETIF_BE_STATUS_OUT_OF_MEMORY; + vma = get_vm_area(2*PAGE_SIZE, VM_IOREMAP); + if (vma == NULL) return -ENOMEM; - } err = map_frontend_page(netif, (unsigned long)vma->addr, tx_ring_ref, rx_ring_ref); @@ -278,12 +230,8 @@ netif->evtchn = op.u.bind_interdomain.port1; netif->remote_evtchn = evtchn; - netif->tx_shmem_frame = tx_ring_ref; - netif->rx_shmem_frame = rx_ring_ref; - netif->tx = - (netif_tx_interface_t *)vma->addr; - netif->rx = - (netif_rx_interface_t *)((char *)vma->addr + PAGE_SIZE); + netif->tx = (netif_tx_interface_t *)vma->addr; + netif->rx = (netif_rx_interface_t *)((char *)vma->addr + PAGE_SIZE); netif->tx->resp_prod = netif->rx->resp_prod = 0; netif_get(netif); wmb(); /* Other CPUs see new state before interface is started. */ @@ -291,17 +239,17 @@ rtnl_lock(); netif->status = CONNECTED; wmb(); - if ( netif_running(netif->dev) ) + if (netif_running(netif->dev)) __netif_up(netif); rtnl_unlock(); - // connect->status = NETIF_BE_STATUS_OKAY; return 0; } static void free_netif(void *arg) { - netif_t *netif = (netif_t *)arg; + evtchn_op_t op = { .cmd = EVTCHNOP_close }; + netif_t *netif = (netif_t *)arg; /* * These can't be done in netif_disconnect() because at that point there @@ -309,10 +257,21 @@ * responses must still be notified to the remote driver. */ - unmap_frontend_page(netif); - vfree(netif->tx); /* Frees netif->rx as well. */ - - netif->status = DISCONNECTED; + op.u.close.port = netif->evtchn; + op.u.close.dom = DOMID_SELF; + HYPERVISOR_event_channel_op(&op); + op.u.close.port = netif->remote_evtchn; + op.u.close.dom = netif->domid; + HYPERVISOR_event_channel_op(&op); + + unregister_netdev(netif->dev); + + if (netif->tx) { + unmap_frontend_page(netif); + vfree(netif->tx); /* Frees netif->rx as well. */ + } + + free_netdev(netif->dev); } void free_netif_callback(netif_t *netif) @@ -321,59 +280,14 @@ schedule_work(&netif->free_work); } -void netif_destroy(netif_be_destroy_t *destroy) -{ - domid_t domid = destroy->domid; - unsigned int handle = destroy->netif_handle; - netif_t **pnetif, *netif; - - pnetif = &netif_hash[NETIF_HASH(domid, handle)]; - while ( (netif = *pnetif) != NULL ) - { - if ( (netif->domid == domid) && (netif->handle == handle) ) - { - if ( netif->status != DISCONNECTED ) - goto still_connected; - goto destroy; - } - pnetif = &netif->hash_next; - } - - destroy->status = NETIF_BE_STATUS_INTERFACE_NOT_FOUND; - return; - - still_connected: - destroy->status = NETIF_BE_STATUS_INTERFACE_CONNECTED; - return; - - destroy: - *pnetif = netif->hash_next; - unregister_netdev(netif->dev); - free_netdev(netif->dev); - destroy->status = NETIF_BE_STATUS_OKAY; -} - -void netif_creditlimit(netif_be_creditlimit_t *creditlimit) -{ - domid_t domid = creditlimit->domid; - unsigned int handle = creditlimit->netif_handle; - netif_t *netif; - - netif = netif_find_by_handle(domid, handle); - if ( unlikely(netif == NULL) ) - { - DPRINTK("netif_creditlimit attempted for non-existent netif" - " (%u,%u)\n", creditlimit->domid, creditlimit->netif_handle); - creditlimit->status = NETIF_BE_STATUS_INTERFACE_NOT_FOUND; - return; - } - +void netif_creditlimit(netif_t *netif) +{ +#if 0 /* Set the credit limit (reset remaining credit to new limit). */ netif->credit_bytes = netif->remaining_credit = creditlimit->credit_bytes; netif->credit_usec = creditlimit->period_usec; - if ( netif->status == CONNECTED ) - { + if (netif->status == CONNECTED) { /* * Schedule work so that any packets waiting under previous credit * limit are dealt with (acts like a replenishment point). @@ -381,43 +295,22 @@ netif->credit_timeout.expires = jiffies; netif_schedule_work(netif); } - - creditlimit->status = NETIF_BE_STATUS_OKAY; -} - -int netif_disconnect(netif_be_disconnect_t *disconnect, u8 rsp_id) -{ - domid_t domid = disconnect->domid; - unsigned int handle = disconnect->netif_handle; - netif_t *netif; - - netif = netif_find_by_handle(domid, handle); - if ( unlikely(netif == NULL) ) - { - DPRINTK("netif_disconnect attempted for non-existent netif" - " (%u,%u)\n", disconnect->domid, disconnect->netif_handle); - disconnect->status = NETIF_BE_STATUS_INTERFACE_NOT_FOUND; - return 1; /* Caller will send response error message. */ - } - - if ( netif->status == CONNECTED ) - { +#endif +} + +int netif_disconnect(netif_t *netif) +{ + + if (netif->status == CONNECTED) { rtnl_lock(); netif->status = DISCONNECTING; - netif->disconnect_rspid = rsp_id; wmb(); - if ( netif_running(netif->dev) ) + if (netif_running(netif->dev)) __netif_down(netif); rtnl_unlock(); netif_put(netif); return 0; /* Caller should not send response message. */ } - disconnect->status = NETIF_BE_STATUS_OKAY; return 1; } - -void netif_interface_init(void) -{ - memset(netif_hash, 0, sizeof(netif_hash)); -} diff -r 4abd299ef2f6 -r 488bdf86c686 linux-2.6-xen-sparse/drivers/xen/netback/netback.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Thu Aug 25 14:16:38 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Thu Aug 25 14:40:15 2005 @@ -966,8 +966,6 @@ net_timer.data = 0; net_timer.function = net_alarm; - netif_interface_init(); - page = balloon_alloc_empty_page_range(MAX_PENDING_REQS); BUG_ON(page == NULL); mmap_vstart = (unsigned long)pfn_to_kaddr(page_to_pfn(page)); diff -r 4abd299ef2f6 -r 488bdf86c686 linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c Thu Aug 25 14:16:38 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c Thu Aug 25 14:40:15 2005 @@ -109,58 +109,18 @@ return; } -#if 0 - /* Supply the information about the device the frontend needs */ - err = xenbus_transaction_start(be->dev->nodename); - if (err) { - xenbus_dev_error(be->dev, err, "starting transaction"); - return; - } - - err = xenbus_printf(be->dev->nodename, "sectors", "%lu", - vbd_size(&be->blkif->vbd)); - if (err) { - xenbus_dev_error(be->dev, err, "writing %s/sectors", - be->dev->nodename); - goto abort; - } - - /* FIXME: use a typename instead */ - err = xenbus_printf(be->dev->nodename, "info", "%u", - vbd_info(&be->blkif->vbd)); - if (err) { - xenbus_dev_error(be->dev, err, "writing %s/info", - be->dev->nodename); - goto abort; - } - err = xenbus_printf(be->dev->nodename, "sector-size", "%lu", - vbd_secsize(&be->blkif->vbd)); - if (err) { - xenbus_dev_error(be->dev, err, "writing %s/sector-size", - be->dev->nodename); - goto abort; - } -#endif - /* Map the shared frame, irq etc. */ err = netif_map(be->netif, tx_ring_ref, rx_ring_ref, evtchn); if (err) { xenbus_dev_error(be->dev, err, "mapping shared-frames %lu/%lu port %u", tx_ring_ref, rx_ring_ref, evtchn); - goto abort; - } - -#if 0 - xenbus_transaction_end(0); -#endif + return; + } + xenbus_dev_ok(be->dev); return; - -abort: - // xenbus_transaction_end(1); - ; } /* _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |