| From f14df4da5e6e19094191b1384f6b69a45d174358 Mon Sep 17 00:00:00 2001 |
| From: Ben Hutchings <bhutchings@solarflare.com> |
| Date: Mon, 22 Apr 2013 22:40:07 +0100 |
| Subject: sfc: Fix naming of MTD partitions for FPGA bitfiles |
| |
| |
| From: Ben Hutchings <bhutchings@solarflare.com> |
| |
| [ Upstream commit 89cc80a44b7c320e08599cb86f6aef0ead8986a1 ] |
| |
| efx_mcdi_get_board_cfg() uses a buffer for the firmware response that |
| is only large enough to hold subtypes for the originally defined set |
| of NVRAM partitions. Longer responses are truncated, and we may read |
| off the end of the buffer when copying out subtypes for additional |
| partitions. In particular, this can result in the MTD partition for |
| an FPGA bitfile being named e.g. 'eth5 sfc_fpga:00' when it should be |
| 'eth5 sfc_fpga:01'. This means the firmware update tool (sfupdate) |
| can't tell which bitfile should be written to the partition. |
| |
| Correct the response buffer size. |
| |
| Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/sfc/mcdi.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/sfc/mcdi.c |
| +++ b/drivers/net/ethernet/sfc/mcdi.c |
| @@ -667,7 +667,7 @@ fail: |
| int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address, |
| u16 *fw_subtype_list, u32 *capabilities) |
| { |
| - uint8_t outbuf[MC_CMD_GET_BOARD_CFG_OUT_LENMIN]; |
| + uint8_t outbuf[MC_CMD_GET_BOARD_CFG_OUT_LENMAX]; |
| size_t outlen, offset, i; |
| int port_num = efx_port_num(efx); |
| int rc; |