net: ipa: tighten up IPA register validity checking
When checking the validity of an IPA register ID, compare it against all possible ipa_reg_id values. Rename the function ipa_reg_id_valid() to be specific about what's being checked. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
3aac8ec1c0
commit
d86603e940
@@ -9,8 +9,8 @@
|
||||
#include "ipa.h"
|
||||
#include "ipa_reg.h"
|
||||
|
||||
/* Is this register valid and defined for the current IPA version? */
|
||||
static bool ipa_reg_valid(struct ipa *ipa, enum ipa_reg_id reg_id)
|
||||
/* Is this register ID valid for the current IPA version? */
|
||||
static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id)
|
||||
{
|
||||
enum ipa_version version = ipa->version;
|
||||
bool valid;
|
||||
@@ -57,8 +57,49 @@ static bool ipa_reg_valid(struct ipa *ipa, enum ipa_reg_id reg_id)
|
||||
valid = version >= IPA_VERSION_3_1;
|
||||
break;
|
||||
|
||||
case COMP_CFG:
|
||||
case CLKON_CFG:
|
||||
case ROUTE:
|
||||
case SHARED_MEM_SIZE:
|
||||
case QSB_MAX_WRITES:
|
||||
case QSB_MAX_READS:
|
||||
case FILT_ROUT_HASH_EN:
|
||||
case FILT_ROUT_CACHE_CFG:
|
||||
case FILT_ROUT_HASH_FLUSH:
|
||||
case FILT_ROUT_CACHE_FLUSH:
|
||||
case STATE_AGGR_ACTIVE:
|
||||
case LOCAL_PKT_PROC_CNTXT:
|
||||
case AGGR_FORCE_CLOSE:
|
||||
case SRC_RSRC_GRP_01_RSRC_TYPE:
|
||||
case SRC_RSRC_GRP_23_RSRC_TYPE:
|
||||
case DST_RSRC_GRP_01_RSRC_TYPE:
|
||||
case DST_RSRC_GRP_23_RSRC_TYPE:
|
||||
case ENDP_INIT_CTRL:
|
||||
case ENDP_INIT_CFG:
|
||||
case ENDP_INIT_NAT:
|
||||
case ENDP_INIT_HDR:
|
||||
case ENDP_INIT_HDR_EXT:
|
||||
case ENDP_INIT_HDR_METADATA_MASK:
|
||||
case ENDP_INIT_MODE:
|
||||
case ENDP_INIT_AGGR:
|
||||
case ENDP_INIT_HOL_BLOCK_EN:
|
||||
case ENDP_INIT_HOL_BLOCK_TIMER:
|
||||
case ENDP_INIT_DEAGGR:
|
||||
case ENDP_INIT_RSRC_GRP:
|
||||
case ENDP_INIT_SEQ:
|
||||
case ENDP_STATUS:
|
||||
case ENDP_FILTER_CACHE_CFG:
|
||||
case ENDP_ROUTER_CACHE_CFG:
|
||||
case IPA_IRQ_STTS:
|
||||
case IPA_IRQ_EN:
|
||||
case IPA_IRQ_CLR:
|
||||
case IPA_IRQ_UC:
|
||||
case IRQ_SUSPEND_INFO:
|
||||
valid = true; /* These should be defined for all versions */
|
||||
break;
|
||||
|
||||
default:
|
||||
valid = true; /* Others should be defined for all versions */
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -69,7 +110,7 @@ static bool ipa_reg_valid(struct ipa *ipa, enum ipa_reg_id reg_id)
|
||||
|
||||
const struct ipa_reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id)
|
||||
{
|
||||
if (WARN_ON(!ipa_reg_valid(ipa, reg_id)))
|
||||
if (WARN_ON(!ipa_reg_id_valid(ipa, reg_id)))
|
||||
return NULL;
|
||||
|
||||
return ipa->regs->reg[reg_id];
|
||||
|
||||
Reference in New Issue
Block a user