net/sfc/base: use MCDIv2 for requests with too long response
authorMark Spender <mspender@solarflare.com>
Thu, 16 Nov 2017 08:04:15 +0000 (08:04 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 16 Jan 2018 17:47:49 +0000 (18:47 +0100)
Use MCDIv2 for requests with a response size too long for MCDIv1.

Required for MC_CMD_MAC_STATS to reports the stats without using DMA.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/efx_mcdi.c

index c61b943..888a47b 100644 (file)
@@ -290,7 +290,8 @@ efx_mcdi_request_start(
         */
        if ((max_version >= 2) &&
            ((emrp->emr_cmd > MC_CMD_CMD_SPACE_ESCAPE_7) ||
-           (emrp->emr_in_length > MCDI_CTL_SDU_LEN_MAX_V1))) {
+           (emrp->emr_in_length > MCDI_CTL_SDU_LEN_MAX_V1) ||
+           (emrp->emr_out_length > MCDI_CTL_SDU_LEN_MAX_V1))) {
                /* Construct MCDI v2 header */
                hdr_len = sizeof (hdr);
                EFX_POPULATE_DWORD_8(hdr[0],