2007-12-06 17:07:48

by Jeff Dike

[permalink] [raw]
Subject: [PATCH 3/6] UML - fix mconsole stop

From: Karol Swietlicki <[email protected]>

This patch brings back the functionality of stopping user mode linux
with the help of mconsole.

[ jdike - the bug being fixed is that the mconsole file descriptor is
already set O_NONBLOCK or not, depending on whether we want no
blocking (the normal case) or we want blocking (when an mconsole stop
is in effect), so the MSG_DONTWAIT is redundant in the normal case,
and wrong when we want to block. ]

Signed-off-by: Karol Swietlicki <[email protected]>
Signed-off-by: Jeff Dike <[email protected]>
---
arch/um/drivers/mconsole_user.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

Index: linux-2.6.22/arch/um/drivers/mconsole_user.c
===================================================================
--- linux-2.6.22.orig/arch/um/drivers/mconsole_user.c 2007-12-05 10:49:25.000000000 -0500
+++ linux-2.6.22/arch/um/drivers/mconsole_user.c 2007-12-05 12:21:05.000000000 -0500
@@ -83,9 +83,8 @@ int mconsole_get_request(int fd, struct
int len;

req->originlen = sizeof(req->origin);
- req->len = recvfrom(fd, &req->request, sizeof(req->request),
- MSG_DONTWAIT, (struct sockaddr *) req->origin,
- &req->originlen);
+ req->len = recvfrom(fd, &req->request, sizeof(req->request), 0,
+ (struct sockaddr *) req->origin, &req->originlen);
if (req->len < 0)
return 0;