diff options
Diffstat (limited to 'net/qrtr/ns.c')
| -rw-r--r-- | net/qrtr/ns.c | 17 | 
1 files changed, 10 insertions, 7 deletions
| diff --git a/net/qrtr/ns.c b/net/qrtr/ns.c index 654a3cc0d347..3de9350cbf30 100644 --- a/net/qrtr/ns.c +++ b/net/qrtr/ns.c @@ -132,8 +132,8 @@ static int service_announce_new(struct sockaddr_qrtr *dest,  	return kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt));  } -static int service_announce_del(struct sockaddr_qrtr *dest, -				struct qrtr_server *srv) +static void service_announce_del(struct sockaddr_qrtr *dest, +				 struct qrtr_server *srv)  {  	struct qrtr_ctrl_pkt pkt;  	struct msghdr msg = { }; @@ -157,10 +157,10 @@ static int service_announce_del(struct sockaddr_qrtr *dest,  	msg.msg_namelen = sizeof(*dest);  	ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); -	if (ret < 0) +	if (ret < 0 && ret != -ENODEV)  		pr_err("failed to announce del service\n"); -	return ret; +	return;  }  static void lookup_notify(struct sockaddr_qrtr *to, struct qrtr_server *srv, @@ -188,7 +188,7 @@ static void lookup_notify(struct sockaddr_qrtr *to, struct qrtr_server *srv,  	msg.msg_namelen = sizeof(*to);  	ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); -	if (ret < 0) +	if (ret < 0 && ret != -ENODEV)  		pr_err("failed to send lookup notification\n");  } @@ -207,6 +207,9 @@ static int announce_servers(struct sockaddr_qrtr *sq)  	xa_for_each(&node->servers, index, srv) {  		ret = service_announce_new(sq, srv);  		if (ret < 0) { +			if (ret == -ENODEV) +				continue; +  			pr_err("failed to announce new service\n");  			return ret;  		} @@ -369,7 +372,7 @@ static int ctrl_cmd_bye(struct sockaddr_qrtr *from)  		msg.msg_namelen = sizeof(sq);  		ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); -		if (ret < 0) { +		if (ret < 0 && ret != -ENODEV) {  			pr_err("failed to send bye cmd\n");  			return ret;  		} @@ -443,7 +446,7 @@ static int ctrl_cmd_del_client(struct sockaddr_qrtr *from,  		msg.msg_namelen = sizeof(sq);  		ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); -		if (ret < 0) { +		if (ret < 0 && ret != -ENODEV) {  			pr_err("failed to send del client cmd\n");  			return ret;  		} |