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: David L Stevens <david.stevens@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bc6aaa14e1
commit
d6732489f0
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue