iwlwifi: pcie: limit fw chunk sizes given to fh
New FW has chunks that are larger than the size limit of the FH's DMA. To make sure we don't crash it - actively limit the max size of each chunk. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
55fd1ce820
commit
baa21e8349
2 changed files with 2 additions and 1 deletions
|
@ -310,6 +310,7 @@ static inline unsigned int FH_MEM_CBBC_QUEUE(unsigned int chnl)
|
||||||
#define FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (0x01000000)
|
#define FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (0x01000000)
|
||||||
|
|
||||||
#define FH_MEM_TFDIB_REG1_ADDR_BITSHIFT 28
|
#define FH_MEM_TFDIB_REG1_ADDR_BITSHIFT 28
|
||||||
|
#define FH_MEM_TB_MAX_LENGTH (0x00020000)
|
||||||
|
|
||||||
/* TFDB Area - TFDs buffer table */
|
/* TFDB Area - TFDs buffer table */
|
||||||
#define FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK (0xFFFFFFFF)
|
#define FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK (0xFFFFFFFF)
|
||||||
|
|
|
@ -614,7 +614,7 @@ static int iwl_pcie_load_section(struct iwl_trans *trans, u8 section_num,
|
||||||
{
|
{
|
||||||
u8 *v_addr;
|
u8 *v_addr;
|
||||||
dma_addr_t p_addr;
|
dma_addr_t p_addr;
|
||||||
u32 offset, chunk_sz = section->len;
|
u32 offset, chunk_sz = min_t(u32, FH_MEM_TB_MAX_LENGTH, section->len);
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
IWL_DEBUG_FW(trans, "[%d] uCode section being loaded...\n",
|
IWL_DEBUG_FW(trans, "[%d] uCode section being loaded...\n",
|
||||||
|
|
Loading…
Add table
Reference in a new issue