[PATCH v3 00/15] Refactor SDEI client driver
Gavin Shan
gshan at redhat.com
Mon Jul 27 22:59:40 EDT 2020
This series bases on 5.8-rc7 and refactors the SDEI client driver.
It's the preparatory work of virtualizing SDEI afterwords. The series
is organized as below:
* PATCH[1-13] refactors and clean up the code. They shouldn't cause
any functional changes.
* PATCH[14-15] exposes "struct sdei_event", which will be dereferenced
on virtualizing SDEI. After it's applied, the SDEI event is identified
by the instance of "struct sdei_event" instead of event number.
The series can be checked out from:
git at github.com: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 at github.com:gwshan/linux.git
(branch: "sdei")
Changelog
=========
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 (15):
drivers/firmware/sdei: Remove sdei_is_err()
drivers/firmware/sdei: Common block for failing path in
sdei_event_create()
drivers/firmware/sdei: Retrieve event number from event instance
drivers/firmware/sdei: Avoid nested statements in sdei_init()
drivers/firmware/sdei: Unregister driver on error in sdei_init()
drivers/firmware/sdei: Remove duplicate check in sdei_get_conduit()
drivers/firmware/sdei: Remove Drop redundant error message in
sdei_probe()
drivers/firmware/sdei: Remove while loop in sdei_event_register()
drivers/firmware/sdei: Remove while loop in sdei_event_unregister()
drivers/firmware/sdei: Cleanup on cross call function
drivers/firmware/sdei: Introduce sdei_do_local_call()
drivers/firmware/sdei: Remove _sdei_event_register()
drivers/firmware/sdei: Remove _sdei_event_unregister()
drivers/firmware/sdei: Expose struct sdei_event
drivers/firmware/sdei: Identify event by struct sdei_event
drivers/firmware/arm_sdei.c | 440 +++++++++++++++++-------------------
include/linux/arm_sdei.h | 16 +-
2 files changed, 215 insertions(+), 241 deletions(-)
--
2.23.0
More information about the linux-arm-kernel
mailing list