aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firmware/arm_sdei.c
diff options
context:
space:
mode:
authorGavin Shan <gshan@redhat.com>2020-09-22 23:04:23 +1000
committerWill Deacon <will@kernel.org>2020-09-28 21:52:23 +0100
commit4b2b76cbbc8ff5dabc18123d94a1125143aea567 (patch)
treeed7455973cea6983d441d07107dfa58c05097098 /drivers/firmware/arm_sdei.c
parentfirmware: arm_sdei: Remove _sdei_event_register() (diff)
downloadlinux-dev-4b2b76cbbc8ff5dabc18123d94a1125143aea567.tar.xz
linux-dev-4b2b76cbbc8ff5dabc18123d94a1125143aea567.zip
firmware: arm_sdei: Remove _sdei_event_unregister()
_sdei_event_unregister() is called by sdei_event_unregister() and sdei_device_freeze(). _sdei_event_unregister() covers the shared and private events, but sdei_device_freeze() only covers the shared events. So the logic to cover the private events isn't needed by sdei_device_freeze(). sdei_event_unregister sdei_device_freeze _sdei_event_unregister sdei_unregister_shared _sdei_event_unregister This removes _sdei_event_unregister(). Its logic is moved to its callers accordingly. This shouldn't cause any logical changes. Signed-off-by: Gavin Shan <gshan@redhat.com> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: James Morse <james.morse@arm.com> Link: https://lore.kernel.org/r/20200922130423.10173-14-gshan@redhat.com Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'drivers/firmware/arm_sdei.c')
-rw-r--r--drivers/firmware/arm_sdei.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index 361d142ad2a8..840754dcc6ca 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -487,16 +487,6 @@ static void _local_event_unregister(void *data)
sdei_cross_call_return(arg, err);
}
-static int _sdei_event_unregister(struct sdei_event *event)
-{
- lockdep_assert_held(&sdei_events_lock);
-
- if (event->type == SDEI_EVENT_TYPE_SHARED)
- return sdei_api_event_unregister(event->event_num);
-
- return sdei_do_cross_call(_local_event_unregister, event);
-}
-
int sdei_event_unregister(u32 event_num)
{
int err;
@@ -517,7 +507,11 @@ int sdei_event_unregister(u32 event_num)
event->reenable = false;
spin_unlock(&sdei_list_lock);
- err = _sdei_event_unregister(event);
+ if (event->type == SDEI_EVENT_TYPE_SHARED)
+ err = sdei_api_event_unregister(event->event_num);
+ else
+ err = sdei_do_cross_call(_local_event_unregister, event);
+
if (err)
goto unlock;
@@ -543,7 +537,7 @@ static int sdei_unregister_shared(void)
if (event->type != SDEI_EVENT_TYPE_SHARED)
continue;
- err = _sdei_event_unregister(event);
+ err = sdei_api_event_unregister(event->event_num);
if (err)
break;
}