qcacmn: Disable IRQ line for vlan RX ring
Target is sending interrupt even interrupt handler is not registered for the vlan RX DST ring, and causing kernel crash. Fix is to disable the IRQ line if host is not supposed to handle the interrupt for vlan RX DST ring. Change-Id: I91b8a5784969e1022d283793905c33340492706b CRs-Fixed: 3348574
This commit is contained in:

committed by
Madan Koyyalamudi

parent
08131fd0bb
commit
d5b2560201
@@ -1642,6 +1642,28 @@ static int dp_get_num_msi_available(struct dp_soc *soc, int interrupt_mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(IPA_OFFLOAD) && defined(IPA_WDI3_VLAN_SUPPORT)
|
||||
static void
|
||||
dp_ipa_vlan_srng_msi_setup(struct hal_srng_params *ring_params, int ring_type,
|
||||
int ring_num)
|
||||
{
|
||||
if (wlan_ipa_is_vlan_enabled()) {
|
||||
if ((ring_type == REO_DST) &&
|
||||
(ring_num == IPA_ALT_REO_DEST_RING_IDX)) {
|
||||
ring_params->msi_addr = 0;
|
||||
ring_params->msi_data = 0;
|
||||
ring_params->flags &= ~HAL_SRNG_MSI_INTR;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
dp_ipa_vlan_srng_msi_setup(struct hal_srng_params *ring_params, int ring_type,
|
||||
int ring_num)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static void dp_srng_msi_setup(struct dp_soc *soc, struct dp_srng *srng,
|
||||
struct hal_srng_params *ring_params,
|
||||
int ring_type, int ring_num)
|
||||
@@ -1704,6 +1726,8 @@ static void dp_srng_msi_setup(struct dp_soc *soc, struct dp_srng *srng,
|
||||
+ msi_data_start;
|
||||
ring_params->flags |= HAL_SRNG_MSI_INTR;
|
||||
|
||||
dp_ipa_vlan_srng_msi_setup(ring_params, ring_type, ring_num);
|
||||
|
||||
dp_debug("ring type %u ring_num %u msi->data %u msi_addr %llx",
|
||||
ring_type, ring_num, ring_params->msi_data,
|
||||
(uint64_t)ring_params->msi_addr);
|
||||
|
Reference in New Issue
Block a user