diff options
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c index 5e45cb9892d2..6adfa2093581 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c @@ -3124,7 +3124,7 @@ u32 bnx2x_crc_vf_bulletin(struct bnx2x *bp, { return crc32(BULLETIN_CRC_SEED, ((u8 *)bulletin) + sizeof(bulletin->crc), - BULLETIN_CONTENT_SIZE - sizeof(bulletin->crc)); + bulletin->length - sizeof(bulletin->crc)); } /* Check for new posts on the bulletin board */ diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c index 9cef520e9b93..36246129864c 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c @@ -1631,7 +1631,6 @@ int bnx2x_post_vf_bulletin(struct bnx2x *bp, int vf) dma_addr_t pf_addr = BP_VF_BULLETIN_DMA(bp)->mapping + vf * BULLETIN_CONTENT_SIZE; dma_addr_t vf_addr = bnx2x_vf(bp, vf, bulletin_map); - u32 len = BULLETIN_CONTENT_SIZE; int rc; /* can only update vf after init took place */ @@ -1641,11 +1640,12 @@ int bnx2x_post_vf_bulletin(struct bnx2x *bp, int vf) /* increment bulletin board version and compute crc */ bulletin->version++; + bulletin->length = BULLETIN_CONTENT_SIZE; bulletin->crc = bnx2x_crc_vf_bulletin(bp, bulletin); /* propagate bulletin board via dmae to vm memory */ rc = bnx2x_copy32_vf_dmae(bp, false, pf_addr, bnx2x_vf(bp, vf, abs_vfid), U64_HI(vf_addr), - U64_LO(vf_addr), len/4); + U64_LO(vf_addr), bulletin->length / 4); return rc; } diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h index a74477c3551e..bfc80baec00d 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h @@ -318,7 +318,8 @@ struct pf_vf_bulletin_content { u32 crc; /* crc of structure to ensure is not in * mid-update */ - u32 version; + u16 version; + u16 length; aligned_u64 valid_bitmap; /* bitmap indicating which fields * hold valid values |