diff options
Diffstat (limited to 'net/qrtr/ns.c')
| -rw-r--r-- | net/qrtr/ns.c | 15 | 
1 files changed, 4 insertions, 11 deletions
diff --git a/net/qrtr/ns.c b/net/qrtr/ns.c index b8559c882431..8d00dfe8139e 100644 --- a/net/qrtr/ns.c +++ b/net/qrtr/ns.c @@ -517,10 +517,6 @@ static int ctrl_cmd_new_server(struct sockaddr_qrtr *from,  		port = from->sq_port;  	} -	/* Don't accept spoofed messages */ -	if (from->sq_node != node_id) -		return -EINVAL; -  	srv = server_add(service, instance, node_id, port);  	if (!srv)  		return -EINVAL; @@ -559,10 +555,6 @@ static int ctrl_cmd_del_server(struct sockaddr_qrtr *from,  		port = from->sq_port;  	} -	/* Don't accept spoofed messages */ -	if (from->sq_node != node_id) -		return -EINVAL; -  	/* Local servers may only unregister themselves */  	if (from->sq_node == qrtr_ns.local_node && from->sq_port != port)  		return -EINVAL; @@ -763,7 +755,7 @@ static void qrtr_ns_data_ready(struct sock *sk)  	queue_work(qrtr_ns.workqueue, &qrtr_ns.work);  } -void qrtr_ns_init(void) +int qrtr_ns_init(void)  {  	struct sockaddr_qrtr sq;  	int ret; @@ -774,7 +766,7 @@ void qrtr_ns_init(void)  	ret = sock_create_kern(&init_net, AF_QIPCRTR, SOCK_DGRAM,  			       PF_QIPCRTR, &qrtr_ns.sock);  	if (ret < 0) -		return; +		return ret;  	ret = kernel_getsockname(qrtr_ns.sock, (struct sockaddr *)&sq);  	if (ret < 0) { @@ -805,12 +797,13 @@ void qrtr_ns_init(void)  	if (ret < 0)  		goto err_wq; -	return; +	return 0;  err_wq:  	destroy_workqueue(qrtr_ns.workqueue);  err_sock:  	sock_release(qrtr_ns.sock); +	return ret;  }  EXPORT_SYMBOL_GPL(qrtr_ns_init);  | 
