| From foo@baz Fri May 8 13:04:43 CEST 2015 |
| From: Hariprasad Shenai <hariprasad@chelsio.com> |
| Date: Wed, 29 Apr 2015 17:19:05 +0530 |
| Subject: cxgb4: Fix MC1 memory offset calculation |
| |
| From: Hariprasad Shenai <hariprasad@chelsio.com> |
| |
| [ Upstream commit 7f0b8a56c978b0a3315ac84c6cbb065413afb8e9 ] |
| |
| Commit 6559a7e8296002b4 ("cxgb4: Cleanup macros so they follow the same |
| style and look consistent") introduced a regression where reading MC1 |
| memory in adapters where MC0 isn't present or MC0 size is not equal to MC1 |
| size caused the adapter to crash due to incorrect computation of memoffset. |
| Fix is to read the size of MC0 instead of MC1 for offset calculation |
| |
| Signed-off-by: Steve Wise <swise@opengridcomputing.com> |
| Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c |
| +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c |
| @@ -489,7 +489,7 @@ int t4_memory_rw(struct adapter *adap, i |
| memoffset = (mtype * (edc_size * 1024 * 1024)); |
| else { |
| mc_size = EXT_MEM0_SIZE_G(t4_read_reg(adap, |
| - MA_EXT_MEMORY1_BAR_A)); |
| + MA_EXT_MEMORY0_BAR_A)); |
| memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024; |
| } |
| |