mbox series

[v5,00/13] Refactor SDEI client driver

Message ID 20200922130423.10173-1-gshan@redhat.com
Headers show
Series Refactor SDEI client driver | expand

Message

Gavin Shan Sept. 22, 2020, 1:04 p.m. UTC
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@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@github.com: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(-)

Comments

Will Deacon Sept. 28, 2020, 10:13 p.m. UTC | #1
On Tue, 22 Sep 2020 23:04:10 +1000, Gavin Shan wrote:
> 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@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.
> 
> [...]

Applied to arm64 (for-next/sdei), thanks!

[01/13] firmware: arm_sdei: Remove sdei_is_err()
        https://git.kernel.org/arm64/c/5735f5158430
[02/13] firmware: arm_sdei: Common block for failing path in sdei_event_create()
        https://git.kernel.org/arm64/c/119884249fdb
[03/13] firmware: arm_sdei: Retrieve event number from event instance
        https://git.kernel.org/arm64/c/663c0e89c8de
[04/13] firmware: arm_sdei: Avoid nested statements in sdei_init()
        https://git.kernel.org/arm64/c/10fd7c42b795
[05/13] firmware: arm_sdei: Unregister driver on error in sdei_init()
        https://git.kernel.org/arm64/c/63627cae41e3
[06/13] firmware: arm_sdei: Remove duplicate check in sdei_get_conduit()
        https://git.kernel.org/arm64/c/bc110fd32281
[07/13] firmware: arm_sdei: Remove redundant error message in sdei_probe()
        https://git.kernel.org/arm64/c/101119a35ca1
[08/13] firmware: arm_sdei: Remove while loop in sdei_event_register()
        https://git.kernel.org/arm64/c/1bbc75518503
[09/13] firmware: arm_sdei: Remove while loop in sdei_event_unregister()
        https://git.kernel.org/arm64/c/b06146b698e6
[10/13] firmware: arm_sdei: Cleanup on cross call function
        https://git.kernel.org/arm64/c/a27c04e1de87
[11/13] firmware: arm_sdei: Introduce sdei_do_local_call()
        https://git.kernel.org/arm64/c/f4673625a52c
[12/13] firmware: arm_sdei: Remove _sdei_event_register()
        https://git.kernel.org/arm64/c/d2fc580d2dca
[13/13] firmware: arm_sdei: Remove _sdei_event_unregister()
        https://git.kernel.org/arm64/c/4b2b76cbbc8f

Cheers,