Merge 8aa0d102d8 on remote branch

Change-Id: I18e5285d03e1a848405c9b2d61f81d1985cf0e3d
This commit is contained in:
Linux Build Service Account 2022-04-07 23:10:49 -07:00
commit 55d55ae4cf
4 changed files with 7 additions and 3 deletions

View file

@ -4057,7 +4057,7 @@ int gsi_poll_n_channel(unsigned long chan_hdl,
/* update rp to see of we have anything new to process */
rp = ctx->evtr->props.gsi_read_event_ring_rp(
&ctx->evtr->props, ctx->evtr->id, ee);
rp |= ctx->ring.rp & 0xFFFFFFFF00000000ULL;
rp |= ctx->evtr->ring.rp & 0xFFFFFFFF00000000ULL;
ctx->evtr->ring.rp = rp;
/* read gsi event ring rp again if last read is empty */
@ -4069,7 +4069,7 @@ int gsi_poll_n_channel(unsigned long chan_hdl,
__iowmb();
rp = ctx->evtr->props.gsi_read_event_ring_rp(
&ctx->evtr->props, ctx->evtr->id, ee);
rp |= ctx->ring.rp & 0xFFFFFFFF00000000ULL;
rp |= ctx->evtr->ring.rp & 0xFFFFFFFF00000000ULL;
ctx->evtr->ring.rp = rp;
if (rp == ctx->evtr->ring.rp_local) {
spin_unlock_irqrestore(

View file

@ -9660,6 +9660,7 @@ static void ipa3_deepsleep_suspend(void)
/*Disabling IPA interrupt*/
ipa3_remove_interrupt_handler(IPA_TX_SUSPEND_IRQ);
ipa3_interrupts_destroy(ipa3_res.ipa_irq, &ipa3_ctx->master_pdev->dev);
ipa3_uc_interface_destroy();
/*Destroy the NAT device*/
ipa3_nat_ipv6ct_destroy_devices();
/*Freeing memory allocated for coalesing and dma task*/

View file

@ -2978,6 +2978,7 @@ int ipa3_uc_send_cmd(u32 cmd, u32 opcode, u32 expected_status,
void ipa3_uc_register_handlers(enum ipa3_hw_features feature,
struct ipa3_uc_hdlrs *hdlrs);
int ipa3_uc_notify_clk_state(bool enabled);
void ipa3_uc_interface_destroy(void);
int ipa3_dma_setup(void);
void ipa3_dma_shutdown(void);
void ipa3_dma_async_memcpy_notify_cb(void *priv,

View file

@ -454,7 +454,9 @@ int ipa3_remove_interrupt_handler(enum ipa_irq_type interrupt)
return -EFAULT;
}
kfree(ipa_interrupt_to_cb[irq_num].private_data);
/*If free ipa3_ctx pointer causing device crash during remove interrupt*/
if(ipa_interrupt_to_cb[irq_num].private_data != ipa3_ctx)
kfree(ipa_interrupt_to_cb[irq_num].private_data);
ipa_interrupt_to_cb[irq_num].deferred_flag = false;
ipa_interrupt_to_cb[irq_num].handler = NULL;
ipa_interrupt_to_cb[irq_num].private_data = NULL;