sparc64: check if a client is allowed to register for MDESC notifications
Check if a client is supported, by comparing against a whitelist, to register for notifications from Machine Description (MDESC) Signed-off-by: Jagannathan Raman <jag.raman@oracle.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com> Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0542eb7de7
commit
110f2264b3
|
@ -284,9 +284,26 @@ static struct mdesc_notifier_client *client_list;
|
||||||
|
|
||||||
void mdesc_register_notifier(struct mdesc_notifier_client *client)
|
void mdesc_register_notifier(struct mdesc_notifier_client *client)
|
||||||
{
|
{
|
||||||
|
bool supported = false;
|
||||||
u64 node;
|
u64 node;
|
||||||
|
int i;
|
||||||
|
|
||||||
mutex_lock(&mdesc_mutex);
|
mutex_lock(&mdesc_mutex);
|
||||||
|
|
||||||
|
/* check to see if the node is supported for registration */
|
||||||
|
for (i = 0; md_node_ops_table[i].name != NULL; i++) {
|
||||||
|
if (strcmp(md_node_ops_table[i].name, client->node_name) == 0) {
|
||||||
|
supported = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!supported) {
|
||||||
|
pr_err("MD: %s node not supported\n", client->node_name);
|
||||||
|
mutex_unlock(&mdesc_mutex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
client->next = client_list;
|
client->next = client_list;
|
||||||
client_list = client;
|
client_list = client;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue