[PATCH v5 00/13] Refactor SDEI client driver

From: Gavin Shan
Date: Tue Sep 22 2020 - 09:04:50 EST


This series bases on 5.9.rc5 and extracted from (v4) series of "Refactoring
SDEI client driver", which is prepatory work to support SDEI virtualizaton.
This series can be checkout from github.

git@xxxxxxxxxx:gwshan/linux.git (branch: "sdei_client")

Testing
=======
I have the SDEI virtualization code implemented as part of KVM module.
With that, the SDEI event can be registered/unregistered/enabled/disabled.
Also, the SDEI event can be injected from host and the guest handler runs
properly.

The code can be found from:

git@xxxxxxxxxx:gwshan/linux.git
(branch: "sdei")

Changelog
=========
v5:
Rebase to 5.9.rc5 and pick rbs from James (Gavin)
Improved changelog (James)
Drop last two patches in v4 series and fold them to the series
of "Support SDEI virtualization" (James)
Fix use-after-free in sdei_reregister_shared() (James)
v4:
Rebase to last upstream kernel (Gavin)
Use @event_el for SDEI internal event and use @event to cache
SDEI event if needed (Jonathan)
Rename @se to @event for APIs (Jonathan)
v3:
Rebase to 5.8.rc7 (Gavin)
Pick rbs from Jonathan (Gavin)
Correct spellings in commit logs (Jonathan)
Rename "out" to "unlock" tag (Jonathan)
Keep the empty line in sdei_event_unregister() (Jonathan)
Drop tabs between type and field for struct sdei_crosscall_args (Jonathan)
Use smp_call_func_t for @fn argument in CPU callbacks (Jonathan)
Split struct sdei_event into struct sdei_{internal,}_event (Jonathan)
Remove last two patches and get it reviewed later (Jonathan)
v2:
Rebase to 5.8.rc6 (Gavin)
Improved changelog (James/Gavin)
Split patches for easy review (Gavin)
Drop changes to reorder variables (James)
Drop unnecessary (@regs removal) cleanup in sdei_event_create() (James)
Fix broken case for device-tree in sdei_init() (James)

Gavin Shan (13):
firmware: arm_sdei: Remove sdei_is_err()
firmware: arm_sdei: Common block for failing path in
sdei_event_create()
firmware: arm_sdei: Retrieve event number from event instance
firmware: arm_sdei: Avoid nested statements in sdei_init()
firmware: arm_sdei: Unregister driver on error in sdei_init()
firmware: arm_sdei: Remove duplicate check in sdei_get_conduit()
firmware: arm_sdei: Remove redundant error message in sdei_probe()
firmware: arm_sdei: Remove while loop in sdei_event_register()
firmware: arm_sdei: Remove while loop in sdei_event_unregister()
firmware: arm_sdei: Cleanup on cross call function
firmware: arm_sdei: Introduce sdei_do_local_call()
firmware: arm_sdei: Remove _sdei_event_register()
firmware: arm_sdei: Remove _sdei_event_unregister()

drivers/firmware/arm_sdei.c | 305 ++++++++++++++++--------------------
1 file changed, 136 insertions(+), 169 deletions(-)

--
2.23.0