powerpc/pseries: Introduce dlpar_unisolate_drc()

Next patch will execute a set-indicator call in hotplug-cpu.c.

Create a dlpar_unisolate_drc() helper to avoid spreading more
rtas_set_indicator() calls outside of dlpar.c.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210416210216.380291-2-danielhb413@gmail.com
This commit is contained in:
Daniel Henrique Barboza 2021-04-16 18:02:15 -03:00 committed by Michael Ellerman
parent 864ec4d40c
commit 0e3b3ff83c
2 changed files with 15 additions and 0 deletions

View File

@ -329,6 +329,20 @@ int dlpar_release_drc(u32 drc_index)
return 0; return 0;
} }
int dlpar_unisolate_drc(u32 drc_index)
{
int dr_status, rc;
rc = rtas_call(rtas_token("get-sensor-state"), 2, 2, &dr_status,
DR_ENTITY_SENSE, drc_index);
if (rc || dr_status != DR_ENTITY_PRESENT)
return -1;
rtas_set_indicator(ISOLATION_STATE, drc_index, UNISOLATE);
return 0;
}
int handle_dlpar_errorlog(struct pseries_hp_errorlog *hp_elog) int handle_dlpar_errorlog(struct pseries_hp_errorlog *hp_elog)
{ {
int rc; int rc;

View File

@ -52,6 +52,7 @@ extern int dlpar_attach_node(struct device_node *, struct device_node *);
extern int dlpar_detach_node(struct device_node *); extern int dlpar_detach_node(struct device_node *);
extern int dlpar_acquire_drc(u32 drc_index); extern int dlpar_acquire_drc(u32 drc_index);
extern int dlpar_release_drc(u32 drc_index); extern int dlpar_release_drc(u32 drc_index);
extern int dlpar_unisolate_drc(u32 drc_index);
void queue_hotplug_event(struct pseries_hp_errorlog *hp_errlog); void queue_hotplug_event(struct pseries_hp_errorlog *hp_errlog);
int handle_dlpar_errorlog(struct pseries_hp_errorlog *hp_errlog); int handle_dlpar_errorlog(struct pseries_hp_errorlog *hp_errlog);