atl1: fix oops when changing tx/rx ring params
authorJ. K. Cliburn <jcliburn@gmail.com>
Sat, 1 Jan 2011 05:02:12 +0000 (05:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Jan 2011 19:04:49 +0000 (11:04 -0800)
commit2f32c867219734b06abc980d4812f67b6d6fe517
treebada002a03498e5204c2706de19f635d9432bb2e
parentb9556f9a1abdc56a179ac7ba6053469373b6de0f
atl1: fix oops when changing tx/rx ring params

Commit 3f5a2a713aad28480d86b0add00c68484b54febc zeroes out the statistics
message block (SMB) and coalescing message block (CMB) when adapter ring
resources are freed.  This is desirable behavior, but, as a side effect,
the commit leads to an oops when atl1_set_ringparam() attempts to alter
the number of rx or tx elements in the ring buffer (by using ethtool
-G, for example).  We don't want SMB or CMB to change during this
operation.

Modify atl1_set_ringparam() to preserve SMB and CMB when changing ring
parameters.

Cc: stable@kernel.org
Signed-off-by: Jay Cliburn <jcliburn@gmail.com>
Reported-by: Tõnu Raitviir <jussuf@linux.ee>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/atlx/atl1.c