Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 209849
b: refs/heads/master
c: 0645bab
h: refs/heads/master
i:
  209847: f201da8
v: v3
  • Loading branch information
Robert Jennings authored and David S. Miller committed Aug 19, 2010
1 parent 53d66f0 commit 7ff622d
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2928db4c3c62552d3caf9ab53ccc6f7ae9865a23
refs/heads/master: 0645bab7da3cb021157e5c661ef35f1d1226785a
32 changes: 15 additions & 17 deletions trunk/drivers/net/ibmveth.c
Original file line number Diff line number Diff line change
Expand Up @@ -1113,7 +1113,8 @@ static int ibmveth_change_mtu(struct net_device *dev, int new_mtu)
struct ibmveth_adapter *adapter = netdev_priv(dev);
struct vio_dev *viodev = adapter->vdev;
int new_mtu_oh = new_mtu + IBMVETH_BUFF_OH;
int i;
int i, rc;
int need_restart = 0;

if (new_mtu < IBMVETH_MAX_MTU)
return -EINVAL;
Expand All @@ -1127,35 +1128,32 @@ static int ibmveth_change_mtu(struct net_device *dev, int new_mtu)

/* Deactivate all the buffer pools so that the next loop can activate
only the buffer pools necessary to hold the new MTU */
for (i = 0; i < IbmVethNumBufferPools; i++)
if (adapter->rx_buff_pool[i].active) {
ibmveth_free_buffer_pool(adapter,
&adapter->rx_buff_pool[i]);
adapter->rx_buff_pool[i].active = 0;
}
if (netif_running(adapter->netdev)) {
need_restart = 1;
adapter->pool_config = 1;
ibmveth_close(adapter->netdev);
adapter->pool_config = 0;
}

/* Look for an active buffer pool that can hold the new MTU */
for(i = 0; i<IbmVethNumBufferPools; i++) {
adapter->rx_buff_pool[i].active = 1;

if (new_mtu_oh < adapter->rx_buff_pool[i].buff_size) {
if (netif_running(adapter->netdev)) {
adapter->pool_config = 1;
ibmveth_close(adapter->netdev);
adapter->pool_config = 0;
dev->mtu = new_mtu;
vio_cmo_set_dev_desired(viodev,
ibmveth_get_desired_dma
(viodev));
return ibmveth_open(adapter->netdev);
}
dev->mtu = new_mtu;
vio_cmo_set_dev_desired(viodev,
ibmveth_get_desired_dma
(viodev));
if (need_restart) {
return ibmveth_open(adapter->netdev);
}
return 0;
}
}

if (need_restart && (rc = ibmveth_open(adapter->netdev)))
return rc;

return -EINVAL;
}

Expand Down

0 comments on commit 7ff622d

Please sign in to comment.