[PATCH net 0/2] net: ipa: prevent shutdown during setup

From: Alex Elder
Date: Mon Nov 22 2021 - 19:16:03 EST


The setup phase of the IPA driver occurs in one of two ways.
Normally, it is done directly by the main driver probe function.
But some systems (those having a "modem-init" DTS property) don't
start setup until an SMP2P interrupt (sent by the modem) arrives.

Because it isn't performed by the probe function, setup on
"modem-init" systems could be underway at the time a driver
remove (or shutdown) request arrives (or vice-versa). This
situation can lead to hardware state not being cleaned up
properly.

This series addresses this problem by having the driver remove
function disable the setup interrupt. A consequence of this is
that setup will complete if it is underway when the remove function
is called.

So now, when removing the driver, setup:
- will have already completed;
- is underway, and will complete before proceeding; or
- will not have begun (and will not occur).

-Alex

PS These patches might not back-port cleanly; I'll gladly provide
equivalent code for older kernel releases if needed.

Alex Elder (2):
net: ipa: directly disable ipa-setup-ready interrupt
net: ipa: separate disabling setup from modem stop

drivers/net/ipa/ipa_main.c | 6 ++++++
drivers/net/ipa/ipa_modem.c | 6 +++---
drivers/net/ipa/ipa_smp2p.c | 21 ++++++++++-----------
drivers/net/ipa/ipa_smp2p.h | 7 +++----
4 files changed, 22 insertions(+), 18 deletions(-)

--
2.32.0