diff options
Diffstat (limited to 'drivers/net/atlx/atl1.c')
-rw-r--r-- | drivers/net/atlx/atl1.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c index c73be2848319..67f75c17919c 100644 --- a/drivers/net/atlx/atl1.c +++ b/drivers/net/atlx/atl1.c | |||
@@ -3503,6 +3503,8 @@ static int atl1_set_ringparam(struct net_device *netdev, | |||
3503 | struct atl1_rfd_ring rfd_old, rfd_new; | 3503 | struct atl1_rfd_ring rfd_old, rfd_new; |
3504 | struct atl1_rrd_ring rrd_old, rrd_new; | 3504 | struct atl1_rrd_ring rrd_old, rrd_new; |
3505 | struct atl1_ring_header rhdr_old, rhdr_new; | 3505 | struct atl1_ring_header rhdr_old, rhdr_new; |
3506 | struct atl1_smb smb; | ||
3507 | struct atl1_cmb cmb; | ||
3506 | int err; | 3508 | int err; |
3507 | 3509 | ||
3508 | tpd_old = adapter->tpd_ring; | 3510 | tpd_old = adapter->tpd_ring; |
@@ -3543,11 +3545,19 @@ static int atl1_set_ringparam(struct net_device *netdev, | |||
3543 | adapter->rrd_ring = rrd_old; | 3545 | adapter->rrd_ring = rrd_old; |
3544 | adapter->tpd_ring = tpd_old; | 3546 | adapter->tpd_ring = tpd_old; |
3545 | adapter->ring_header = rhdr_old; | 3547 | adapter->ring_header = rhdr_old; |
3548 | /* | ||
3549 | * Save SMB and CMB, since atl1_free_ring_resources | ||
3550 | * will clear them. | ||
3551 | */ | ||
3552 | smb = adapter->smb; | ||
3553 | cmb = adapter->cmb; | ||
3546 | atl1_free_ring_resources(adapter); | 3554 | atl1_free_ring_resources(adapter); |
3547 | adapter->rfd_ring = rfd_new; | 3555 | adapter->rfd_ring = rfd_new; |
3548 | adapter->rrd_ring = rrd_new; | 3556 | adapter->rrd_ring = rrd_new; |
3549 | adapter->tpd_ring = tpd_new; | 3557 | adapter->tpd_ring = tpd_new; |
3550 | adapter->ring_header = rhdr_new; | 3558 | adapter->ring_header = rhdr_new; |
3559 | adapter->smb = smb; | ||
3560 | adapter->cmb = cmb; | ||
3551 | 3561 | ||
3552 | err = atl1_up(adapter); | 3562 | err = atl1_up(adapter); |
3553 | if (err) | 3563 | if (err) |