Commit d6732489 authored by David L Stevens's avatar David L Stevens Committed by David S. Miller

sunvnet: rename vnet_port_alloc_tx_bufs and move after version negotiation

This patch changes the name of vnet_port_alloc_tx_bufs to
vnet_port_alloc_tx_ring, since there are no buffer allocations after
transmit zero copy support was added. This patch also moves the ring
allocation to after VIO version negotiation to allow for
different-sized descriptors in later VIO versions.
Signed-off-by: default avatarDavid L Stevens <david.stevens@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bc6aaa14
...@@ -73,13 +73,19 @@ static int vnet_handle_unknown(struct vnet_port *port, void *arg) ...@@ -73,13 +73,19 @@ static int vnet_handle_unknown(struct vnet_port *port, void *arg)
return -ECONNRESET; return -ECONNRESET;
} }
static int vnet_port_alloc_tx_ring(struct vnet_port *port);
static int vnet_send_attr(struct vio_driver_state *vio) static int vnet_send_attr(struct vio_driver_state *vio)
{ {
struct vnet_port *port = to_vnet_port(vio); struct vnet_port *port = to_vnet_port(vio);
struct net_device *dev = port->vp->dev; struct net_device *dev = port->vp->dev;
struct vio_net_attr_info pkt; struct vio_net_attr_info pkt;
int framelen = ETH_FRAME_LEN; int framelen = ETH_FRAME_LEN;
int i; int i, err;
err = vnet_port_alloc_tx_ring(to_vnet_port(vio));
if (err)
return err;
memset(&pkt, 0, sizeof(pkt)); memset(&pkt, 0, sizeof(pkt));
pkt.tag.type = VIO_TYPE_CTRL; pkt.tag.type = VIO_TYPE_CTRL;
...@@ -1361,7 +1367,7 @@ static void vnet_port_free_tx_bufs(struct vnet_port *port) ...@@ -1361,7 +1367,7 @@ static void vnet_port_free_tx_bufs(struct vnet_port *port)
} }
} }
static int vnet_port_alloc_tx_bufs(struct vnet_port *port) static int vnet_port_alloc_tx_ring(struct vnet_port *port)
{ {
struct vio_dring_state *dr; struct vio_dring_state *dr;
unsigned long len; unsigned long len;
...@@ -1640,10 +1646,6 @@ static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id) ...@@ -1640,10 +1646,6 @@ static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
netif_napi_add(port->vp->dev, &port->napi, vnet_poll, NAPI_POLL_WEIGHT); netif_napi_add(port->vp->dev, &port->napi, vnet_poll, NAPI_POLL_WEIGHT);
err = vnet_port_alloc_tx_bufs(port);
if (err)
goto err_out_free_ldc;
INIT_HLIST_NODE(&port->hash); INIT_HLIST_NODE(&port->hash);
INIT_LIST_HEAD(&port->list); INIT_LIST_HEAD(&port->list);
...@@ -1677,10 +1679,6 @@ static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id) ...@@ -1677,10 +1679,6 @@ static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
return 0; return 0;
err_out_free_ldc:
netif_napi_del(&port->napi);
vio_ldc_free(&port->vio);
err_out_free_port: err_out_free_port:
kfree(port); kfree(port);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment